跳转到主要内容
智能体工作流(Agent Workflow)节点 会把后续工作流封装成一个可被上游 Agent 调用的工具。Agent 决定调用它时,节点会执行其后连接的工作流节点,并把执行结果以 ToolMessage 写回给调用它的 Agent。 当一个工具结果需要多步骤编排时,可以使用智能体工作流,例如数据检索、条件分支、迭代处理、调用其他工具、HTTP 请求、代码执行,以及最终结果格式化。 :::note 智能体工作流替代旧的 智能体工具(Agent Tool) 工作流节点。已有 agent-tool 节点会继续兼容运行,但新建工作流应使用 agent-workflow。 :::

工作机制

  1. 注册为工具
    • 节点会注册为上游 Agent 可调用的工具。
    • 工具名称工具描述工具参数 会作为模型看到的工具名称、描述和入参 schema。
  2. 传递调用参数
    • Agent 调用工具时,调用参数会保存到智能体工作流节点状态中。
    • 每个配置的输入参数都会暴露给后续节点,变量路径为 args.<参数名>
  3. 执行子工作流
    • 智能体工作流后连接的节点就是这个工具的实现逻辑。
    • 子工作流可以包含分支、迭代、工具调用、HTTP 请求、代码执行、模板转换、知识检索和 Agent 节点。
  4. 返回给调用 Agent
    • 子工作流完成后,智能体工作流会创建 ToolMessage 并写回调用它的 Agent。
    • 调用 Agent 会基于该工具结果继续推理和回答。

配置说明

返回内容

智能体工作流支持三种返回方式: 如果后续路径最后是迭代节点,不要依赖最后消息。请选择迭代节点的输出变量,通常是 output_str,或者在迭代节点后添加回答节点并返回该结果。当智能体工作流以迭代路径结束且仍使用最后消息返回时,校验会报告错误。

兼容性

  • 新节点使用 WorkflowNodeTypeEnum.AGENT_WORKFLOW,值为 agent-workflow
  • 旧节点 WorkflowNodeTypeEnum.AGENT_TOOL,值为 agent-tool,仍会为已有工作流继续加载和运行。
  • 旧的智能体工具文档页仅作为废弃兼容入口保留。

最佳实践

  1. 为工具提供清晰的名称和描述,帮助 Agent 模型稳定选择它。
  2. 明确定义输入参数,不要让后续工作流依赖隐式上下文猜测。
  3. 生产流程优先使用变量模版作为返回内容。
  4. 只有以回答或 Agent 响应结束的简单兼容流程,才建议使用最后消息
  5. 如果存在分支,确保选择的返回变量在所有可能路径上都会产出,或在每条分支上使用模版/回答节点生成返回内容。