Hermes Agent 并行任务:Subagent Delegation完全指南(2026最新)

OpenClaw 企业定制 私人订制工作流 优化运维 openclaw记忆优化 问题咨询解决 请加微信交流

微信: aixbwz

想象一下这个场景:你让AI帮你同时研究三个不同的技术话题,然后把结果汇总起来。正常AI助手只能一个一个来,但Subagent Delegation可以同时让三个AI分身并行工作。

这是Hermes Agent最强大的功能之一。它让你同时处理多个复杂任务,每个任务有独立的AI上下文,互不干扰。这篇讲清楚它是什么、怎么用、以及实际场景。

Subagent是什么

Subagent是Hermes Agent的”分身术”。当你需要一个任务同时做多件事时,可以派生出多个独立的AI子进程。

每个子进程有:

  • 独立的对话上下文(完全不知道主对话里之前说了什么)
  • 受限的工具集(你可以决定它能用什么工具)
  • 独立的终端会话
  • 只返回最终总结给主Agent

主Agent派发任务后,各个子任务并行执行,最后汇总结果。

两种模式

单任务模式

delegate_task(
    goal="Debug why tests fail",
    context="Error: assertion in test_foo.py line 42",
    toolsets=["terminal", "file"]
)

并行模式(最多3个)

delegate_task(
    tasks=[
        {"goal": "Research topic A", "toolsets": ["web"]},
        {"goal": "Research topic B", "toolsets": ["web"]},
        {"goal": "Fix the build", "toolsets": ["terminal", "file"]}
    ]
)

超过3个的任务会被截断,这是设计上的权衡,避免资源竞争。

重要:上下文隔离

这是最容易踩坑的地方。

Subagent从零开始,它不知道主对话里之前说了什么。它唯一的上下文来自goal和context参数。

# 错误:Subagent不知道"这个错误"是什么
delegate_task(goal="Fix the error")

# 正确:所有需要的上下文都传进去
delegate_task(
    goal="Fix the TypeError in api/handlers.py",
    context="File: api/handlers.py line 47. Error: NoneType object has no attribute get. Function process_request() receives dict from parse_body(), but parse_body() returns None when Content-Type is missing. Project at /home/user/myproject, Python 3.11."
)

原则:把Subagent当成一个完全不了解你项目的人来对待。你需要把所有它需要知道的信息都告诉它。

实战场景

并行研究

同时研究三个话题,汇总结果:

delegate_task(
    tasks=[
        {
            "goal": "Research WebAssembly state in 2025",
            "context": "Focus on: browser support, non-browser runtimes, language support",
            "toolsets": ["web"]
        },
        {
            "goal": "Research RISC-V adoption in 2025",
            "context": "Focus on: server chips, embedded systems, software ecosystem",
            "toolsets": ["web"]
        },
        {
            "goal": "Research quantum computing progress in 2025",
            "context": "Focus on: error correction breakthroughs, practical applications",
            "toolsets": ["web"]
        }
    ]
)

三个研究并行跑,5分钟出结果,而不是一个一个跑要15分钟。

代码审查+自动修复

派一个Subagent去做安全审查,发现问题直接修复:

delegate_task(
    goal="Review authentication module for security issues and fix any found",
    context="Project at /home/user/webapp. Auth files: src/auth/login.py, src/auth/jwt.py, src/auth/middleware.py. Uses Flask, PyJWT, bcrypt. Focus on: SQL injection, JWT validation, password hashing. After fixing, run pytest tests/auth/ to verify.",
    toolsets=["terminal", "file"]
)

审查和修复由同一个Subagent完成,它知道改了什么、为什么改,最后给你一个总结报告。

大型重构

想把所有print()替换成logging?这种大型重构放给Subagent处理,不撑爆主对话的上下文:

delegate_task(
    goal="Refactor all Python files in src/ to replace print() with proper logging",
    context="Project at /home/user/myproject. Use logging module with logger = logging.getLogger(__name__). Replace: print with logger calls. Do not change test files or CLI output. After refactoring, run pytest to verify.",
    toolsets=["terminal", "file"]
)

工具集选择

toolsets参数决定Subagent能用什么工具:

工具集 适用场景
[“terminal”, “file”] 代码工作、调试、文件编辑、构建
[“web”] 研究、事实核查、查文档
[“terminal”, “file”, “web”] 全功能任务
[“file”] 只读分析,不执行代码
[“terminal”] 系统管理、进程管理

永远被阻止的工具

无论你怎么配置,以下工具Subagent永远不能用:

  • delegate_task — 不能递归派生(防止无限循环)
  • clarify — 不能和用户交互
  • memory — 不能写共享的持久记忆
  • send_message — 不能跨平台发消息(如发Telegram)

子任务模型配置

可以在config.yaml里给Subagent单独配置更便宜更快的模型:

# ~/.hermes/config.yaml
delegation:
  model: "google/gemini-flash-2.0"
  provider: "openrouter"

简单任务用Gemini Flash,省钱。复杂推理任务还是用Claude或GPT-4。

并行执行细节

  • 最多3个并发:超过的会被截断
  • 实时进度:CLI模式下实时显示各Subagent的执行进度
  • 按序返回:结果按任务顺序返回,不管完成先后
  • 中断传播:中断主对话时,所有子任务也会被中断

迭代次数限制

每个Subagent有迭代次数限制(默认50次),控制它最多能调用多少次工具:

delegate_task(
    goal="Quick file check",
    context="Check if /etc/nginx/nginx.conf exists and print its first 10 lines",
    max_iterations=10
)

深度限制

Subagent不能再派Subagent。深度限制是2:

  • 深度0:主Agent
  • 深度1:Subagent
  • 深度2:(不允许再派生)

这是为了防止无限递归的派生活动。

和execute_code的区别

维度 delegate_task execute_code
推理能力 完整LLM推理循环 只是Python代码执行
上下文 全新隔离对话 无对话,只有脚本
工具访问 所有非阻止工具+推理 7个工具通过RPC,无推理
并行性 最多3个并发 单个脚本
适用场景 需要判断的复杂任务 机械性数据处理
Token消耗 较高(完整LLM循环) 较低(只返回stdout)

原则:需要推理、判断、多步骤解决问题的用delegate_task。只需要机械性数据处理或脚本化流程的用execute_code。

一个真实例子

假设你要做一个全面的技术调研,需要:

  1. 研究竞品A的功能和定价
  2. 研究竞品B的用户评价
  3. 研究目标用户的需求
  4. 写一份综合报告

传统方式:一个个来,1小时起步。

用Subagent:三个研究并行跑,15分钟出初稿。

delegate_task(
    tasks=[
        {"goal": "Research competitor A features and pricing", "toolsets": ["web"]},
        {"goal": "Research competitor B user reviews", "toolsets": ["web"]},
        {"goal": "Analyze target user pain points", "toolsets": ["web"]}
    ]
)

三个Subagent同时工作,主Agent汇总结果,写报告。

常见问题

Subagent挂了怎么办?

返回错误信息告诉你哪个任务失败了,主Agent可以决定重试或换策略。

能开超过3个并行吗?

不能,限制是3个。这是设计上的权衡,避免资源竞争。

Subagent能看到主对话的文件吗?

可以,只要在context里告诉它文件路径,它通过工具集访问。

子任务结果什么时候能看到?

所有子任务完成后,主Agent才收到汇总结果。所以如果某个任务很慢,会等它。

总结

Subagent Delegation让Hermes Agent真正具备了并行处理能力。

核心价值:

  • 多任务并行,节省时间
  • 上下文隔离,不污染主对话
  • 工具集受限,更安全
  • 子任务可用便宜模型,省成本
  • 适合:并行研究、批量处理、大型重构、安全审查

用它来分解复杂任务,并行处理,效率翻倍。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容

七天热门