条件
条件模块允许您根据布尔表达式分支工作流的执行路径,从而创建具有不同执行路径的动态、响应式工作流。它会评估条件并相应地引导工作流,让您无需依赖 LLM 即可根据数据或逻辑控制执行流程。

条件模块支持确定性决策,无需依赖 LLM,非常适合简单的分支逻辑。
概述
条件模块可以让您:
创建分支逻辑:基于布尔表达式引导工作流
做出数据驱动的决策:使用前一个模块的输出评估条件
处理多种场景:定义多个条件并设置不同路径
提供确定性路由:无需依赖 LLM 即可做出决策
工作原理
条件模块通过以下顺序评估过程运行:
- 评估表达式 - 使用当前工作流数据处理 JavaScript/TypeScript 布尔表达式
- 确定结果 - 根据表达式评估返回 true 或 false
- 引导工作流 - 根据结果将执行引导到相应的目标模块
- 提供上下文 - 生成关于决策的元数据以便调试和监控
配置选项
条件
定义一个或多个需要评估的条件。每个条件包括:
- 表达式:一个 JavaScript/TypeScript 表达式,评估结果为 true 或 false
- 路径:如果条件为 true,则引导到的目标模块
- 描述:可选,说明条件检查的内容
您可以创建多个条件,这些条件按顺序进行评估,第一个匹配的条件将决定执行路径。
条件表达式格式
条件使用 JavaScript 语法,并可以引用前面模块的输入值。
// Check if a score is above a threshold
<agent.score> > 75
// Check if a text contains specific keywords
<agent.text>.includes('urgent') || <agent.text>.includes('emergency')
// Check multiple conditions
<agent.age> >= 18 && <agent.country> === 'US'
访问结果
条件评估后,您可以访问其输出:
<condition.result>
:条件评估的布尔结果<condition.matched_condition>
:匹配条件的 ID<condition.content>
:评估结果的描述<condition.path>
:所选路由目标的详细信息
高级功能
复杂表达式
在条件中使用 JavaScript 运算符和函数:
// String operations
<user.email>.endsWith('@company.com')
// Array operations
<api.tags>.includes('urgent')
// Mathematical operations
<agent.confidence> * 100 > 85
// Date comparisons
new Date(<api.created_at>) > new Date('2024-01-01')
多条件评估
条件按顺序评估,直到匹配一个为止:
// Condition 1: Check for high priority
<ticket.priority> === 'high'
// Condition 2: Check for urgent keywords
<ticket.subject>.toLowerCase().includes('urgent')
// Condition 3: Default fallback
true
错误处理
条件会自动处理:
- 未定义或空值的安全评估
- 类型不匹配的适当回退
- 无效表达式的错误日志记录
- 缺少变量的默认值
输入和输出
条件:要评估的布尔表达式数组
表达式:使用模块输出的 JavaScript/TypeScript 条件
路由路径:每个条件结果的目标模块
condition.result:条件评估的布尔结果
condition.matched_condition:匹配条件的 ID
condition.content:评估结果的描述
condition.path:所选路由目标的详细信息
布尔结果:主要的条件评估结果
路由信息:路径选择和条件详细信息
访问:在条件之后的模块中可用
示例用例
客户支持分配
场景:根据优先级分配支持工单
- API 模块获取支持工单数据
- 条件检查
<api.priority>
是否等于“高” - 高优先级工单 → 分配给拥有升级工具的代理
- 普通优先级工单 → 分配给标准支持代理
内容审核
场景:根据分析结果过滤内容
- 代理分析用户生成的内容
- 条件检查
<agent.toxicity_score>
是否大于 0.7 - 有害内容 → 进入审核流程
- 干净内容 → 进入发布流程
用户引导流程
场景:根据用户类型个性化引导流程
- 功能模块处理用户注册数据
- 条件检查
<user.account_type>
是否等于“企业” - 企业用户 → 进入高级设置流程
- 个人用户 → 进入简单引导流程
最佳实践
- 正确排序条件:将更具体的条件放在一般条件之前,以确保特定逻辑优先于回退逻辑
- 包含默认条件:添加一个兜底条件(
true
)作为最后的条件,以处理未匹配的情况,防止工作流执行卡住 - 保持表达式简单:使用清晰、直接的布尔表达式,以提高可读性和调试的便利性
- 记录条件:添加描述以解释每个条件的目的,从而提高团队协作和维护效率
- 测试边界情况:通过测试条件范围边界值,验证条件是否正确处理边界情况