第六章:Hermes的「Kanban」持久化任务板
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
© 版权声明
若无特殊声明,本站所有文章版权均归「PMKG AI知识库」原创和所有,未经许可,任何个人、媒体、网站、团体不得转载、抄袭或以其他方式复制发表本站内容,或在非我站所属的服务器上建立镜像。否则,我站将依法保留追究相关法律责任的权利。
相关文章
暂无笔记...
