前言¶
在 DeepSeek Harness(DSH)环境中管理多个自主智能体的并发任务,容易导致上下文漂移、PR 交接丢失以及分支生命周期未被追踪。如果没有可视化的任务板,用户必须手动在多个聊天窗口之间切换,并手动验证远程版本控制系统(VCS)上的 issue 状态。
goodandready/dsh-kanban 为 DSH 提供了一个嵌入式可视化看板。它将每个任务映射到一个独立的代理会话。在列之间拖动卡片会触发特定的生命周期指令,并保持与 Gitea、Forgejo 和 GitHub 的双向状态同步。
核心功能¶
1. 交互式可视化看板¶
看板嵌入在 DSH Web UI 中,支持拖放操作。
工作流列
支持两种模式:
* 项目板模式:Backlog ➔ In Progress ➔ Review ➔ Deploy ➔ Cleanup ➔ Done。
* 简单板模式:Backlog ➔ In Progress ➔ Review ➔ Done。
卡片信息
卡片展示标题、Issue 编号、分配的 LLM 模型、目标工作树、分支名称、PR 审查状态以及未提交的 diff 标记。
卡片支持编辑标签、优先级和截止日期。截止日期逾期时会有高亮显示。卡片还包含作者和指派者信息,支持按指派者分组。
2. 任务到代理会话调度器¶
不同于被动看板,dsh-kanban 会主动驱动代理。将卡片移动到不同列会触发相应的指令:
| 移动到列 | 触发动作 | 发送给代理的指令 |
|---|---|---|
Backlog |
停止当前回合 | agent.cancel({ kind: 'user' }) |
In Progress |
调度回合 | 开始或继续实现任务 |
Review |
调度回合 | 准备 PR 请求人类代码审查 |
Deploy |
调度回合 | 合并 PR 并部署(需显式用户批准) |
Cleanup |
调度回合 | 清理分支、工作树并记录摘要 |
Done |
仅限人类/VCS | 关闭 issue 或用户确认后关闭 |
3. 2-Way VCS 同步¶
插件提供与 Gitea、Forgejo 和 GitHub 的持续双向同步。
- 同步机制:支持轮询和 Webhook 接收。
- Webhook 接口:
/dsh-kanban/webhook。 - 同步内容:Issue 描述、评论、PR 状态、标签、关闭状态。
- 冲突处理:基于时间戳的合并逻辑,确保手动编辑和看板移动不会相互覆盖。
4. Agent 工具¶
插件为 Agent 提供了专门的工具来操作看板:
board_move:代理用于报告进度并将卡片移动到下一阶段。注意:该工具不能将卡片移动到Done列。board_plan:用于保存结构化的分步实施计划到任务卡片中。
安装与依赖¶
安装方式
官方提供的安装命令在当前资料中未找到。请通过以下地址获取源码或查阅安装指南:
https://github.com/GooDAnDReaDY/dsh-kanban
运行环境要求
* Node.js 版本:20 及以上。
* 依赖项:需要安装特定的 peer dependencies(包括 @deepseek-ai/cordis、@deepseek-ai/dsh-settings、@deepseek-ai/schemastery、@deepseek-ai/dsh-agent 等核心 DSH 模块)。
典型用法¶
- 创建任务:在看板上创建任务会自动在关联的 Gitea/Forgejo/GitHub 仓库中生成对应的 Issue。
- 调度部署:将卡片拖动到
Deploy列,系统会触发合并 PR 和部署流程。 - Webhook 同步:配置 VCS Webhook 指向
/dsh-kanban/webhook,以接收外部事件并同步状态。 - 代理操作:Agent 可以使用
board_move工具报告进度,或使用board_plan工具记录计划。
注意事项¶
- Done 列限制:卡片不能自动过渡到
Done列,必须通过用户手动操作或 VCS(如关闭 Issue)来触发。 - 权限:插件以当前 DSH 进程的权限运行,安装前请检查源码与许可证(MIT)。
- 版本依赖:
package.json中详细版本约束在当前抓取中已被截断,请确保安装与当前 DSH 环境兼容的依赖版本。
总结¶
dsh-kanban 将任务管理、代理调度和版本控制集成在统一的可视化界面中,减少了上下文切换成本,确保了开发流程的可追溯性和自动化。