Skip to content

子代理派生

源码版本v2026.7.20

职责

delegate_tool 让主 agent 把一个子任务派生给隔离的子代理:子代理有自己的对话、自己的终端、自己的工具集,跑完只把最终结果交回父代理。这实现了「零上下文成本」的流水线——父代理上下文不被子任务的过程细节污染。子代理在 ThreadPoolExecutor worker 里运行,危险命令默认 auto-deny(可配置 auto-approve)。

关键文件

数据流

  1. 主循环 provider 返回 tool_call: delegate
  2. delegate_task:2426 被调用,拿到子任务描述与可选 toolsets。
  3. DaemonThreadPoolExecutor:2651 里起一个 worker:
  4. 子代理完成后只把最终文本交回,delegate_task 经 tool_result:798 封装回填给父代理。
  5. 父代理上下文只增长一条 tool 结果,不被过程污染。

小结

子代理派生 = 上下文隔离 + 危险命令管控。父代理只看结果,不看过程,这让长流水线不被过程噪声撑爆。安全默认 auto-deny,批量/cron 场景可 opt-in auto-approve。终端执行落在沙箱后端

非官方社区学习站,内容以 MIT 许可的 NousResearch/hermes-agent 源码为依据。