Hermes Kanban 跨Agent协作教程:让多个AI助手协同工作

Hermes Kanban 跨Agent协作教程

什么是Kanban协作?

Hermes Kanban是一个任务分发系统,可以让多个Profile(AI助手实例)之间进行任务分配和数据传递。就像公司里的项目经理把任务分配给不同部门的同事一样。

为什么需要跨Agent协作?

当你的工作涉及多个专业领域时,单一Agent可能不够高效:

  • 学习通作业批阅 → 需要专门的学习通Agent
  • 博客文章发布 → 需要专门的WordPress Agent
  • 代码开发部署 → 需要专门的DevOps Agent

Kanban让这些Agent像团队一样协作,而不是各自独立工作。


基本概念

Profile(角色)

Profile是独立运行的Agent实例,每个有自己的:
– 配置文件(model、provider、toolsets)
– 内存空间
– 技能集合

查看当前profiles:

hermes profile list

Kanban Board(任务看板)

所有任务存储在SQLite数据库中,状态流转:

todo → ready → in_progress → done
         ↓
      blocked(等待人工干预)

Dispatcher(调度器)

每个Gateway内置dispatcher,每60秒扫描:
– 检查 ready 状态的任务
– 匹配 assignee 对应的profile
– 启动worker执行任务


跨Agent协作流程

1. 创建任务分配给其他Profile

kanban_create(
    title="发布博客文章",
    assignee="blog",  # 分配给blog profile
    body="标题:xxx\n内容:xxx\n分类:善用AI",
)

2. 任务依赖链

# 先让researcher调研
t1 = kanban_create(
    title="调研Python数据分析库",
    assignee="researcher",
    body="对比Pandas、Polars、Dask的性能",
)

# 等调研完成后再写文章
t2 = kanban_create(
    title="撰写调研报告",
    assignee="writer",
    body="根据调研结果写博客文章",
    parents=[t1["task_id"]],  # 依赖t1
)

parents参数创建依赖关系:子任务在父任务完成后才自动变为ready

3. 完成任务并传递结果

kanban_complete(
    summary="文章已发布:https://xxx/post/123",
    metadata={
        "post_id": 123,
        "url": "https://xxx/post/123",
        "categories": [53557],
    },
)

metadata是结构化数据,下游worker可以直接使用。


实战示例:跨Agent发布博客

场景:用户通过QQ让default Agent写文章,default分配给blog Agent发布。

步骤图示

用户(QQ) → default Agent
           ↓
     kanban_create(assignee="blog")
           ↓
     [任务进入ready状态]
           ↓
     blog Dispatcher检测到任务
           ↓
     blog Worker启动执行
           ↓
     WordPress API发布文章
           ↓
     kanban_complete()
           ↓
     Gateway通知default Agent
           ↓
     default回复用户"文章已发布"

关键代码

Default Agent创建任务:

result = kanban_create(
    title="发布博客:Kanban教程",
    assignee="blog",
    body="""
标题: Hermes Kanban 跨Agent协作教程
分类: 善用AI
内容: [完整文章Markdown内容]""",
)
task_id = result["task_id"]

Blog Agent执行任务:

# 1. 获取任务信息
task = kanban_show()

# 2. 解析body中的标题、分类、内容
# 3. 调用WordPress API发布

# 4. 完成任务
kanban_complete(
    summary="文章已发布",
    metadata={"post_id": post_id, "url": url},
)

任务状态监控

查看任务列表:

hermes kanban list

查看任务详情:

hermes kanban show <task_id>

实时跟个任务日志:

hermes kanban tail <task_id>

常见问题

Q: 任务一直停在ready状态?

检查assignee的profile名称是否正确。Dispatcher只会启动存在的profile。

hermes profile list  # 查看可用profiles

Q: 如何处理任务失败?

任务失败后会重试。如果反复失败,可以:
hermes kanban reclaim <id> — 重置任务
hermes kanban reassign <id> <new-profile> — 换个profile

Q: 任务执行多久算超时?

默认max_runtime_seconds为3600秒(1小时)。可在profile配置中调整。


最佳实践

  1. 任务拆分 — 大任务拆成多个小任务并行执行
  2. 明确assignee — 用准确的profile名称
  3. 结构化metadata — 方便下游worker解析
  4. 设置依赖 — 需要顺序执行的任务用parents链接
  5. 添加注释 — 用kanban_comment记录上下文

总结

Kanban让Hermes从”单一助手”变成”AI团队”:
分工明确 — 每个Profile专注自己的领域
异步协作 — 任务队列解耦,不阻塞
结果传递 — metadata携带结构化数据
状态追踪 — 完整的任务生命周期管理

这就是Hermes多Agent协作的核心机制!