news 2026/4/30 20:27:10

Hermes 下启动 Sub Agent 失败的痛苦教训

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Hermes 下启动 Sub Agent 失败的痛苦教训

Hermes 下启动 Sub Agent 失败的痛苦教训

我以为 subagent 可以帮我并行搜索、整理资料、写好文件、一气呵成。

结果它跑了 9 分钟,中途超时,什么都没写完。


事情经过

任务很简单:搜索国产大模型(DeepSeek V4、Kimi K2.6、GLM 5.1、Qwen3、MiniMax M2.7)的最新数据,整理成 context.md,供主线程写文章用。

我用了delegate_task,给 subagent 分配了["web", "file"]工具集,让它自己跑。

delegate_task(goal="搜索以下方向资料,整理成结构化 context.md 保存到 ~/.hermes/tmp/...",toolsets=["web","file"])

subagent 开始工作了,开始搜索了,搜了很多页面,extract 了很多内容……

然后,9 分钟后:

status: interrupted Operation interrupted: waiting for model response (293.1s elapsed) input_tokens: 205,776

文件没写,任务中断,一切归零。


为什么这么慢?四个核心原因

1. 冷启动:每个 subagent 都是全新 Session

subagent 没有任何上下文继承。它需要:

  • 重新加载完整 system prompt
  • 重新初始化工具列表
  • 从零开始理解任务

光初始化就要十几秒。这是固定成本,无论任务多简单都省不掉。

2. 工具调用是串行的,每步都要等 LLM

subagent 的执行模式是:

web_search → 等模型推理 → web_search → 等模型推理 → web_extract → 等模型推理 → write_file

每一步都是一次完整的LLM 推理 + 网络 RTT。如果搜 8 个方向,每步间隔 10 秒,叠起来就是好几分钟。

这不是并发,是串行 IO 密集型任务——偏偏 subagent 最不擅长这个。

3. Token 雪球:上下文越大,越慢

那次 subagent 的 token 消耗:

input_tokens: 205,776

原因是每次 web_extract 返回几千字,全部追加到对话历史里,下一轮推理时要把所有历史重新带上。

上下文越大,Attention 计算越慢(接近二次方级别)。到了 200k tokens,每次推理可能要 20-30 秒。任务越多,滚雪球越快,最终超时崩掉。

4. Provider 共享配额

主线程和 subagent 用的是同一个 provider(Copilot / claude-sonnet-4.6)。subagent 跑重任务时,主线程也在等——配额可能排队,进一步放大了延迟。


根本误区:把 subagent 当成"更强的自己"

很多人(包括我)会这样想:

“这个任务我做要 10 步,subagent 帮我做,我可以去干别的。”

这个思路本身没错。但问题在于:subagent 做这 10 步,每步都比你慢——因为它需要额外的上下文重建、推理等待、token 积累。

subagent 的价值在于隔离并行,不在于加速串行任务。

✅ 适合 subagent 的任务: - 真正相互独立、可并行的任务(3 个子任务同时跑) - 推理密集、计算量大的单次任务(代码审查、文档分析) - 需要上下文隔离的任务(避免污染主线程) ❌ 不适合 subagent 的任务: - 多轮搜索 + 整理(串行 IO 密集) - 需要频繁读写文件的流程(每步都要等 LLM 确认) - 任务链条长、中间依赖多的(5步以上、每步依赖上一步结果)

教训和改法

教训一:搜索 + 整理,主线程自己做更快

像"搜新闻整理成文章"这种任务,本质是IO 密集 + 串行依赖

我自己直接做:搜索(几秒)→ 处理(本地)→ 写作(一次推理),全程不到 2 分钟。

subagent 做:初始化(15 秒)→ 多轮搜索(每轮 10 秒)→ 上下文膨胀(越来越慢)→ 超时(9 分钟后中断)。

结论:串行 IO 任务,主线程直接做。

教训二:给 subagent 的任务要"自包含"

好的 subagent 任务长这样:

# ✅ 好:自包含,单次推理可完成delegate_task(goal="分析这段代码的安全漏洞,返回风险列表",context="代码内容:[具体代码]")# ❌ 坏:需要多轮 IO,依赖外部搜索delegate_task(goal="搜索 10 个方向的资料,整理成 context.md,然后写文章")

一个 subagent,一件事,一次返回。

教训三:用 execute_code 替代轻量 subagent

如果只是需要"搜索 + 处理数据",用execute_codeweb_search+web_extract效率远高于 subagent:

  • 无冷启动
  • 脚本化控制,不需要 LLM 每步决策
  • 输出直接进入主线程,无跨 session 开销
# execute_code 里直接批量搜索fromhermes_toolsimportweb_search,web_extract results=web_search("DeepSeek V4 benchmark",limit=5)# 立刻拿到结果,无等待

一句话总结

subagent 是放大器,不是加速器。

它能让你同时做多件事,但不能让每件事本身变快。用对了是翅膀,用错了是 9 分钟后的一条超时报错。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 20:25:46

Keras实现Polyak Averaging提升深度学习模型性能

1. 项目概述在深度学习模型训练过程中,如何获得更稳定、泛化能力更强的模型一直是研究者关注的重点。Polyak Averaging(波利亚克平均)是一种通过平均多个训练阶段的模型权重来提升模型性能的经典技术。这个项目展示了如何在Keras框架中实现神…

作者头像 李华
网站建设 2026/4/30 20:24:27

不止于启动:让rknn_server在RK3568等开发板上开机自启的几种实用方法

不止于启动:让rknn_server在RK3568等开发板上开机自启的几种实用方法 在嵌入式AI产品开发中,确保关键服务随系统自动启动是产品化的重要环节。rknn_server作为瑞芯微平台AI推理的核心服务,其稳定性直接影响整个应用的可靠性。本文将深入探讨几…

作者头像 李华
网站建设 2026/4/30 20:24:22

大语言模型与强化学习结合的动态推理优化

1. 项目概述:当大语言模型遇见强化学习在自然语言处理领域,大语言模型(LLM)的推理效率一直是制约其实际应用的关键瓶颈。传统方法通常采用固定规模的模型进行计算,导致简单任务资源浪费、复杂任务性能不足的双重困境。…

作者头像 李华
网站建设 2026/4/30 20:21:38

时间戳认证专家

一、时间戳:软件测试电子证据的“信任基石” 在软件测试工作中,测试用例执行结果、缺陷报告、性能监测数据、跨团队沟通记录等,最终都会以电子数据的形式沉淀下来。这些电子数据不仅是评估软件质量的核心依据,在合同纠纷、知识产…

作者头像 李华