多 agent 共享任务板:经 Cordis service key 创建/认领/流转/查询任务。
安装
# npm 包(预构建)
dsh plugin --profile web add @dsh-suite/plugin-team-board
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:whyihaveyou/dsh-suite#path:/packages/plugins/plugin-team-board
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DSH 插件:多 agent / subagent 共享的持久任务看板。通过一个 Cordis 服务键
ctx.teamBoard物化 共享状态(不是模块级全局变量),用defineTool暴露task_create/task_claim/task_update/task_list/task_delete,内置可视化看板面板(Settings → Plugins → Team Board), 快照文件落盘$DSH_HOME/team-board/board.json跨重启恢复。生态位空白:ccteam是独立产品, 没人做成 DSH 原生插件。
DSH plugin: a shared, durable task board for multi-agent / subagent collaboration. Shared state is materialized as a Cordis service key
ctx.teamBoard(not a module global), exposed throughdefineToolastask_create/task_claim/task_update/task_list/task_delete, with a visual kanban panel (Settings → Plugins → Team Board) and restart-safe persistence via a snapshot file at$DSH_HOME/team-board/board.json. A DSH-native board — an empty niche (ccteamis a standalone product, nobody built the DSH-native one).
特性 / Features
共享状态 = 协作用键(设计准则 #2/#10):看板状态活在
TeamBoardService(ctx.teamBoard), 跨会话/subagent 可见;插件闭包里没有全局可变态。可视化看板面板(0.2.0):Settings → Plugins → Team Board tab,任务按状态三列分列 (todo / doing / done),面板内创建任务、点卡片按钮流转状态,改动立即持久化。
跨重启持久化:每次变更把整板快照写入
$DSH_HOME/team-board/board.json,启动时优先从该文件 恢复;board/snapshot会话事件日志保留为进程内审计轨迹(ctx.sessions是纯内存存储, 日志会话本身不保证跨进程复活,文件快照才是重启后的真相源)。5 个工具(
defineTool):创建 / 认领 / 状态流转 / 查询 / 删除。注册即 effect:工具经
ctx.tools.register注册,卸载自动反注册。Shared state as a service key (principles #2/#10): board state lives in
TeamBoardService(ctx.teamBoard), visible across sessions/subagents; no module-level mutable state.Visual kanban panel (0.2.0): Settings → Plugins → Team Board tab — three status columns (todo / doing / done), create tasks in-panel, click a card to transition; changes persist instantly.
Restart-safe persistence: every mutation writes a full-board snapshot to
$DSH_HOME/team-board/board.json, which is the source of truth on boot; theboard/snapshotsession-event journal stays as the in-process audit trail (ctx.sessionsis an in-memory store, so the journal alone does not survive a process restart — the file does).5 tools (
defineTool): create / claim / transition / query / delete.Registrations are effects: tools go through
ctx.tools.registerand unregister on unload.
任务模型 / Task model
{ id, subject, status: todo|doing|done, owner?, deps: string[], createdAt, updatedAt }
工具 / Tools
| 工具 / Tool | 参数 / Params | 行为 / Behavior |
|---|---|---|
task_create |
subject(必), owner?, deps? |
建任务,状态 todo,生成 id |
task_claim |
id(必), owner? |
认领:状态 → doing,owner 缺省为调用方 agent id |
task_update |
id(必), subject?/status?/owner?/deps? |
只改传入字段 |
task_list |
status?, owner? |
按创建时间排序,可按状态/owner 过滤 |
task_delete |
id(必) |
删除任务 |
安装 / Install
dsh plugin --profile <name> add @dsh-suite/plugin-team-board
(本地开发:dsh plugin --profile <name> add ./packages/plugins/plugin-team-board)
无配置项。程序化消费者可用 ctx.teamBoard.createTask/claimTask/updateTask/listTasks 直接调用。
No config. Programmatic consumers call ctx.teamBoard.createTask / claimTask / updateTask / listTasks.
改动 / Changelog
- 0.2.1——DSH Web 样式契约适配(research/ui-compat-protocol.md):面板颜色全部改经
--dsw-alias-*设计令牌引用(保留暗色字面量仅作 token 缺失时的兜底),亮色主题不再破相; 根节点输出data-dsh-plugin="plugin-team-board"+data-dsh-surface="settings-modal", 卡片/列/按钮/徽章/输入框标data-dsh-part(L2 语义属性,供皮肤中心完整换肤)。 - 0.2.0——可视化看板面板(Settings → Plugins → Team Board:三列分列 / 面板内创建 / 点按流转);
修复跨进程重启丢状态:
ctx.sessions实为纯内存存储(持久化插件只 flush 存活会话), 仅靠board/snapshot日志在重启后恢复不了看板。现在每次变更同时写$DSH_HOME/team-board/board.json快照文件,启动优先从文件恢复(日志保留为进程内审计)。 - 0.1.1(issue #11)——修复部分字段更新污染快照:task_update 只传 id+status 时未显式传字段
会带入 undefined 键,跟着 spread 进任务并写进 board/snapshot,使 append-only JSONL 无法序列化、
看板「坏掉」。修法:
update()只合并undefined被过滤的字段;snapshot()对所有任务做 strip-undefined 规范化(历史污染记录重载自愈)。回归于 scripts/board-smoke.mjs(断言缩到 「快照可序列化 + 无 undefined」,不依赖狭义的存储内键集)。
验证 / Verification
- ✅ 纯 ESM 编译(
pnpm build) - ✅ 核心逻辑 smoke:
scripts/board-smoke.mjs15/15 断言(create/claim/update/list/delete/snapshot 回放) - ✅ 真实装载:
dsh plugin add→--dump-config含team-board行 → headless boottask_create listed=true(Service 实例化 + 工具注册成功) - ✅ 面板实测(0.2.0,playwright):Team Board tab 渲染、三列分列、面板内创建、点按改状态(API 复核 已持久化)、页面重开状态保持;截图 research/team-board-screenshots/
- ✅ 跨进程重启恢复(0.2.0):kill 进程 → 重启 →
/team-board/list从board.json复原全部任务 - ⚠️ 端到端「模型调 task_create → 看板状态」需
DEEPSEEK_API_KEY(无 key 时 headless 停在 MISSING_CREDENTIAL)
设计准则 / Design principles
遵守 dsh-plugin-design-principles.md:共享状态物化为协作用键(#2)、长命状态放依赖不放闭包(#10)、
inject 声明依赖(#3)、注册即 effect(#1)、事件走类型化 session/event + declaration merging(#15)。
Known Limitations / 已知局限
- MVP 为单进程内共享看板(跨进程/跨机器同步是 v2,架构蓝图 §5.3 已注明)。
- 看板状态以「整板快照」形式持久化(每次写 O(n)),任务量级小(几十条)时足够;海量任务可改为 per-task 事件流。
Theme & Skin Compatibility / 主题与皮肤兼容
This plugin follows the DSH Web styling contract
(docs/web-styling.md):
all colors come from --dsw-alias-* design tokens (dark literals only as fallback), with no
per-theme CSS selectors. It also implements the
dsh-web Skin Center compatibility contract
L1 (token coverage) + L2 (semantic attributes) — cards/columns/buttons/badges/inputs emit
data-dsh-part, so third-party skins get full coverage without relying on unstable class names.
本插件遵循 DSH Web 样式契约:颜色全部经 --dsw-alias-* 设计令牌引用(暗色字面量仅作兜底),无按主题分支的 CSS 选择器;
并实现 dsh-web 皮肤中心兼容契约 L1(令牌覆盖)+ L2(语义属性)——卡片/列/按钮/徽章/输入框标注
data-dsh-part,第三方皮肤无需依赖不稳定类名即可完整换肤。
链接
同类插件
Q00/ouroboros#integrations/dsh-plugin★ 6118
通过 DSH MCP 客户端挂载 Ouroboros 的纯配置包,在 DSH 中提供 36 个涵盖需求访谈、Seed、执行、评估与演化流程的工具。
loopx-project/loopx#dsh-loopx-plugin★ 6072
LoopX——面向长周期 Agent 的提供商中立、本地优先状态内核与控制平面:在 DeepSeek Harness 执行层之上持久化 Goal、Todo、门禁、证据、配额、恢复与交接状态;插件负责引导安装 CLI 与技能、准入有界的同会话续跑,并为精确绑定的工作循环提供本地 GoalBar。
chuspeeism/dashi-taskboard#deepseek-harness★ 3244
把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述文件连接,而不是使用固定端口。
NanmiCoder/dsh-agent-teams★ 1829
AgentTeams 多智能体团队。
EthanYoQ/AI-Novel-Writer#dsh-ai-novel-writer★ 1149
安装专用 AI 小说创作预设与工作台:提供带修订号的本地项目资产、紧凑侧边工作台,以及需要原生审批的逐文件变更。
tong-io/tongflow#dsh-tongflow★ 1033
基于 TongFlow 的“片场”插件,用于图片、配音、音乐与视频制作:agent 为每个资产生成 TongFlow 工作流文件(.tongflow.json)并通过 TongFlow 插件执行,内嵌工作流画布,按镜头/角色/take 组织项目,附漫剧模板;以 @tongflow 开头的会话进入 Studio 界面。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。