开源 / 为智能体团队打造

让每个智能体
都有清晰的下一个任务。

Agentic Kanban — 轻量级 AI 智能体协调协议。无需服务器、守护进程或队列。通过一个 SQLite 文件实现持久化任务协调。智能体原子化认领工作、报告进度、崩溃恢复、移交审核——无需任何中间环节。

  • 1Go 二进制文件
  • 0个需要运行的服务
  • 15m可恢复的租约
终端 kanban init
# 搭建项目脚手架
$ kanban init

→ .kanban/kanban.db
→ .kanban/agents/ (manager, worker, reviewer)
→ .kanban/skills/ (14 个协议技能)
→ .kanban/tools/ (kanban CLI)

14 个技能 · 3 个智能体 · 1 个二进制文件
14 个技能 · 3 个智能体 · 1 个二进制文件 exit 0

01 / 安装

一条命令。无需搭建任何服务。

curl -sfL https://raw.githubusercontent.com/mrSamDev/agentic-kanban/main/install.sh | sh

单个 Go 二进制文件 + SQLite。固定版本请使用 GitHub Releases

02 / 问题

一个智能体没问题。
两个智能体需要协调。

一个改代码。一个写测试。一个做审核。没有共享状态,它们就会冲突、重复工作、互相等待。

大多数方案会引入这些基础设施:

  • 智能体框架
  • 消息队列
  • Redis
  • Postgres
  • 后台服务
  • 复杂编排层

为同一台机器上的几个智能体运行这么多东西,太重了。

更简单的答案

把协调当作数据库问题

每个智能体读写同一个 SQLite 文件。没有 RPC、事件总线或服务器进程——只有持久化的共享状态。

03 / 动机

从一个 markdown 文件开始。

Sprint 1, task 1.1, task 1.2。智能体们不断互相覆盖更新、忘记标记完成、或者认领已被占用的任务。文件很快就变成了噪音。

答案是数据库。每次状态变更都是一次事务,所以两个智能体不能认领同一个任务。如果一个崩溃了,它的租约到期后另一个可以接手——就像 Rust 的所有权模型:一次只有一个所有者,所有者消失时释放。

.db 文件是唯一的协调点。没有服务器、守护进程或消息队列——只有你们已经共享的文件系统上的一个共享文件。

"最简单的协调就是不需要你运行的协调。"

04 / 为什么

协调,但不碍事。

使用你已经共享的文件系统。保持任务所有权明确且可恢复。

01

无需服务器进程

每个项目一个 .db 文件。无需 Redis、Postgres、队列、守护进程或网络依赖。

02

原子化认领

并发调用 claim-next 的智能体通过 SQLite 写入串行化获得不同的任务。

03

崩溃恢复

任务使用 15 分钟租约。进度更新续期所有权;过期的工作可被重新认领。

04

稳定的 JSON

命令输出可预测的 JSON 到 stdout。错误使用 stderr 和退出码 2。

05

有限的存储

WAL 检查点机制防止长时间运行的协调中磁盘无限制增长。

06

可读的协议

Markdown 角色技能文件教会智能体工作流,无需额外的工具调用协议。

05 / 工作流

小而清晰的协议。

三个角色。三个计划。一个生命周期。

  1. 01

    计划

    管理者阅读规范 → 三轮提取 → 用户审核提案 → 批准后派发任务。

  2. 02

    认领

    工作者认领最高优先级的 TODO(或收回已过期的租约)。尊重依赖关系。

  3. 03

    工作

    心跳续期 15 分钟租约。阻塞的任务标记原因。

  4. 04

    审核

    直接完成或交给审核者。审核者批准或拒绝并附上说明。

快速开始
# 使用计划初始化
$ kanban init --plan plan.md

# 管理者:创建计划提案
$ kanban plan create plan.md
# 用户批准 → kanban plan approve 派发任务

# 工作者:认领下一个任务,工作,完成
$ kanban task claim-next --agent alice --role worker
$ kanban task log-progress TASK-1 --agent alice --note "完成"
$ kanban task complete TASK-1 --agent alice --review

# 审核者:审核提交
$ kanban task approve TASK-1 --agent bob
01TODO
02IN_PROGRESS
03IN_REVIEW
04DONE

计划流程: plan.md → 提案 → 批准 → 派发任务

驳回: IN_REVIEW → TODO(附带原因)

阻塞: IN_PROGRESS → BLOCKED(租约清除)

崩溃恢复: 租约过期 → 下次 claim-next 时惰性收回

依赖: 任务支持 depends_on — claim-next 默认跳过未满足依赖的任务

架构
┌─────────────────────────────────────────────────────┐
│                  SQLite 数据库                        │
│              .kanban/kanban.db                       │
└─────────────┬───────────────┬────────────────────────┘
              │               │
 ┌────────────┴─────┐  ┌──────┴─────────────┐
 │   智能体配置      │  │   嵌入式 CLI        │
 │  agent .md 文件  │  │  kanban task ...    │
 │  角色定义文件     │  │  kanban skill ...   │
 └────────┬─────────┘  └──────────┬──────────┘
          │                       │
 ┌────────┴───────────────────────┴─────────┐
 │              智能体角色                    │
 │  ┌──────────┐  ┌────────┐  ┌──────────┐ │
 │  │ manager  │  │ worker │  │ reviewer │ │
 │  │ .md 文件  │  │ .md    │  │ .md      │ │
 │  │ 计划     │  │ 认领   │  │ 批准     │ │
 │  │ 派发     │  │ 工作   │  │ 拒绝     │ │
 │  └──────────┘  └────────┘  └──────────┘ │
 └──────────────────────────────────────────┘
没有服务器、守护进程或协调服务。一个 SQLite 文件,三个角色。

06 / 参考

完整的命令面板。

小到够学,清晰到可调试。

命令角色功能
task dispatch --title --role [--project] [--priority] [--depends-on]任意

创建任务,可选依赖列表。

task claim <id> --agentworker, reviewer

按 ID 认领特定任务(层级委派)。

task claim-next --agent --role [--count N] [--project] [--respect-deps]worker, reviewer

原子化认领最高优先级的任务。--count N 认领多个。

task log-progress <id> --agent --note [--type]worker

记录进度并续期 15 分钟租约。

task extend-lease <id> --agent [--minutes]worker

不记录进度仅续期租约(心跳)。

task block <id> --agent --reasonworker

标记阻塞并清除当前租约。

task complete <id> --agent [--review]worker

标记完成或提交任务审核。

task view <id> [--notes] [--history]全部

查看任务详情、笔记和历史。

task search [--status] [--role] [--agent] [--project]manager

筛选任务列表。

task approve <id> --agentreviewer

将 IN_REVIEW 移动到 DONE。

task reject <id> --agent --reasonreviewer

将 IN_REVIEW 退回 TODO 并附上下文。

batch claim --agent --role [--count N] [--project]worker

原子化认领多个任务。

batch complete --ids --agent [--to-review]worker

一次性完成多个任务。

batch set-priority --ids --prioritymanager

批量设置任务优先级。

batch set-project --ids --projectmanager

批量设置任务项目标签。

task stats [--status] [--role]manager

按状态或角色聚合任务统计。

plan lintmanager

检查结构性问题(循环、缺失依赖)。

init [--harness generic] [--plan plan.md] [--dir]设置

搭建数据库、智能体 .md 文件、技能文件。

re-init设置

重新搭建智能体文件而不影响数据库。

events [--task TASK-1]全部

查看事件日志,可按任务筛选。

skill list / skill view <name>全部

列出或查看内嵌技能定义。

07 / 技能

智能体的运行时。

技能文件教会智能体协调协议。技能内置于二进制文件中,由 kanban init 脚手架生成。

角色如何使用技能

技能流程
── manager/ ──

# "我需要把需求变成任务"
 kanban plan create plan.md
# 三轮提取 → 写入提案

# "用户批准了计划"
 kanban plan approve
# 派发所有已勾选的任务

# "我现在需要一个任务"
 kanban task dispatch --title "..." --role worker --priority 10

# "看板上有什么?"
 kanban task search --status BLOCKED
 kanban task view TASK-4

# "接入 Slack"
 setup-hooks (bash)

── worker/ ──

# "我需要工作"
 kanban task claim-next --agent alice --role worker
# 获取最高优先级 TODO(或收回已过期的)

# "我知道是哪个任务"
 kanban task claim TASK-12 --agent alice

# "正在推进,续期我的租约"
 kanban task log-progress TASK-12 --agent alice --note "..."

# "卡住了"
 kanban task block TASK-12 --agent alice --reason "..."

# "做完了"
 kanban task complete TASK-12 --agent alice --review

── reviewer/ ──

# "有什么需要审核?"
 kanban task claim-next --agent bob --role reviewer

# "这个没问题"
 kanban task approve TASK-5 --agent bob
# status → DONE

# "需要返工"
 kanban task reject TASK-5 --agent bob --reason "..."
# status → TODO

技能层级

层级内容角色
智能体 .md 文件manager.md · worker.md · reviewer.md

YAML 前置元数据:工具、模型、工作流步骤

.kanban/skills/(协议)14 个技能文件 + INDEX

内置于二进制,教授协调协议

智能体配置agent .md 文件

角色定义、工作流步骤、工具引用

kanban CLIGo 二进制文件

SQLite 事务、租约、WAL 检查点

协议技能随二进制文件发布,教授协调。任务技能教授领域逻辑——由你自行提供。两者并存于 .kanban/skills/。

智能体定义示例: worker.md

.kanban/agents/worker.md
---
name: worker
description: 从看板认领和完成任务的 Kanban 工作者智能体
---

你是一个 kanban 工作者智能体。从看板认领和
完成任务。

工作流:
1. 认领下一个可用任务
2. 处理任务,定期记录进度
3. 提交审核或标记完成
4. 如果阻塞,标记原因

长时间运行的任务:
对于 >15 分钟的工作,定期运行:
  kanban task extend-lease <task-id> --agent <name> --minutes 30

使用 claim-next --count N 来认领多个任务
以并行执行。

.kanban/skills/ 中的技能文件提供了详细的
bash 备用使用说明。

工作原理: init → 智能体运行周期

生命周期
1. 脚手架
$ kanban init --plan plan.md
→ .kanban/kanban.db 已创建
→ .kanban/agents/{manager,worker,reviewer}.md
→ .kanban/skills/ (14 个技能文件 + INDEX)
→ plan.md 已解析 → 任务已派发

2. 智能体加载配置
$ kanban init
→ kanban CLI 就绪
→ 14 个技能可用

3. 运行智能体(特定于运行时,例如 pi run worker)
pi run manager
pi run worker
pi run reviewer
→ 智能体读取其 .md 文件
→ 使用 CLI 命令 + 技能文档

08 / 钩子

响应每个事件。

.kanban/hooks/ 中放入可执行文件,无需修改核心即可扩展工作流。

事件可执行文件触发时机
task.createdtask-created

任务已派发

task.claimedtask-claimed

智能体认领任务

task.progresstask-progress

进度已记录

task.completedtask-completed

任务已完成

task.submitted_for_reviewtask-submitted-for-review

已提交审核

task.blockedtask-blocked

已阻塞

review.approvedreview-approved

已批准

review.rejectedreview-rejected

已拒绝

task.priority_updatedtask-priority-updated

批量优先级更新

task.project_updatedtask-project-updated

批量项目标签更新

钩子通过 stdin 接收事件 JSON,超时 30 秒。错误记录到 stderr 但不会导致操作失败。缺失的钩子静默忽略。使用 .d/ 目录串联多个钩子——钩子并发运行,慢速通知不会阻塞调用者。

.kanban/hooks/
task-created
task-completed
task-completed.d/
  slack
  metrics
  dashboard

09 / 适用场景

为本地智能体团队打造。

不是又一个智能体框架。

Agentic Kanban 解决一个问题:可靠的协调。带上你自己的智能体、模型和工作流。

  • × 智能体运行时
  • × 工具调用
  • × 记忆系统
  • × 规划引擎
  • × 模型托管

最适合 Claude Code 子智能体、Codex 工作流以及同一台机器或共享文件系统上的本地编码智能体。并发测试达到 50 个智能体。

阅读源代码

适用于

  • 智能体需要持久化的共享状态
  • 任务所有权必须能承受崩溃
  • 你想要零基础设施开销

× 不适用于

  • 智能体跨不可信网络运行
  • 你需要实时推送通知
  • 你有数千个并发工作者

参考

你需要的一切。

安装、配置和扩展 agentic-kanban。

准备好协调了吗?

Git 成为了代码的共享事实来源。
Agentic Kanban 成为了工作的共享事实来源。

一个数据库。
每个智能体步调一致。