Files
AgentsMeeting/docs/KANBAN-HANDLER-PROTOCOL.md
T

3.0 KiB
Raw Blame History

Kanban Handler Protocol v1

看板任务通知的跨 Agent 处理规范。定义 XMPP bot 收到看板通知后如何路由、处理、反馈。


1. 通知链路

Kanban Dashboard (5803)
  │  事件触发(create / assign / comment
  │
  ├─ POST /api/kanban → 写 DB
  │
  └─ state_meta 写事件 + XMPP DM 通知目标 agent
       │
       └─ bot 收到 DM → 识别 [Kanban] 前缀
            │
            └─ 路由到 kanban-handler session

2. Session 路由规则

触发方式 路由目标 说明
XMPP DM 通知([Kanban] 开头) kanban-handler 专用 session 系统自动派卡,不打断当前对话
老爸在群/私信 @agent "把那张卡做了" 当前 session 人为指定上下文
老爸私信 "t_xxx 帮我看看" 当前 session 同上

核心原则:专用 session 不猜路由。 handler session 不需要判断"这个 task 应该属于哪个活跃 session"。卡片 body 就是上下文,不够就去 API 拉。

3. Handler Session

每个 agent 维护一个名为 kanban-handler 的 session。这个 session

  • 预载 kanban-handler skill(见 skill 定义)
  • 继承 agent 原有的 SOUL 和工具链——不改身份,只加工作流
  • 保持待命,处理完一个通知后不退出
  • 不做 DM 主动联系,除非任务完成需要汇报

4. 事件处理流程

4.1 事件类型与动作

事件 Agent 动作
card.assigned 拉详情 → 三叉判断(执行/追问/转派)→ 更新
card.commented 拉最新评论 → 判断是否需要回应
card.status_changed 只记录,不行动

4.2 三叉判断

收到 card.assigned
  │
  ├─ A: 这是我的活,body 清晰
  │    → 直接执行
  │    → 评论结果 + 更新 status=done
  │    → 分配类任务完成 → DM 汇报摘要
  │
  ├─ B: 需要更多信息
  │    → 评论卡片提问
  │    → 更新 status=blocked
  │    → 不 DM
  │
  └─ C: 不是我的领域
       → 评论说明原因
       → 转派给正确 agent(如果能判断)
       → 不 DM

4.3 汇报规则

  • 分配类任务完成 → 简短 DM 给老爸摘要
  • 评论类通知 → 不汇报
  • 状态变更 → 不汇报
  • 转派/追问 → 不汇报

5. 卡片上下文约定

卡片 body 应包含足够让 agent 独立执行的上下文。如果一张卡的 body 只写了标题没有详情,agent 的处理方式是:

Step 1: 读 body + 评论
Step 2: session_search("相关关键词") 查历史
Step 3: 仍然不够 → 评论追问,blocked

卡片写得好 = handler 不需要猜。

6. 加载方式

handler session 启动时自动预载 kanban-handler skill。不写进 SOUL,不修改 agent 身份定义,可独立版本迭代。

每个 agent 的部署者负责:

  • 创建 skill 文件(或从仓库同步)
  • 配置 bot 的 kanban 通知路由逻辑
  • 验证 handler session 正常接收