Skip to main content

多智能体模式:DelegateTool vs FanOutTool vs Handoff

QitOS 提供三种多智能体协调机制。本指南帮助你根据使用场景选择合适的模式。

决策树

DelegateTool

拓扑:树形(父 → 子 → 孙) 结果流:子智能体结果作为工具输出返回给父智能体 执行:同步,嵌套 Engine.run()
适用场景
  • 协调器需要从专家获取返回结果
  • 顺序依赖:步骤 2 依赖步骤 1 的输出
  • 嵌套式 研究 → 实现 → 验证

FanOutTool

拓扑:扇出(1 → N 并行,然后扇入) 结果流:所有 N 个结果聚合为摘要 执行:通过 ThreadPoolExecutor 并行
LLM 调用:fanout(tasks=[{"agent":"explorer","task":"探索 /auth"}, {"agent":"explorer","task":"探索 /api"}]) 适用场景
  • 并行探索不同目录的代码
  • 并行测试不同端点
  • 子任务相互独立的任何场景
关键特性
  • max_workers:线程池大小(默认 4)
  • per_task_timeout:单任务超时秒数(默认 120s)
  • 聚合结果包含成功/部分成功/失败统计

Decision.handoff()

拓扑:链式(A → B → C) 结果流:无返回 — 控制权永久转移 执行:同一 Engine 循环,智能体切换
适用场景
  • 工作流式流水线(分流 → 编码 → 审查)
  • 线性处理阶段
  • 下游智能体不需要向上汇报

ContextStrategy

控制子智能体接收的上下文:

深度保护

DelegateTool 和 FanOutTool 均强制 MAX_DELEGATE_DEPTH=3,防止无限递归委派。Handoff 有 max_handoffs(默认 10,可通过 ContextConfig.max_handoffs 配置)和循环检测。

模式模板

QitOS 提供内置模式模板: