HERMES AGENT · 架构深度

主Agent调用子Agent
最优方案全解析

delegate_task · 并行分发 · 两阶段审查 · Kanban编排
3
核心模式
3x
并行加速
2
审查阶段
0
上下文污染
基于 Hermes Agent 官方文档 + Nous Research 架构设计 + Addy Osmani 编排理论

🏗️ 架构全景:主Agent ↔ 子Agent 关系模型

主Agent(Orchestrator)
• 持有完整会话上下文
• 负责分解任务、派发子Agent
• 接收摘要结果、整合验证
• 拥有全部工具权限
• 与用户直接交互(clarify)
子Agent(Leaf Worker)
• 🆕 全新隔离上下文(无父Agent记忆)
• 受限工具集(无法 delegate_task / clarify / memory)
• 独立终端会话
• 仅返回最终摘要
• max_spawn_depth=1(不能再派孙子Agent)
上下文隔离机制
子Agent不知道父Agent的历史对话
父Agent必须通过 goal + context 传递所有信息
中间工具调用绝不进入父Agent上下文
→ 防止token膨胀级联传播
同步执行模型
delegate_task 在父Agent turn内**同步阻塞**
父Agent被中断 → 所有子Agent被取消
长期任务用 cronjob / background terminal
非后台任务队列,是同步调用

📐 三大核心编排模式

模式1:并行分发
delegate_task(tasks=[...])
最多3个子Agent同时运行
每个独立问题域一个Agent
研究A + 研究B + 研究C → 同时返回
速度 = N倍单Agent
🔄
模式2:顺序流水线
实现→审查→集成
每个任务:实施+规约审查+质量审查
Fresh context per task
前一步通过才进下一步
质量门控确保正确性
📋
模式3:Kanban编排
Fan-out 多路 → Fan-in 汇总
专业化Profile分配任务
父任务阻塞子任务自动等待
持久化到SQLite(重启不丢)
支持人工介入(block/unblock)

⚡ 模式1:并行分发 — delegate_task(tasks=[])

适用场景

  • ✅ 3+ 个独立任务(不同子系统/问题域)
  • ✅ 任务间无共享状态/文件冲突
  • ✅ 每个任务可独立理解不需其他上下文
  • ✅ 研究型、分析型、调试型任务

不适用

  • ❌ 相关联的任务(修复A可能影响B)
  • ❌ 会编辑同一文件的多个任务
  • ❌ 需要顺序协调的依赖任务

代码示例

delegate_task(tasks=[
  {"goal": "研究WebAssembly 2025",
   "toolsets": ["web"]},
  {"goal": "研究RISC-V服务器芯片",
   "toolsets": ["web"]},
  {"goal": "研究量子计算应用",
   "toolsets": ["web"]}
])
# 三个研究同时进行,3x速度
# 结果以数组返回

🔄 模式2:两阶段审查流水线

👷
实施Agent
写代码/改文件
TDD先测试后实现
完成后提交
📋
规约审查
对照原始需求
检查是否漏做/多做
通过→下一步
🔍
质量审查
代码规范/错误处理
安全/测试覆盖
通过→标记完成
集成验证
全部任务完成后
最终集成审查
全测试套件通过

🚦 四类审查门控(Gates Taxonomy)

🟢
Pre-flight
任务启动前校验
输入完整性
上下文充分性
→ 通过才执行
🔄
Revision
实施后审查反馈
规约合规性
代码质量
→ 不通过则重新实施
⚠️
Escalation
超出子Agent能力
需要人类判断
阻塞等待人工决策
→ block/unblock
🛑
Abort
致命错误/方向错误
不可恢复的状态
放弃当前路径
→ 重新规划

📊 上下文预算管理 — 四级退化模型

等级状态上下文使用行为策略
PEAK最佳<40% 占用深度阅读文件、全量上下文传递
GOOD正常40-60% 占用选择性阅读、优先摘要
DEGRADING警戒60-80% 占用仅读关键部分、委托子Agent处理细节
POOR危险>80% 占用立即委托所有新任务、启动摘要

🔑 子Agent的核心价值:将细节处理从父Agent上下文卸载到独立上下文

🎯 最优方案决策矩阵

场景推荐方案子Agent数审查
研究多个独立主题并行分发≤3 并发无需
实现单个功能直接工具调用0无需
实现复杂功能(多文件)单Agent + 流水线审查1+2两阶段
大型项目(多子系统)Kanban 编排N个Profile门控链
跨领域团队协作Kanban + Profile 分工3-5 Profile每阶段门控
实时对话式开发Parallel Dispatch≤3 并发父Agent验证
24/7 后台任务cronjob + script1脚本自检
需要人工审批Kanban block/unblock1+Escalation

📈 实测对比:单Agent vs 多Agent

单Agent 模式
⏱ 3个研究任务串行 ≈ 12分钟
🧠 上下文累积膨胀 > 80%
🔍 自我审查盲区大
📊 平均质量:6/10
💰 Token消耗:高(重复+冗余)
多Agent 并行 + 审查
⏱ 3个研究并行 ≈ 4分钟 (3x)
🧠 父Agent 上下文 < 40%
🔍 独立审查 Agent 发现更多问题
📊 平均质量:8.5/10
💰 Token总消耗相当(但分布更优)
上下文节省
子Agent中间推理不进入父上下文
仅返回最终摘要(通常 200-500 tokens)
→ 父Agent上下文占用降低 60-80%
→ 可处理更复杂的整体任务
质量提升
规约审查:捕获 90%+ 的遗漏
质量审查:发现 80%+ 的隐患
Fresh context per task → 无历史偏见
两阶段审查 = 人工code review 效果

⚠️ 常见反模式(千万别这样做)

❌ 重叠编辑
多个子Agent同时编辑同一文件 → 冲突/覆盖
✅ 按文件分配任务,不同Agent编辑不同文件
❌ 跳过审查
直接接受子Agent输出 → 质量无保证
✅ 每个任务必经规约+质量双审查
❌ 上下文不足
context 字段只写一句话 → 子Agent瞎猜
✅ 传递完整文件路径、错误信息、约束条件
❌ 审查顺序颠倒
先质量审查再规约审查 → 可能白审查
✅ 必须先规约合规,再质量审查
❌ delegate_task 当 cronjob
父turn中断 → 子Agent被取消 → 工作丢失
✅ 长期任务用 cronjob 或 background terminal
❌ 不验证子Agent报告
子Agent声称"已上传"就相信 → 实际失败
✅ 对外部有副作用的操作(HTTP/POST等)必须验证

🛠️ 子Agent 工具集最优配置

按任务类型选 toolsets

任务类型toolsets
代码开发terminal, file
纯研究web
全栈开发terminal, file, web
浏览器操作browser
文件检查file

越少的工具集 = 越少的token开销 = 越清晰的子Agent行为

子Agent权限边界

能力可用?
terminal / file / web
browser / vision
delegate_task(再派)❌ max_depth=1
clarify(问用户)
memory(写记忆)
send_message(发消息)

📋 Kanban编排 — 持久化多Agent协作

vs delegate_task 的区别

维度delegate_taskKanban
持久化会话内SQLite永久
重启安全❌ 丢失✅ 保持
人工介入block/unblock
依赖管理手动自动parent gate
Profile分工✅ 按角色

Fan-out → Fan-in 模式

# 两个研究Agent并行
t1 = kanban_create("研究成本", assignee="researcher")
t2 = kanban_create("研究性能", assignee="researcher")
# 汇总Agent等两者完成
t3 = kanban_create("综合建议", assignee="analyst",
                   parents=[t1, t2])
# 书写Agent等汇总完成
t4 = kanban_create("决策备忘录", assignee="writer",
                   parents=[t3])

🏆 最佳实践总结

① Fresh Context
每个子Agent获得全新上下文
不继承父Agent的任何历史
context 字段传递所有必要信息
② 最小工具集
只给子Agent完成任务的必要工具
减少token开销和意外操作
代码任务:[terminal, file]
③ 双审强制
规约审查→质量审查 顺序不可颠倒
任一不通过则重新实施
不跳过、不合并审查步骤
④ 验证副作用
子Agent声称的操作结果必须验证
API调用→查响应码
文件写入→stat确认
部署→curl验证
⑤ 上下文预算
监控父Agent上下文使用率
DEGRADING时立即委托
POOR时强制全部新任务委托
⑥ 隔离编辑
不同子Agent编辑不同文件
避免并发写冲突
并行任务=并行文件集
📢 获取完整内容
查看完整版
请在评论区回复
👇 评论区留言,获取完整决策矩阵 + Python脚本模板 👇
💬