多 Agent 协作是 Hermes Agent 处理复杂任务的核心能力之一,其设计目标是将大型任务拆解、分配给多个专门化的 Agent 并行执行,最后汇总结果,从而突破单一 Agent 的上下文窗口和处理能力上限。
核心机制:delegate_task 工具
Hermes Agent 的多 Agent 能力主要通过内置的 delegate_task 工具实现。当主 Agent(Parent Agent)在推理过程中判断当前任务适合拆分并行处理时,会调用 delegate_task,描述子任务的目标和所需上下文,系统随即创建独立的子代理(Child Agent)执行。
每个子代理拥有完全独立的:
主代理不会接收子代理的完整中间执行过程,只接收结构化的结果摘要(summary)、执行状态(status)、Token 消耗和工具调用轨迹(tool_trace),从而避免上下文膨胀,这正是 Hermes Agent 能在资源受限环境下高效运行的关键设计之一。
支持的协作模式
Hermes Agent 社区在实践中总结出多种多 Agent 协作模式:
模式 | 说明 | 适用场景 |
|---|---|---|
Orchestrator + Worker | 主 Agent 负责拆任务和汇总,Worker Agent 负责执行子任务 | 复杂研究、多步骤开发任务 |
Supervisor + Subagent | 主 Agent 负责审核,子 Agent 负责具体执行 | 需要质量把关的内容生成 |
专家角色分工 | 不同 Agent 配置不同专业领域模型和工具集 | 跨领域综合分析 |
并行研究 | 多个 Research Agent 同时检索不同信息源 | 信息密集型的调研任务 |
实际案例
用户要求"并行分析三台服务器的状态"时,Hermes Agent 会自动判断这三个任务相互独立、可以并行执行,于是 spawn 三个子代理分别处理,最后汇总结果返回给用户。整个过程无需用户显式指定,Agent 会根据任务语义自动判断是否适合委托。
用户也可以显式要求并行执行,例如:hermes "并行做以下三件事:1. 检查 server-1 状态 2. 备份数据库 3. 清理日志"。
Kanban 多 Agent 协作系统(v0.12.0+)
Hermes Agent 在 v0.12.0 版本中引入了基于看板(Kanban)的多 Agent 协作系统。核心思路是把任务放到共享看板上,每个 Agent 作为独立操作系统进程自行认领、并行执行,替代进程内子 Agent 的调度方式。整套系统围绕本地 SQLite 数据库运转,每次认领是原子事务,多个 Agent 竞争同一任务时只有一个能拿到。Agent 崩溃或超时后,调度器通过进程存活检测自动回收任务并重新分配,连续失败三次触发熔断,任务自动锁定等待人工介入。
配置方式
在 ~/.hermes/config.yaml 中启用多 Agent 功能:
multiagent:
enabled: true
max_agents: 5
default_role: worker