Hermes 多 Agent 实战:当 AI 开始调度 AI

2247 字
11 分钟
Hermes 多 Agent 实战:当 AI 开始调度 AI

从”一个 AI 干活”到”AI 指挥 AI”#

如果你用过 ChatGPT、Claude 这类对话式 AI,你一定熟悉这个模式:

你问一个问题 → AI 思考 → 给你一段回答。

这个模式很优雅,但有一个致命的瓶颈——AI 每次只能干一件事。你想让它搜资料、写代码、做测试、写文档,它得一件一件来。中间结果会撑爆上下文窗口,token 像沙漏里的沙子一样流失。

直到有一天,我遇到了一个完全不同的范式。


Hermes Agent 的 delegate_task:AI 调度 AI#

Hermes Agent 是一个开源的 AI 助手框架,支持 Telegram、Discord、Slack、飞书等多个平台。它有一个叫 delegate_task 的工具,彻底改变了”AI 如何干活”这件事。

什么是 delegate_task?#

一句话解释:它让 AI 可以派出多个子代理(subagent),各自在隔离环境中并行工作,最后汇总结果。

这不是简单的”开几个线程”,而是一个完整的多 Agent 编排引擎

你下指令
Hermes(调度者)拆解任务
┌──────────────┬──────────────┬──────────────┐
│ 子代理 A │ 子代理 B │ 子代理 C │
│ 搜资料 │ 分析代码 │ 查历史 │
│ web+search │ terminal+file│ session_search│
└──────┬───────┴──────┬───────┴──────┬───────┘
│ │ │
└──────────────┴──────────────┘
汇总结果
Hermes 最终输出给你

核心设计:隔离与聚合#

delegate_task 有几个关键设计原则:

1. 完全隔离的上下文

每个 subagent 有独立的:

  • 对话历史(不知道其他子代理在干什么)
  • 终端会话(独立的进程和工作目录)
  • 工具集(只获得被授权的工具)

这意味着子代理之间不会互相干扰,也不会污染主对话的上下文窗口。

2. 仅返回摘要

子代理执行过程中的中间结果(搜到的网页、读到的文件、执行的命令输出)不会回到主代理的上下文中。只有最终的摘要被返回。

这解决了一个大问题:当你派子代理去读 50 个网页,它不会把 50 个网页的全文塞回给你的对话上下文。它只会告诉你”我看了 50 个网页,结论是……”。

3. 灵活的工具集配置

每个子代理可以被赋予不同的工具集:

子代理工具集能干什么
Aterminal + file执行 Shell 命令、读写文件
Bweb + search上网搜索、抓取网页内容
Cbrowser + vision浏览器自动化、截图分析
Dsession_search搜索历史会话记录

实战:写一篇博客并发布#

光说不练假把式。让我用一个真实案例来演示——写一篇关于”Hermes 多 Agent 编排”的博客,提交到 Gitee,部署到服务器。

任务拆解#

作为一个调度者,我把这个任务拆成了三个并行的子任务:

子代理A:
目标: 搜索 Hermes 多agent架构和delegate_task的技术资料
工具集: web + search + terminal
输出: 结构化技术笔记
子代理B:
目标: 检查博客项目结构和已有文章
工具集: terminal + file
输出: 目录结构、文章列表、配置信息
子代理C:
目标: 搜索历史会话了解已有博客内容
工具集: session_search
输出: 相关文章标题和部署流程

三个子代理同时启动,互不等待。

子代理A:资料搜集#

子代理A 的任务是上网找资料。它做了这些事:

  1. 搜索 Hermes Agent 的官方文档
  2. 查找 delegate_task 的 API 说明和配置参数
  3. 在本地工作区查找相关配置文件
  4. 整理出多 Agent 架构的设计模式

它返回了一份结构化的技术笔记,包含了架构图、代码示例、与其他多 Agent 框架(CrewAI、AutoGen、LangGraph)的对比。

关键发现:

  • 配置方式:在 ~/.hermes/config.yamldelegation 段控制
  • 并发限制:默认最多 3 个并发子代理
  • 迭代上限:每个子代理最多执行 50 轮工具调用
  • 上下文隔离:这是最核心的设计决策——子代理不知道彼此的存在

子代理B:项目侦察#

子代理B 的任务是检查博客项目。它做了这些事:

  1. 扫描 /root/workspace 下的博客项目结构
  2. 列出 src/content/posts/ 下的所有文章(39 篇已发布)
  3. 读取最近几篇文章的 frontmatter 格式
  4. 提取博客配置(站点名、URL、主题等)

返回的关键信息:

  • 博客框架:Astro + Svelte + Tailwind v4
  • 文章格式:Markdown frontmatter(title、published、tags、category、draft)
  • 部署路径:/www/wwwroot/boke.hackerdream.xyz/
  • 已有 39 篇文章,最近一篇是 2026-04-08

这确保了我写的新文章格式完全一致,不会破坏博客的构建。

汇总与写作#

三个子代理完成后,我拿到了所有素材。这时候的我,像一个主编拿到了记者们交来的稿子。

接下来的工作:

  1. 整合素材:把子代理A的技术笔记、子代理B的项目结构、自己的经验融合
  2. 撰写文章:按照博客的格式和风格写 3000-4500 字
  3. 保存文件:写入 src/content/posts/hermes-multi-agent-orchestration.md
  4. Git 操作:提交到 Gitee 仓库
  5. 部署:SSH 到服务器,git pull + pnpm build + rsync

部署执行#

部署流程是这样的:

Terminal window
# 1. 克隆/更新博客仓库
git clone https://gitee.com/wyb_001/myboke.git
cd myboke
git pull
# 2. 构建(4G 内存服务器需要 Swap)
pnpm install
pnpm build
# 3. 部署到网站目录
rsync -av dist/ /www/wwwroot/boke.hackerdream.xyz/

4G 内存的服务器上构建 Astro 项目,需要配置 Swap 防止 OOM。这是子代理B在侦察时发现的细节。

为什么要用多 Agent?#

你可能会问:让一个 AI 慢慢干不行吗?为什么要搞这么复杂?

对比:单 Agent vs 多 Agent#

维度单 Agent 顺序执行多 Agent 并行
耗时搜索→分析→写作,串行三个任务并行,总耗时≈最慢的那个
上下文所有中间结果占满上下文子代理的中间结果不污染主上下文
错误隔离一个环节失败,全部重来某个子代理失败,可以降级处理
工具隔离所有工具混在一起每个子代理只获得需要的工具
适用场景简单线性任务复杂调研、代码重构、数据分析

什么时候该用多 Agent?#

应该用的场景:

  • 需要从多个独立来源收集信息(并行搜索)
  • 代码重构:一个子代理分析代码,另一个写测试
  • 复杂任务分解:研究→设计→实现→测试,可以部分并行
  • 长时间任务:子代理可以在后台跑,不占用主对话

不该用的场景:

  • 简单问答:“今天天气怎么样”
  • 强依赖任务:必须先 A 后 B,无法并行
  • 单步骤操作:“把这个文件重命名一下”

三种调度模式#

1. Fan-Out / Fan-In(辐射/汇聚)#

最常见的模式:一个任务拆成多个并行子任务,最后汇总。

调度者
├── 子代理A:搜资料
├── 子代理B:看代码
└── 子代理C:查历史
↓(全部完成)
汇总 → 输出

2. Pipeline(流水线)#

子任务有前后依赖关系,但可以部分重叠。

子代理A(调研)→ 子代理B(设计)→ 子代理C(实现)

3. Supervisor(监督者)#

调度者持续监控多个子代理的执行情况,动态调整策略。

调度者
↙ ↓ ↘
工人A 工人B 工人C
↖ ↓ ↗
动态调度(失败重试、超时终止)

与其他多 Agent 框架的对比#

目前市面上有不少多 Agent 框架:

框架语言并行方式特点
Hermes AgentPython进程隔离内置 15+ 工具集、多平台、记忆系统
CrewAIPythonasyncio角色-任务-流程编排
AutoGenPython异步对话多 Agent 对话模式
LangGraphPython状态图基于图的 Agent 编排

Hermes Agent 的独特之处在于:

  1. 进程级隔离:不是 asyncio 协程,是完全独立的进程,有自己的终端会话
  2. 丰富的工具生态:terminal、browser、web、file、feishu_doc 等 15+ 工具集
  3. 多平台消息:Telegram、Discord、Slack、飞书、WhatsApp 等平台无缝接入
  4. 记忆系统:持久化记忆 + 会话搜索,跨会话保留上下文
  5. 技能系统:68 个可复用的技能模块

写在最后#

多 Agent 编排不是炫技,而是解决了一个实际问题:如何让 AI 处理复杂的、多维度的任务,而不仅仅是回答一个问题。

当你有一个任务需要:

  • 从多个来源收集信息
  • 同时分析多个文件
  • 并行执行多个独立步骤
  • 保持主对话上下文的清洁

这时候,delegate_task 就是你最好的朋友。

一个 AI 干活叫”自动化”。多个 AI 协作干活,才叫”智能体编排”。


本文撰写过程本身就是多 Agent 编排的实践:3 个子代理并行搜集素材,调度者汇总写作,最终完成博客文章的撰写和部署。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Hermes 多 Agent 实战:当 AI 开始调度 AI
https://boke.hackerdream.xyz/posts/hermes-multi-agent-orchestration/
作者
晴天
发布于
2026-04-28
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
晴天
Hello, I'm 晴天.
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
125
分类
17
标签
287
总字数
257,955
运行时长
0
最后活动
0 天前

目录