DeepSeek Harness 插件

HaroldZ32/My-Power-Dsh

下载量(近 30 天) 3,479 分类 工作流与自动化 收录于 2026-11-10 npm @mpd-dsh/mpd

面向 DeepSeek Harness 的插件包:十一个专家角色,可作单次咨询或团队成员;团队平面带计划、共享看板与依赖图;另有可长期积累的 Workmate 库、记忆引擎,以及一个验证平面——除非由另一个 agent 带上 gate 证据记录裁决,否则拒绝 PASS。以单个包加 dsh.bundle 补丁安装,同时提供原生 dshGo 面板接口与钉在 dsh-Go 协议 v1 规范提交 d5ad25c 的一致性检查。

安装

# npm 包(预构建)

dsh plugin --profile web add @mpd-dsh/mpd

# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)

dsh plugin --profile web add github:HaroldZ32/My-Power-Dsh

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。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

English | 中文

质量门

my-power-dsh 是 DeepSeek Harness(DSH)的一个插件 套件。一条安装命令,就把一套普通的 DSH 变成真正能干活的工作环境:一个会读你项目规则的主智能体、 十一位可咨询可委派的专家、一个会记住自己学过什么的持久 workmate 库、跑在本 bundle 自己的团队记录上的 多智能体团队、一份按需加载的技能库、用于代码理解的 MCP 服务,以及一套让别的包也能贡献能力的扩展接口。

套件同时跑在两个端上。下面写的每一项都同时存在于 DSH Web GUI 和 DSH-TUI 终端版里:同一份安装、 同一个 .mpd/ 状态、同一套工具、同一个 mpd preset。终端这一端跑在 dsh-TUI 上,站点是 dshtui.com。 没有任何东西被分叉;一个能力也不会仅仅因为在终端里没有像素就不存在。

套件本体是包 @mpd-dsh/mpd;本仓库的根目录就是这个包。 一条命令装好,一条命令卸干净,不留残留。

同一个套件在两个端上的并排对比:左侧是 DSH Web GUI,侧边栏里是本 bundle 自己的 Team 视图,显示真实名册与一张带毛玻璃节点卡、悬浮信息卡的任务图;右侧是 DSH-TUI,把同一个团队渲染成一整屏终端场景。

同一个套件、同一次运行、同一份状态:左边是 Web GUI,右边是 DSH-TUI 终端版。本页所有截图都是 对已发布套件的真实抓取,由 docker/ui/ 下的 Docker 实机通道产出:Web 图由无头 Chromium 驱动真实应用截取;终端图把*真实 TUI 在真实 PTY 上发出的字节流(tmux capture-pane -e, 带着 TUI 自己的颜色)按 tmux 算好的字符网格栅格化。有一件事图上看得出来,这里也写明:TUI 会本地化 命令描述与状态行,但不会本地化场景正文,所以两个语言下的终端场景图看起来是一样的,真正不同的只有状态行和简体中文的 Web 图。*

一个插件,两个端

一条安装命令可以把套件装进任意一个 profile,也可以两个都装。两个端共享同一个状态根 (<workspace>/.mpd/)、同一套工具和同一个 mpd preset,差别只在渲染方式。

你想做的事情 DSH Web GUI DSH-TUI(终端) 对齐情况
看团队:id、名称、阶段、状态 侧边栏里的 Team 视图,由本 bundle 自己提供(/plugins/mpd-team/state) /mpd team:一整屏场景 事实相同
看名册:成员、模型路由、每人任务数 Team 视图里的成员卡片 /mpd team 里的同一批行 事实相同
读任务图:id、类型、状态、归属、attempt、round、依赖 Team 视图的依赖图;悬停点亮依赖链,点击钉住节点 同一批数据,画成方框和制表符连边 事实相同
看一波已经安静下来的工作 Team watchdog 侧边栏页签:hold、升级横幅与事件回放 team-hold held (…) 行 + 事件回放对话框 事实相同
开工前审阅一份待批计划 Team 视图会渲染出待批计划,以及批准它要输入的那句话 /mpd plan:读完输入 approve plan-…,然后 Ctrl+X 同一份计划;两个端批准都是发一次 agent_teams_plan 工具调用
浏览 workmate 库 Workmates 侧边栏页签:列表、persona / memory / note /mpd workmates:只有列表 TUI 只有列表;增删改是 Web 独有
调套件的各种旋钮 设置 → MPD 分区 /settings → MPD 分区 同一批旋钮,同样的重启前提
一边打字一边看计划 / boulder / workmate 进度 侧边栏和设置卡片 提示符上方的按键状态行 TUI 原生界面
全程不碰鼠标 无对应操作(指针,外加下面那个面板) 状态行、/mpd 命令树、alt+a 合并面板 TUI 原生界面
看 harness 自己带的名册与任务板 对话头部的 Agent Teams 面板,一个不同且只读的界面(它不 spawn、不改名、不删除任何东西) 无 不是本 bundle 的界面
查看已归档的团队 Agent Teams 面板上的 ?archived=1 不投影;TUI 只读最新的活跃记录 Web 独有
拖动和缩放面板 Agent Teams 面板是个浮动面板 终端场景没有几何概念 不适用

有两个 Web 界面很容易混淆,所以上表把它们分开点名:对话头部的 Agent Teams 面板属于 harness 自己的 客户端,是只读的;而 Team 与 Team watchdog 是本 bundle 自己的页面,由它自己的路由提供,渲染在 当前组合所提供的那个侧边栏宿主里。

这张表背后有台账支撑。docs/tui-parity.md 逐行写明证据,并记录每一条仍然开放的 偏差。上表中两列不是同一句话的那些行,正是台账里记下的偏差;在拿 TUI 顶替一项 Web 能力之前,请先读 那份台账。

DSH Web GUI 的 Team 视图:团队头部与进度、成员各自的模型路由,以及嵌套任务图:子单元画成 subcell-auth 的**分组框**(`.mpd-dag-group`),外部依赖落在框的边框上,框内是它自己的四任务 DAG,父团队的任务在框外侧流动。

DSH-TUI 的**全屏团队场景**(`/mpd team` 场景,不是 DAG 页),同一个嵌套团队:subcell-auth 分组帧框用第二套边框字形(╔ ╗ ╚ ╝ ║ ═),外部依赖落在 ╧ 端口上,子单元自己的任务卡画在框内,下面是场景自己的图例与按键提示。画面从场景自身的上边框行一直取到下边框行,宽度截到 158 列中的 102 列,使本页显示宽度下每个字符格仍不小于 8 px(TUI 场景正文按设计保持英文,故此图与英文版共用同一次渲染)。

特性

  • 会读你规则的主智能体。 套件唯一发布的 preset mpd 带着项目指令约定:每个会话都会从项目根一路到 当前目录尝试 AGENT.md、AGENTS.md,再退到 CLAUDE.md。
  • 十一位专家,可咨询也可委派。 Architect、Researcher、Planner、Deep Worker、Senior Engineer、 Lead、Explorer、Reviewer、Plan Reviewer、Vision Analyst、Junior Engineer。每位都是带自己模型路由的 队友模板,只读的那些是被机械地禁用写入工具,而不是靠自觉。
  • 会积累的 workmate 库。 把一位专家实例化成 ~/.mpd/workmate/ 下的持久智能体;它每次干活后自我总结, 演化自己的 persona 与记忆。
  • 真正的多智能体团队。 团队平面是 mpd 记录(.mpd/team/teams/<id>.json,以 mpdTeams 提供), 默认由适配器的原生 TeamExecutor 后端执行;mpd 的各行经 agent_teams_plan 这道门与 agent_teams_task / agent_teams_dispatch 任务板驱动它,官方的撰写动词(spawn_teammate、 team_task_*)在工具边界被拒绝。官方 dsh.team* 服务只是给运行官方执行器的组合用的封闭回退 (在 TUI 组合里它的行是禁用的)。持久信箱、Web 面板与 TUI 场景同时读同一份活跃记录。
  • 持久的计划台账。 Autoproject 轮次,每条验收标准走 PIN → RED → GREEN → SURFACE → CLEAN;锚定到计划文件的 boulder 台账;以及能跨会话存活的持久 goal。
  • 记忆与编辑都经得起时间。 VCS 托管的记忆库加一台反思状态机,外加哈希锚定编辑、写入守卫与声明注释关卡。
  • 动真格的验证。 一个智能体写的代码由另一个智能体验证,依据是冻结的契约,留下判决与关卡证据。
  • 代码理解与可扩展性。 AST 搜索(ast-grep)、代码知识图谱、language server、git-bash 四类 MCP 服务; 外加一套扩展接口,让别的包贡献技能、流程、MCP 服务和专家。
  • 认得项目形态的技能库。 从 <bundle>/skills 按引用服务的 19 个技能,其中包含本仓库自己的 dsh-qa;cordis-dev 在检测到项目形态时自动加载(cordis.patch.yml 或 presets/*.patch.yml、清单里带 dsh.bundle / dsh.client、dsh-plugin.json、导出 apply 的 packages/*/src/index.ts,或 extensions/* 清单),因此 Cordis / DSH 插件开发一开始就按本仓库 自己的规则走。
  • 双语是硬规定。 每一份面向人的文档都同时提供英文文件与简体中文孪生文件,任何一份落后,关卡就会红。

安装

需要 Node.js ≥ 22.18 与 PATH 上的 pnpm,以及一份带 web 或 headless profile 的 DSH。 套件从不替你配置模型密钥。

# Web GUI profile
dsh plugin --profile web add @mpd-dsh/mpd

# DSH-TUI profile:同一个套件,终端那个端
dsh plugin --profile dsh-tui add @mpd-dsh/mpd

然后重启 dsh,用 MPD (Main Working Agent) preset 开一个会话。卸载:

dsh plugin --profile web remove @mpd-dsh/mpd

这个包不声明 cordis 依赖,也没有 preinstall/install/postinstall/prepare 脚本,所以安装它不会执行 包里的任何代码。它所有的行都只通过 cordis.patch.yml 加 profile 机制进入 harness,而且不覆盖任何 host 行:mpd preset 是增量添加的,把它设成默认靠的是你自己的一次动作,永远不是套件替你做的。

一条安装命令之后 DSH Web GUI 的插件页:@mpd-dsh/mpd 列在 Installed 下且开关已打开。

想跟仓库而不是 npm 发布版,或者要钉住某个 revision,就从检出目录安装:

git clone https://github.com/HaroldZ32/My-Power-Dsh.git && cd My-Power-Dsh
bun install                                       # 先把声明的运行时依赖实体化
dsh plugin --profile web add .

使用者指南 讲了打包产物、dsh-tui 启动器、依赖闭包,以及安装到底挂了什么。

版本对应关系

表中每一行都是某个版本构建并验证时所针对的那一对宿主:Docker 真机车道正是拿着这一对跑安装与挂载。 harness 的 pin 记在 package.json(三个 @deepseek-ai/dsh-experimental-* 依赖), DSH-TUI 的 pin 记在 dsh-plugin.json 的 compat.hosts 与 dsh-distribution.json 的 host-tui 引用里。更新的宿主在被某个发布行写明之前 不作声明:这两个版本请一起钉。

最新一行是本包当前发布的版本(可从 registry 安装);其下各行是更早版本钉定的组合,标注为 previous,作为历史保留。

@mpd-dsh/mpd DeepSeek Harness DSH-TUI 说明
0.18.0 0.2.2-rc.1 0.19.0 本次发布
0.17.5 0.2.1-rc.5 0.18.0 上一次发布
0.17.4 0.2.1-rc.5 0.18.0 上一次发布
0.17.3 0.2.1-rc.5 0.18.0 上一版本
0.17.2 0.2.1-rc.5 0.18.0 previous
0.17.1 0.2.1-rc.5 0.18.0 previous
0.17.0 0.2.1-rc.5 0.18.0 previous
0.16.4 0.2.1-rc.3 0.17.0 previous
0.16.3 0.2.1-rc.3 0.17.0 previous
0.16.2 0.2.1-rc.3 0.17.0 previous
0.16.1 0.2.1-rc.3 0.17.0 previous
0.15.4 0.2.1-rc.2 0.16.1 previous
0.15.2 0.2.1-rc.2 0.16.1 previous
0.15.1 0.2.1-rc.2 0.16.1 previous
0.15.0 0.2.1-rc.2 0.16.1 previous
0.14.0 0.2.1-rc.2 0.16.1 previous(harness 0.2.1 适配发布)

最新一行就是这一对:0.18.0 对 harness 0.2.2-rc.1 与 DSH-TUI 0.19.0。旧宿主继续被支持: engines.dsh 覆盖 >=0.2.1-rc.2 <0.3.0-0,而 0.18.0 在 0.2.1-rc.5 上同样能安装并运行。0.19.0 的 peer 名单新增 0.2.2-rc.1,同时保留 0.2.1-rc.4/0.2.1-rc.5,而且它的准入链与 0.18.0 的逐字节 相同。钉定位置是 package.json 与 dsh-plugin.json 的 compat.hosts(同时列出两个 TUI 宿主);其下各行保留为历史,记录更早版本实际钉定的组合。完整矩阵见 docs/compatibility.zh-CN.md。

快速上手

  1. 装好,重启 dsh,用 MPD (Main Working Agent) preset 开一个会话。
  2. 让它干点真活。 它手里有 bash / read / edit 和几个 MCP 代码工具。在项目里放一个 AGENT.md 就能指挥它;会话启动时会自动读。
  3. 咨询一位专家。 mpd_roles_list 列出名册,然后 mpd_role_spawn { role: "Architect", task: "review the module boundaries in src/" }。
  4. 把好用的留下来。 mpd_workmate_init { base: "Architect", name: "system-architect" },之后用 mpd_workmate_spawn { name: "system-architect", task: "…" } 复用。
  5. 升级成团队。 直接要一个,或者把一件确实值得组队的事说清楚:captain 会用 agent_teams_plan 暂存计划(add_member → create_task,每个任务都要声明它的依赖答案,blocked_by 或 independent: true,→ approve),再用 agent_teams_task 与 agent_teams_dispatch 加上 send_message / wait_agent 驱动任务板;官方的 spawn_teammate / team_task_* 动词在工具边界被 拒绝。在本套件的 Team 侧边栏视图里,或者 TUI 的 /mpd team 场景里看名册和共享任务板。
  6. 教它一项新能力。 把扩展目录放进 <workspace>/.mpd/extensions/,用 mpd_ext_list 检查。

第一分钟就值得知道的两条命令:

/autoproject  <目标>          把长目标按轮次推到完工,带关卡
/mpd  team            打开团队场景(DSH-TUI)

或者直接开口问。想要一双受约束的第二双眼时,点名一位专家:

让 Architect 审一下 src/queue.ts 里的重试逻辑

DSH-TUI 按键状态行的一小条:mpd 那一行列出团队与进度、boulder、计划数和 workmate 数。

状态行、/mpd 命令树和 /settings 分区是终端原生界面;它们在 Web 那边对应的是本套件的 Team 视图 (外加 Team watchdog)、Workmates 页签和设置里的 MPD 分区。

用法

套件的活儿都通过工具和命令发生,两个端用的是同一批。速查:

你想…… 用什么 细节
用会读项目规则的智能体干活 mpd preset 使用者指南 §2
要一个受约束的第二意见 专家名册,mpd_role_spawn 使用者指南 §4
让一位专家积累知识 workmate 库,mpd_workmate_* 使用者指南 §5
跑真正的多智能体流程 团队模式,agent_teams_plan → agent_teams_task / agent_teams_dispatch(官方的 spawn_teammate / team_task_* 动词被拒绝) 使用者指南 §6
把长目标推到完工 autoproject 循环,/autoproject 使用者指南 §13.2
持久跟踪多步计划 boulder 台账,mpd_boulder_* 使用者指南 §13.6
跨会话记住事实 记忆引擎,mpd_memory_* 使用者指南 §13.7
编辑文件不因行号漂移出错 哈希锚定编辑,mpd_hashline_* 使用者指南 §13.5
理解一个陌生的代码库 MCP 服务:ast-grep、LSP、CodeGraph 使用者指南 §3
教套件一个新花样 扩展接口,mpd_ext_* 使用者指南 §10
全部在终端里驱动 DSH-TUI 版 使用者指南 §7

DSH 设置面板里的 MPD 分区,列出套件的各档旋钮,每一项都带一个"重置为文件值"按钮。

Agent presets 设置页:MPD (Main Working Agent) preset 列在 CUSTOM 下,而"新建任务默认"标记落在宿主的 Standard mode 上:部署默认项由宿主决定,套件从不覆盖它。

配置是 JSONC 且分层:<workspace>/.mpd/mpd.jsonc 覆盖 $DSH_HOME/mpd.jsonc,按单个键覆盖,项目文件赢。 你的状态住在 <workspace>/.mpd/;唯一的例外是 workmate 库,它在 HOME 下:~/.mpd/workmate/。见 使用者指南 §9 和 §14。

DSH-TUI 的 workmate 列表,显示库里的各个实例及其 base 与使用次数。

状态与已知限制

  • 针对一个预发布版 harness 构建和验证。 套件按 0.2.2-rc.1 测试,而更旧的 0.2.1-rc.5 仍然可以 安装并运行。上游稳定之前请预期会有破坏,并钉住你使用的 harness 版本。
  • 旧 harness 上缺少一项能力。 list_agents 在 0.2.1-rc.5 上不会被挂载:新 harness 移除了该行所需的 子路径导出,而单个 preset 无法同时横跨两者。见 docs/compatibility.zh-CN.md §2。
  • TUI 端在几处点名的地方落后于 Web 端。 上表中两列不读作"事实相同"的那些行,都是仍然开放的偏差, 每一条的证据都记在 docs/tui-parity.md。
  • 套件是一个包,不是一份 fork。 它不附带任何 harness 改动,也不编辑 DSH 源码。若 harness 改了某个 seam 的名字,套件在一个适配器文件里吸收掉。
  • preset 默认值归你自己选。 因为套件不覆盖任何 host 行,mpd preset 只会通过你自己的动作变成默认值: 见 docs/preset-default.md。
  • 保存的设置要重启才生效。 各插件是在挂载时读取配置的,所以 mpd_config_get 读出新值并不等于 正在运行的插件已经在按它行事。
  • 截图是无头抓取。 Web 图是固定视口下的 Chromium,由 Playwright 驱动;终端图是 TUI 自己发出的 字节流(带 ANSI,从真实 PTY 抓取),按 tmux 算好的字符网格栅格化。换个浏览器窗口尺寸或换一个终端,排版就会不同:成立的是屏幕上那些事实, 不是像素。
  • 许可证:MIT。 本仓库自己的代码是 MIT(LICENSE.md,Copyright (c) 2026 HaroldZ32);第三方材料保留各自 的许可证,逐组件记录在 LICENSE-NOTICES.md。

文档

贡献

CONTRIBUTING.zh-CN.md 写着环境搭建、构建与关卡命令,以及分支模型。本仓库靠 一套关卡而不是靠评审习惯来开发:没有落在磁盘上的证据,就不算做完。面向人的文档和 Pull Request 描述都是 双语的(英文 + 简体中文)。

变更日志

发布说明在 CHANGELOG.md,最新的在前,每个已发布版本一节(当前版本是 v0.18.0)。 带注释的 tag 列在 Releases。

致谢

本包随行使用的第三方内容与其许可证记录在 LICENSE-NOTICES.md。概括如下:

  • 随包服务的技能语料(MIT)取自 code-yeongyu/lazycodex;
  • 十一份 roster persona 文本取自宽松许可的公开 agent 提示词;
  • Workmates 页签挂载社区侧边栏包 dsh-better-sidebar;
  • 可选的注释检查二进制是 @code-yeongyu/comment-checker(MIT);
  • 其余能力组合在 harness 自己的官方包之上。

没有任何一条描述本仓库并不随行的内容。

许可证

MIT:见 LICENSE.md,Copyright (c) 2026 HaroldZ32。第三方组件保留各自的许可证; 完整声明在 LICENSE-NOTICES.md。

内容来自项目 README(GitHub)↗

链接

同类插件

查看整个分类 →

社区评论

评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。