Files
mkdocs/docs/Obsidian笔记体系/Projects/agent/多agent协作.md
2026-05-11 00:31:26 +08:00

4.1 KiB
Raw Blame History

当前系统多 Agent 协作能力

一、四种协作模式(后端已实现,前端暂无 UI)

核心在 backend/app/agent_runtime/orchestrator.py,AgentOrchestrator 支持:

┌────────────┬────────────────┬─────────────────────────────────────────────────────────────────────────────┐ │ 模式 │ 机制 │ 说明 │ ├────────────┼────────────────┼─────────────────────────────────────────────────────────────────────────────┤ │ route │ 路由分发 │ Router Agent 分析问题 → 挑选最合适的 Specialist Agent → 委托执行 → 返回结果 │ ├────────────┼────────────────┼─────────────────────────────────────────────────────────────────────────────┤ │ sequential │ 顺序流水线 │ Agent A → B → C 依次执行,上一轮的输出作为下一轮的输入 │ ├────────────┼────────────────┼─────────────────────────────────────────────────────────────────────────────┤ │ debate │ 并行辩论 │ 多个 Agent 同时回答同一问题,Aggregator Agent 综合各方观点输出最终答案 │ ├────────────┼────────────────┼─────────────────────────────────────────────────────────────────────────────┤ │ pipeline │ 规划-执行-审核 │ Planner 拆解任务 → Executor 逐步执行 → Reviewer 审核结果 │ └────────────┴────────────────┴─────────────────────────────────────────────────────────────────────────────┘

API 端点:POST /api/v1/agent-chat/orchestrate

二、工作流 DAG 中的 Agent 协作

在 backend/app/services/workflow_engine.py 中,工作流支持两种方式引入 Agent:

  • agent 节点:在工作流画布上拖入一个 Agent 节点,内部运行完整的 ReAct 循环(思考→调工具→再思考),输出传给下游节点
  • subworkflow / invoke_agent 节点:一个工作流/Agent 调用另一个工作流或 Agent 作为子执行,支持父子执行记录追踪和深度限制(防止无限递归)

三、多用户协同编辑(Workflow 画布)

backend/app/api/collaboration.py 支持多人在同一工作流画布上实时协作(类似 Figma),通过 WebSocket 广播节点/连线的增删改操作。

四、本质限制

  • Agent 之间没有共享记忆,各自独立
  • Agent 之间没有直接消息传递,全靠 Orchestrator 或工作流 DAG 数据流中转
  • 没有"团队/swarm"概念,Agent 不能自组织
  • 没有 call_agent 工具,Agent 不能像调工具一样调用另一个 Agent

你现在要用哪种协作模式? 比如:

  • 用 route 模式做"路由 + 专业分工"(橙子助手路由到不同专业 Agent)
  • 用 debate 模式做"多视角讨论"
  • 在工作流画布上用 agent/subworkflow 节点串联多个 Agent