第六章:Hermes的「Kanban」持久化任务板

Hermes 知识库16小时前发布 changgong
290 00

hermes智能体

Hermes Agent 的 Kanban 功能是一个强大的持久化任务板,它超越了简单的待办事项列表,为多智能体协作和复杂项目管理提供了坚实的基础。

Kanban 允许用户和多个命名智能体在共享的工作空间中协同工作,有效地管理任务的生命周期,并确保任务的可见性和可追溯性。

6.1 Hermes Kanban 概述

Hermes Kanban 是一个持久化的任务板,它跨所有 Hermes 配置文件共享,使得多个命名智能体能够在一个统一的框架下协作完成工作,而无需依赖脆弱的进程内子智能体群。它将每个任务表示为 ~/.hermes/kanban.db 数据库中的一行,每一次任务的交接都记录为可读写的行,而每个工作者都是一个具有独立身份的完整操作系统进程。

Kanban 的核心价值在于其能够支持复杂的工作流,例如研究分类、计划操作、数字孪生、工程流水线和舰队工作等。它与第四章中讨论的 delegate_task 机制有所不同,delegate_task 更像是一个 RPC 调用(fork → join),适用于父智能体需要子智能体短时推理结果的场景;而 Kanban 则是一个工作队列,其中每次交接都是任何智能体(或人类)都可以查看和编辑的行,适用于工作跨越智能体边界、需要抵御重启、可能需要人工输入、可能由不同角色接手或需要在事后可追溯的场景。

6.2 核心概念

理解 Hermes Kanban 需要掌握以下几个核心概念:

  • Board (任务板):一个独立的任务队列,拥有自己的 SQLite 数据库、工作区目录和调度器循环。一个 Hermes Agent 安装可以拥有多个任务板(例如,每个项目、仓库或领域一个),实现工作流的隔离。默认情况下,用户使用名为 default 的任务板。
  • Task (任务):任务板中的一个基本单元,包含标题、可选的正文、一个负责人(配置文件名称)、状态(triage | todo | ready | running | blocked | done | archived)、可选的租户命名空间和可选的幂等键。
  • Link (链接)task_links 表中的一行,记录了父任务与子任务之间的依赖关系。调度器会根据父任务的状态(例如,当所有父任务都 done 时)将子任务从 todo 提升到 ready 状态。
  • Comment (评论):智能体间的协议。智能体和人类都可以向任务添加评论。当一个工作者被(重新)生成时,它会读取完整的评论线程作为其上下文的一部分。
  • Workspace (工作区):工作者执行任务的目录。有三种类型:
    • scratch:默认的临时目录,位于 ~/.hermes/kanban/workspaces/<id>/
    • dir:<path>:一个现有的共享目录,必须是绝对路径。
    • worktree:用于编码任务的 Git 工作树,位于 .worktrees/<id>/
  • Dispatcher (调度器):一个长时间运行的循环,每隔 N 秒(默认为 60 秒)执行一次。它负责回收过期的认领、回收崩溃的工作者、提升就绪任务、原子性地认领任务,并生成分配的配置文件。调度器默认运行在 Gateway 进程内部。
  • Tenant (租户):任务板内的一个可选字符串命名空间。一个专业化舰队可以为多个业务(例如 --tenant business-a)提供服务,通过工作区路径和内存键前缀实现数据隔离。租户是一个软过滤器,而任务板是硬隔离边界。

6.3 任务板管理

Hermes Kanban 任务板可以通过命令行界面 (CLI) 和 WebUI 仪表盘进行管理,为用户提供了灵活的操作方式。

6.3.1 CLI 管理

用户可以通过 hermes kanban 命令及其子命令来管理任务板和任务:

  • 列出任务板hermes kanban boards list
  • 创建新任务板:`hermes kanban boards create –name
© 版权声明

相关文章

暂无笔记

您必须登录才能记录笔记!
立即登录
none
暂无笔记...