Dify 中一个 Agent 调用另一个 Agent
在 Dify 里一个 Agent 调用另一个 Agent本质就三种做法工作流嵌套最稳、把子 Agent 当 API 工具调用最灵活、A2A 插件多智能体专用。下面一步步讲清楚怎么配、区别在哪。一、方式 1用「工作流 Agent 节点」嵌套推荐新手 / 简单场景思路把被调用的子 Agent 做成一个独立 Workflow主 Agent 直接调用这个 Workflow 节点。1准备子 Agent被调用方新建应用 → 选「Agent」配好模型、提示词、需要的工具比如查订单、算交期发布成 Workflow保存 → 发布 → 记录 Workflow 名称 / ID。2主 Agent 调用子 Agent打开主 Agent → 进入「Tools」→ 点「」→ 选「Workflow」标签从列表里选刚才发布的子 Agent Workflow写清楚工具描述LLM 靠这个判断什么时候调用工具名询交期Agent 描述当用户问交期、可交量、发货时间时调用 参数query用户问题文本4.保存。主 Agent 就会在需要时自动调用子 Agent。优点零代码、最稳定、调试方便子 Agent 可独立测试、复用给多个主 Agent。缺点子 Agent 输出结构相对固定不适合高度动态的多轮协作。二、方式 2把「子 Agent 暴露为 API」主 Agent 用「HTTP 工具」调用最灵活思路任何 Dify 应用包括 Agent都能对外提供 API主 Agent 把它当普通 HTTP 工具调用。1子 Agent 开启 API子 Agent 应用 → 「设置」→「API 访问」→ 开启拿到API 地址https://xxx.dify.app/v1/chat-messagesAPI Keysk-xxxx2主 Agent 新建「HTTP 工具」主 Agent →「Tools」→「」→「HTTP」配置名称call_delivery_agent描述调用交期查询 Agent方法POSTURL填上面的 /v1/chat-messages请求头Authorization: Bearer sk-xxxx Content-Type: application/json请求体JSON{ query: {{query}}, user: agent-call }保存主 Agent 就可以通过 HTTP 直接调用子 Agent。优点完全解耦子 Agent 可以是任意 Dify 应用支持流式返回、异步回调适合复杂多轮对话。缺点需要管理 API Key、处理请求 / 响应格式网络调用有延迟。三、方式 3用「A2A 插件」Dify 官方多智能体方案Dify 有官方 A2AAgent-to-Agent插件专门用于 Agent 之间互相发现和调用。1安装 A2A 插件进入 Dify 市场 → 搜索「A2A」→ 安装配置 Agent 注册简单用 URL 模式填子 Agent 的 .well-known/agent.json 地址企业对接 Nacos 等注册中心。2主 Agent 调用直接用插件提供的两个工具get_a2a_agent_information查所有可用 Agentcall_a2a_agent按名字调用指定 Agent。优点标准协议自动发现、负载均衡适合大规模多智能体协作。缺点配置稍复杂适合企业级场景。四、三种方式对比怎么选方式难度稳定性灵活性适用场景Workflow 嵌套★☆☆★★★★★★★☆简单分工、固定流程、新手HTTP API 调用★★☆★★★★★★★★跨应用、动态参数、多轮对话A2A 插件★★★★★★★★★★★★★大规模多智能体、服务化治理推荐路径初学 / 内部小系统 → 用 Workflow 嵌套需要跨应用 / 多轮 → 用 HTTP 工具企业级多 Agent 集群 → 用 A2A 插件。五、常见坑避坑参数传递不匹配主 Agent 传给子 Agent 的字段要和子 Agent 接收字段一致提示词没写清楚工具描述必须明确 “什么时候用”否则 LLM 不会调用API 权限 / Key 错HTTP 调用时 Key 写错会 401