Hermes 是一个基于 Python 的 AI Agent 框架,支持多代理协作。从 v0.12.0 开始,Hermes 引入了 Kanban(看板)功能,让多个 AI 代理能够像团队一样分工合作。本文将全面介绍 Hermes 多代理协作的原理、配置方法和实战案例。
前置知识
在开始之前,需要了解三个基础概念:
- Python:Hermes 是用 Python 编写的,安装前需要先装 Python
- 终端(Terminal):Windows 上叫"命令提示符"或"PowerShell",Mac 上叫"终端",是输入命令的地方
- pip:Python 的包管理器,用于安装 Hermes
检查 Python 是否已安装:
python --version
# 或
python3 --version
检查 pip 是否已安装:
pip --version
# 或
pip3 --version
注意:Windows 用户安装 Python 时记得勾选"Add Python to PATH"。
什么是多代理?
单代理模式是一个 AI 听你的指令做事。多代理则是让多个 AI 同时或依次工作,像一个小团队一样分工合作。例如:
- A 代理负责查资料
- B 代理负责写文章
- C 代理负责检查错别字
多代理适合以下场景:
- 任务涉及多个专业领域:每个领域一个专属代理
- 任务复杂、步骤多:每个步骤一张任务卡,不丢不漏
- 需要人盯着看进展:看板可视化,随时能看到谁在干什么
- 同类任务定期重复:代理有记忆,积累经验越做越快
Hermes 的三种协作模式
① Subagent Delegation(子代理委派)
最基础的多代理模式。主代理通过 delegate_task 把任务分给子代理,子代理完成后主代理合并结果。有三种委派方式:
- Fan-out(扇出):主代理同时派发多个独立任务给不同子代理,并行处理
- Pipeline(流水线):任务按顺序流经多个子代理,前一个的输出是后一个的输入
- Supervisor-Worker(监督者-工人):监督者代理负责分配任务、监控进度、审查质量
关键特性:不同子代理可以用不同模型、支持两阶段审查、可配置不同权限。
② Kanban 多代理看板
Hermes v0.12.0 引入的核心功能。任务先写进看板,多个代理从看板的 Ready(待办)列领取任务,干完推进到 Done(完成)列。如果任务依赖另一张卡片的成果,可以用父子链接让子任务等父任务做完才开工。
Kanban 与 Delegation 的对比:
| 特性 | Delegation | Kanban |
|---|---|---|
| 任务持久化 | 不一定,取决于会话 | 是,永久存在 SQLite 数据库 |
| 中途查看进展 | 不能,只能等结果 | 能,看板实时刷新 |
| 代理崩溃任务丢失 | 会 | 不会,自动恢复或手动重新分配 |
| 多人共享看板 | 不能 | 能,团队共享 |
| 任务依赖 | 不能 | 能,父子链接自动触发 |
③ Cross-CLI Agent Orchestration(跨 CLI 代理编排)
Hermes 可以调度外部 AI 工具(如 Claude Code、OpenCode)来干活,成为一个元编排器(Meta-Orchestrator)。
环境准备
检查当前版本
hermes --version
如果版本低于 0.12.0,Kanban 功能就没有或不全,需要升级。
升级到最新版
# pip 升级(最常用)
pip install --upgrade hermes-agent
# 国内网络加速
pip install --upgrade hermes-agent -i https://pypi.tuna.tsinghua.edu.cn/simple
# conda 用户
conda update hermes-agent
配置 API Key
推荐使用环境变量方式(不会泄露到配置文件):
# Mac/Linux 用户
export ANTHROPIC_API_KEY="sk-你的key"
# Windows PowerShell 用户
$env:ANTHROPIC_API_KEY="sk-你的key"
验证配置:
hermes
如果正常启动并出现对话提示,说明配置成功。
创建 Profile
Profile 是一个有名字、有专长、可能用不同模型运行的 AI 代理。Kanban 需要至少 2 个 Profile 才能体现"多人协作"。
查看当前 Profile:
hermes profile list
创建 researcher Profile(用小模型,便宜快速):
hermes profile create researcher \
--model claude-haiku-3-20250514 \
--skills web-search,reader
创建 writer Profile(用大模型,适合写作):
hermes profile create writer \
--model claude-sonnet-4-20250514 \
--skills writing,editing
Profile 配置文件存放在 ~/.hermes/profiles/ 目录下,可以直接编辑调整配置。
启动 Worker 并创建任务
启动 Worker
Worker 是一个持续运行的代理进程,会不断刷看板、领任务、执行任务。需要为每个 Profile 启动一个 Worker:
# 终端窗口1:启动 researcher Worker
hermes kanban worker --profile researcher
# 终端窗口2:启动 writer Worker
hermes kanban worker --profile writer
创建任务
在第三个终端窗口(你的控制台)创建任务:
hermes kanban create "研究AI编程工具" \
--assignee researcher \
--body "搜索2026年最新的AI编程辅助工具,列出10个,格式:工具名-一句话描述-官网链接"
查看看板状态:
hermes kanban list
如果状态显示 in_progress,说明 researcher Worker 已经自动领取任务了。
设置任务依赖
Kanban 最强大的功能是父子任务链。子任务在所有父任务完成前状态保持 todo,父任务完成后子任务自动变成 ready。
# 创建研究任务
hermes kanban create "研究AI编程工具趋势" \
--assignee researcher \
--body "搜索2026年最新AI编程工具,列出10个"
# 假设返回任务 ID: abc123
# 创建写作任务(依赖研究任务)
hermes kanban create "写成资讯文章" \
--assignee writer \
--body "根据研究结果写一篇1500字文章" \
--parents abc123
创建后立即查看,def456 的状态是 todo(因为它还在等父任务 abc123 完成),而不是 ready。
多父一子
--parents id1,id2 表示两个父任务都完成才解锁。
处理卡住的任务
代理工作时遇到不确定的事,会主动停下来问你,任务状态变成 blocked。
查看所有卡住的任务:
hermes kanban list --status blocked
看为什么卡住:
hermes kanban show
解阻塞的五种方式:
- 回答问题后解锁:
hermes kanban comment "你的回答"然后hermes kanban unblock - 重新分配给别的代理:
hermes kanban reassign --reclaim - 强制重置任务:
hermes kanban reclaim - 删除任务:
hermes kanban delete - 查看日志排查:
hermes kanban log
实战:从零跑通"资讯简报"流水线
目标
研究(researcher)→ 写作(writer)→ 你审查(default)
准备工作
需要 3 个终端窗口:
[窗口1] hermes kanban worker --profile researcher
[窗口2] hermes kanban worker --profile writer
[窗口3] hermes(你的控制台)
创建任务链
# 研究任务
hermes kanban create "抓取本周AI新闻" \
--assignee researcher \
--body "搜索并整理本周最重要的AI新闻,输出格式:1. [标题] - [来源] - [100字摘要],共整理5-8条,以日期倒序排列"
# 假设返回任务 ID: t1
# 写作任务(依赖研究任务)
hermes kanban create "写成资讯简报" \
--assignee writer \
--body "根据研究结果,写成一篇面向初级程序员的AI周报:标题为AI Weekly,5-8条新闻每条含标题+一句话评论,结尾一个本周最值得关注的趋势总结,字数800-1200字,风格轻松易懂" \
--parents t1
实时观察
hermes kanban watch
每 5 秒刷新一次,你会看到 t1 从 in_progress 变成 done,t2 自动从 todo 变成 in_progress。
验收结果
hermes kanban show t2
输出里找到 summary 字段,里面是代理写的文章。
真实案例:视频制作流水线
完整的多代理协作流程:
| 任务 | 代理 | 依赖 |
|---|---|---|
| T1: 规划视频主题 | planner | 无 |
| T2: 收集素材 | researcher | T1 |
| T3: 写分镜脚本 | scriptwriter | T2 |
| T4: 生成配音 | voice | T3 |
| T5: 剪辑合成 | editor | T4 |
| T6: 上传发布 | publisher | T5 |
全流程自动接龙,你只需要在 T1 开始前确认主题方向。
7 层自主级别
Hermes Agent 定义了 7 个自主级别:
| 级别 | 名称 | 描述 |
|---|---|---|
| L1 | 基础对话 | 纯问答 |
| L2 | 工具调用 | 能用工具 |
| L3 | 自主执行 | 能自己完成多步骤任务 |
| L4 | 后台自动化 | 能在后台持续运行 |
| L5 | 多代理委派 | 能调度多个代理协作 |
| L6 | 自我进化 | 能通过 DSPy + GEPA 自动优化策略 |
| L7 | 完全自主团队 | 代理团队自我管理 |
Hermes v2.0 已实现 L7,代理可以在后台持续运行,真正成为你的"AI 团队"。
与竞品对比
| 特性 | Hermes Kanban | Claude Code 子代理 | Dify 工作流 |
|---|---|---|---|
| 任务持久化 | SQLite 永久保存 | 随会话消失 | 数据库保存 |
| 可视化界面 | 有,看板 + 仪表盘 | 无 | 有,但偏工程 |
| 代理自主性 | 高,领取式、阻塞式 | 低,主代理控制 | 低,节点式固定 |
| 跨工具编排 | 可调度 Claude Code、OpenCode | 仅限内置 | 偏自己生态 |
| 自我进化 | DSPy + GEPA 自动优化 | 无 | 有限 |
| 学习成本 | 中(看板概念需理解) | 低(直接对话) | 中(节点连线) |
常见问题
Q1:命令提示"找不到 hermes"
# 试试这个
python -m hermes --version
# 如果上面能运行,说明是 pip 安装的 shim 没配置 PATH
Q2:命令提示"Profile 不存在"
Profile 名字必须完全匹配,拼写/大小写都不能错。用 hermes profile list 确认已创建。
Q3:任务一直卡在 ready 没人领
确认有 Worker 在跑:ps aux | grep hermes,确认 Profile 名字正确。
Q4:代理说"需要人类介入"是什么意思?
代理在任务中遇到了需要你来拍板的问题。查看代理留言:hermes kanban show ,回答后解锁:hermes kanban unblock 。
命令速查表
| 操作 | 命令 |
|---|---|
| 升级 Hermes | pip install --upgrade hermes-agent |
| 查看所有 Profile | hermes profile list |
| 创建 Profile | hermes profile create --model --skills |
| 列出所有任务 | hermes kanban list |
| 创建任务 | hermes kanban create "标题" --assignee --body "描述" |
| 创建带依赖的任务 | hermes kanban create ... --parents |
| 解锁任务 | hermes kanban unblock |
| 实时监控看板 | hermes kanban watch |
| 启动 Worker | hermes kanban worker --profile |
总结
快速开始只需 6 步:
- 升级:
pip install --upgrade hermes-agent - 确认版本:
hermes --version(确保 ≥ 0.12.0) - 检查 Profile:
hermes profile list(确保至少 2 个) - 创建 Profile(如果只有 default)
- 启动 Worker(新开两个终端)
- 创建任务(在你控制的终端)
Kanban 的核心价值:看得见(所有任务摆在看板上)、不丢失(任务存在数据库里)、自动接龙(父子依赖自动触发)、可介入(随时 Block → 留言 → 人类回答 → 继续)、可扩展(从两个代理起步,想加多少加多少)。