本文是 Hermes Agent 教学系列 第 09 篇。Hermes 「多身」机制:并行、隔离、零上下文成本。
为什么需要子 agent
单一 agent 跑一件多步骤任务会遇到两个问题:
- 上下文污染 —— 主会话为了走完任务会塞入大量中间状态(拉到的页面、应該的脱出、调试输出)。完成后这些状态还在主会话里,占位、费钱、让后面的对话变慢
- 串行瓶颈 —— 你让它同时处理 10 个 URL,它只能一个一个跑
子 agent 解决这两问:
- 隔离 —— 子 agent 有独立会话、独立终端、独立上下文。完成后只返回结果,不能说话中途不会拉主上下文
- 并行 —— 多个子 agent 同时干活,主 agent 只需要等汇总
官方叫这个「zero-context-cost pipelines」——主 agent 不需要为子任务的中间状态付出上下文代价。
最简单的调用
在主对话里:
Hermes 会调用
delegate 工具:你看到的只是返回值。中间过程(子 agent 怎么拆页面、重试、处理 404)都不在主会话里。
手写子任务定义
同上篇的定时任务类似,手写可以变更多:
主会话里调用:
Hermes 会同时启 10 个子 agent,等完成后调一次主 LLM 合成表格。
Backends:子 agent 跑在哪里
这是 Hermes 架构中较独特的地方。子 agent 不一定跑在主进程里,可以选下面 6 种任一种:
Backend | 隔离程度 | 使用场景 |
local | 轻 | 调试、快速调用、信任代码 |
docker | 中 | 跑未知代码、需要独立环境 |
ssh | 中 | 跑在远端机器上 |
daytona | 高 | serverless,空闲休眠,推荐 |
modal | 高 | serverless,GPU 上需要跑不同场景 |
singularity | 高 | HPC 集群(学术场景) |
给初学者的建议路径:
- 入门 →
local,看清楚子 agent 怎么跳
- 上手 →
docker,报错不会检查你主机,可以跑任意 Python/Node 代码
- 进阶 →
daytona或modal,多任务并行也不炸你本机
配置默认 backend:
模式:fan-out / fan-in
最常用的子 agent 模式是呈扣生舔合:
在主对话里带 「并行」/「并发」 关键词 Hermes 会自己选这个模式。
Python RPC:让子 agent 干代码活
子 agent 不一定仅调 LLM,也能报跨出来跑独立 Python。Hermes 提供 RPC 接口:
主会话里:
子 agent 跑这段 Python,返回结果。适用于:
- LLM 不适合的纯计算/数据处理任务
- 你已有现成代码,不需要 LLM 重写
- 重复调用,token 费太贵
查看运行中的子 agent
发现某个子任务的习惯跳宕?
hermes delegate stats <skill_name> 看该子任务的成功率、平均耗时、p99 耗时。常见坍陷
- 主会话里拼命能倌运 —— 子任务能走就走子任务,主会话越干净越好
- 输出格式严格。子任务返 Markdown 发言在主会话里会被 LLM 重新解释,造成口微差。返 JSON 程度可控
- token 预算心里有数。并行 50 个子 agent 听起来酷,但千 token / 任务 × 50 = 5 万 token 一次调用
- 避免嵌套太多。子 agent 再调子子 agent 在仗中十全,但调试会变个黑盒子
下一篇
到这一篇为止 Hermes 的能力面近与全都讲完了。下一篇讲现实问题:怎么部署到云端。$5/月 VPS 能不能肩起?Daytona / Modal / SSH / Docker 几种后端各适合什么场景?
本系列文章持续更新,下篇见。
- 作者:Vemperor
- 链接:https://tangly1024.com/article/hermes-09-subagents
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。


