本 PRD 为内部工作流系统,无用户界面。write-prd 模板中「页面结构与导航」章节以「角色与架构」替代,其余盲区(状态机 / 字段规范 / 异常处理 / 文案)全部覆盖。
~/.kimi-code/bin/kimi),已登录,2026-07-24 实测 headless 模式可用。| 问题点 | 问题描述 | 当前影响 |
|---|---|---|
| 复杂任务占主线 | default profile 自己写代码跑全程 | 主模型 token 成本高,会话被占;违背"复杂/重复任务应委派"的既定原则 |
| 终端退出即停 | Hermes CLI 进程绑死 SSH 会话 | 长程任务无法执行,必须一直开着终端观察 |
| 无进度恢复手段 | 任务状态只存在于会话记忆里 | 重进终端后无法用一句提示词追踪进度 |
| Kimi 权限过大 | ubuntu 账号免密 sudo + Kimi 派发模式自动放行所有工具调用 | 存在误碰生产环境(/var/www、/etc、数据库)的风险 |
| 指标 | 当前状态 | 目标状态 |
|---|---|---|
| 派发后 SSH 断开 | 任务随终端中断 | systemd-run 独立运行,不受任何终端影响 |
| 进度追踪 | 无手段 | 读各项目 STATUS.md,30 秒内给出汇报 |
| 验收依据 | 无,"看起来对" | 每个任务 TASK.md 内含可执行 DoD(验收命令 + 预期产出) |
| 返工 | 从头重来 | kimi -S <session_id> 同会话续接,上下文不丢,上限 3 次 |
包含:
不包含:
| 文档名称 | 说明 |
|---|---|
| Kimi Code CLI 实测记录 | 2026-07-24 本服务器验证:kimi -p headless 可用、自动放行工具调用、写文件 + 跑代码真实落盘、kimi -S 会话续接可用 |
| 常驻基础设施 | hermes-dashboard 以 user systemd 运行 + linger=yes,监听 0.0.0.0:9119(dashboard.sieta.vip),不依赖任何终端 |
| 风险实测 | sudo -n true 直接通过(免密 sudo),wrapper 必须做防御 |
| 角色 | 承担 | 不承担 |
|---|---|---|
| 大头哥 | 提需求、收飞书通知、问进度 | 任何手工操作 |
| Hermes default(orchestrator) | 需求分解、写 TASK.md(含 DoD)、派发、review 验收、返工指令、部署上线、进度汇报 | 大批量写代码 |
| Kimi Code(编程 subagent) | 在 bighead/<project>/ 目录内写代码 + 自测 | sudo、碰 /var/www 和 /etc、部署上线、对外通信(飞书 / HTTP 外呼) |
~/bighead/
└── <project>/
├── TASK.md 任务书 + 验收标准(DoD)。Hermes 写,Kimi 只读
├── STATUS.md 状态机当前状态 + 最近更新 + 最近事件
├── logs/ 每次派发/返工的完整输出(dispatch-<时间戳>.log)
└── (代码文件)
systemd-run 启动 Kimi,进程脱离 Hermes 进程树。Hermes CLI 死了、SSH 断了,Kimi 都照跑| 模块 | 功能名称 | 功能说明 | 优先级 |
|---|---|---|---|
| 派发 | 任务书生成 | 需求 → 分解 → TASK.md(含 DoD:跑通什么命令、产出什么文件) | P0 |
| 派发 | wrapper 脚本 | systemd-run 脱离进程树启动 kimi -p;拒绝含 sudo / /var/www / /etc 的任务指令;日志落盘 | P0 |
| 状态 | STATUS.md 状态机 | running / review / rework / done / failed,每次流转写时间戳 | P0 |
| 通知 | 飞书完成通知 | 任务结束(成功/失败)发大头哥私聊 oc_569a,不发群 | P0 |
| 查询 | 进度追踪 | 用户说"bighead 进度" → 遍历 bighead/*/STATUS.md 汇报 | P0 |
| 返工 | session 续接 | 验收不过 → kimi -S <session_id> 提改进意见续跑,上限 3 次 | P1 |
| 固化 | kimi-dispatch skill | 全流程 skill,含本 PRD 所有规则与模板 | P1 |
大头哥提出复杂开发需求后,Hermes 将需求分解为任务书写入 bighead/<project>/TASK.md,经 wrapper 安全校验后以 systemd-run 独立启动 Kimi Code 执行。
大头哥提需求 ↓ Hermes 分解 + 显式声明假设(大头哥可纠正) ↓ 写 TASK.md(含 DoD)+ 初始化 STATUS.md(running) ↓ wrapper 安全校验 ├─ 通过 → systemd-run 启动 kimi -p(cwd=bighead/<project>)→ STATUS=running └─ 失败(任务指令含 sudo / 生产路径)→ 不启动,STATUS=failed,终端说明原因
Kimi 脱离终端独立运行,结束后 wrapper 记录退出码与 session id,更新状态并通知。
kimi 独立运行(SSH 断开无影响) ↓ 进程结束 ├─ 退出码=0 → STATUS=review → 飞书私聊通知(项目名/日志路径/待验收) ├─ 退出码≠0 → STATUS=failed → 飞书私聊通知(含错误摘要) └─ 超时(单任务上限 3600 秒)→ 杀进程,STATUS=failed → 飞书私聊通知
异常路径:服务器重启 → systemd-run 单元丢失,STATUS.md 停留在 running;大头哥重进问进度时,Hermes 发现无对应存活进程 → 报告现场并询问是否重跑。
Hermes 按 TASK.md 的 DoD 逐条验收(读代码 diff、跑验收命令),通过则收尾,不通过则同 session 续跑返工。
飞书收到完成通知(或用户主动问进度)
↓
Hermes 按 DoD 逐条验收
├─ 通过 → STATUS=done → 需要上线则由 Hermes 部署(Kimi 不参与)
└─ 不通过 → 整理改进意见 → kimi -S <session_id> -p "改进意见" 续跑 → STATUS=rework
↓
再次验收,返工次数+1
├─ 通过 → done
└─ 累计 3 次仍不过 → 停止返工,STATUS=failed,升级大头哥决策(对齐"3 次铁律")
降级路径:Kimi 订阅配额耗尽 → 飞书告知大头哥,该任务降级走 forge/chief DFC 流水线。
任意入口一句"bighead 进度",Hermes 遍历 bighead/*/STATUS.md 输出各项目状态与最近事件。
大头哥说"bighead 进度"(终端 或 dashboard.sieta.vip) ↓ Hermes 遍历 bighead/*/STATUS.md + 检查 running 项目的进程是否存活 ↓ 汇报:每项目 状态 / 最近事件 / 时间戳 / running 项目进程存活确认
| 状态名称 | 进入条件 | 退出条件 | 用户可见表现 |
|---|---|---|---|
| running | TASK.md 写完且派发成功(派发即写 running,无 pending 态) | kimi 进程结束 | logs/ 日志增长 |
| review | kimi 退出码=0 | 验收通过 / 不通过 | 飞书私聊通知 |
| rework | 验收不通过 | kimi 续跑结束 | STATUS 更新 + 返工次数+1 |
| done | 验收通过 | 终态 | 飞书私聊通知 |
| failed | 启动失败 / 超时 / 非零退出 / 3 次返工不过 | 人工介入后重置 | 飞书私聊通知(含原因) |
| 字段名 | 类型 | 是否必填 | 校验规则 | 错误提示 |
|---|---|---|---|---|
| 任务名 | 文本 | 是 | ≤50 字 | 缺少任务名,无法派发 |
| 目标 | 文本 | 是 | 一句话,不含"等等/之类" | 目标模糊,请拆细 |
| 工作目录 | 路径 | 是 | 必须在 ~/bighead/ 下 | 目录越界,拒绝派发 |
| 允许操作 | 列表 | 是 | 仅工作目录内读写 | — |
| 禁止操作 | 列表 | 是 | 固定含 sudo、/var/www、/etc、对外网络(包管理除外) | — |
| DoD 验收命令 | 列表 | 是 | 每条为可执行命令 + 预期输出 | 无可执行 DoD,不予派发 |
| 产出文件清单 | 列表 | 是 | 相对工作目录的路径 | — |
| 字段名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| 项目 | 文本 | 是 | 目录名 |
| 当前状态 | 枚举 | 是 | 见状态机 |
| 最近更新 | 时间戳 | 是 | 每次流转刷新 |
| kimi session id | 文本 | 否 | review 后必填,用于返工续接 |
| 返工次数 | 数字 | 是 | 上限 3 |
| 最近事件 | 文本 | 是 | 一句话,如"验收不通过:DoD 第 2 条输出不符" |
| 场景 | 文案内容 |
|---|---|
| 派发成功 | 【Kimi Code 任务启动】项目:<名>。任务:<目标>。完成后我会验收并通知你。 |
| 验收通过 | 【Kimi Code 任务完成】项目:<名>。DoD <N> 条全部通过。<是否需要上线:已由我部署 / 无需部署>。 |
| 验收不通过(返工) | 【Kimi Code 返工 第<N>次】项目:<名>。问题:<一句话>。已要求 Kimi Code 改进。 |
| 任务失败 | 【Kimi Code 任务失败】项目:<名>。原因:<退出码/超时/3 次返工不过>。日志:bighead/<project>/logs/。需要你决策:重跑 / 放弃 / 降级 forge。 |
| 进度汇报 | 【bighead 进度】项目A:running(已跑 20 分钟,进程存活);项目B:review 待我验收… |
| 异常场景 | 触发条件 | 处理方式 | 用户反馈 |
|---|---|---|---|
| 任务指令越权 | 含 sudo / /var/www / /etc | wrapper 拒绝启动 | 终端说明原因,STATUS=failed |
| 执行超时 | 单任务 >3600 秒 | 杀进程,STATUS=failed | 飞书通知 |
| SSH 断开 | 任意时刻 | 无影响(systemd-run 独立) | 无 |
| 服务器重启 | systemd 单元丢失 | STATUS.md 保留现场,重进后 Hermes 判断 | 问进度时如实报告并询问是否重跑 |
| Kimi 配额耗尽 | API 返回配额错误 | 降级 forge/chief 流水线 | 飞书告知 |
| 返工失控 | 累计 3 次不过 | 停止,升级人工 | 飞书通知,附决策选项 |
Kimi Code 只产出代码,永远不碰生产:禁 sudo、禁 /var/www、禁 /etc、禁对外通信。部署上线由 Hermes 执行。wrapper 在派发前强制校验任务指令,越权直接拒绝。