deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:toujianjian/dsh-do
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
Detail Optimization —— DeepSeek Harness(DSH)的细节优化插件:Claude Code 同款自主循环 + 侧边栏 GitHub 插件发现/一键 AI 安装 + 右键添加工作区。
项目名 dsh-DO(Detail Optimization);npm 包名因 npm 规范必须小写,为
dsh-do。源码:https://github.com/toujianjian/dsh-do
插件分两半:
loop_start 启动后,驱动在同一会话里一轮接一轮自动续跑,直到 loop_done(完成)、轮次预算耗尽(自动 block)、loop_cancel(取消)或用户中断。loop_start / loop_status / loop_done / loop_cancel。max_rounds(默认 20),到顶自动 block(round-limit),防失控空转。dsh-goal-round-driver 模式):agent/status idle 驱动下一轮;agent/inbox/inserted 检测竞争提示自动暂停;agent/pre-step waterfall 校验轮次预约(round 编号/内容/loop 身份),拒绝陈旧或外来轮次并归还其它已认领消息;turn/end aborted/max-tokens、agent/error、卸载时全部正确清理。loop_start 仅直接人类轮(顶层 agent + 本轮含 source.kind === 'user' 消息),拒绝子代理;loop_done/loop_cancel 仅人类轮或当前循环轮。user/message + source.kind === 'loop')为准,检查点只作提示,重放同一事件序列得到同一状态。sidebar.footer.action slot:GitHub Octocat 图标(内联 SVG),窄侧边栏只显图标、宽侧边栏图标 + 文字。dsh-plugin 相关仓库,结果带 AI 安装按钮。topic:/dsh-plugin 前缀只在留空浏览时作为默认查询),因此能搜到 Deepseek-Harness-EAC 这类没打标签的仓库。POST /dsh-do/ai-install → 创建全新会话并注入安装提示词 → 新会话出现在侧边栏列表,agent 自动开始安装。dsh.bundle 与产物完整可加载,再 dsh plugin --profile web add github:<owner>/<repo>,最后验证 --dump-config 并提示是否需要重启。{{model}}/{{cwd}} 不缺值。aria-label 中英匹配):右键它 → 弹出输入框 → 粘贴目录路径(Windows C:\... / POSIX /... 均可)→ 回车注册为 DSH 正式工作区(走 ctx.workspaces.create),侧边栏立即出现。env(safe-area-inset-bottom))。window.__ModuleLoader__.load 包装、CSS Modules 内联注入、跨包纯度门、sourcemap。ctx.inject 惰性挂载(不抢跑兄弟 provider),请求体有大小上限、统一 JSON 错误与 no-store 缓存策略。node --test 15 个用例)。用户 → 模型: "帮我完成 X"
模型 → loop_start { objective: X, max_rounds: N } ← 本轮内调用,要求直接人类输入
│ 驱动记录 loop: { phase: active, armed: true },原子写检查点
▼
当前轮结束 → agent/status idle → 驱动队列 round 1 (<loop_round>)
▼
round 1 执行(模型工作、调用工具、验证)
▼
轮结束 → 模型调用了 loop_done?→ phase=completed,写检查点,停止
│ 否则:轮数 >= maxRounds?→ phase=blocked(round-limit),写检查点,停止
▼
队列 round 2 …(循环)
只支持从 GitHub 安装(构建产物已提交,无需本地构建):
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:toujianjian/dsh-do
安装成功后重启目标 profile 生效。验证:
npx -p @deepseek-ai/dsh dsh --profile web --dump-config # 应出现 dsh-do 行
cordis.patch.yml 中的 config(整段替换语义,覆盖时需重述全部键):
| 键 | 类型 | 默认 | 含义 |
|---|---|---|---|
defaultMaxRounds |
number | 20 |
loop_start 省略 max_rounds 时的轮次预算 |
checkpointDir |
string | "" |
检查点目录;空串 = $DSH_HOME/loops(DSH_HOME 未设置时为 ~/.dsh/loops) |
persist |
boolean | true |
置 false 仅内存保存(不落盘) |
| 工具 | 用途 | 权限 |
|---|---|---|
loop_start { objective, max_rounds? } |
启动循环;已有 active 循环时:armed → 报错,disarmed → 重新 arm(沿用已存 objective) | 仅直接人类轮;拒绝子代理 |
loop_status |
读当前循环(id/objective/phase/armed/轮次/预算/原因) | 当前驱动内的调用 agent |
loop_done { summary? } |
标记完成;循环轮内调用会注入 <loop_complete> 收尾提示 |
直接人类轮 或 当前循环轮 |
loop_cancel { reason? } |
标记取消;同上注入 <loop_cancelled> 收尾提示 |
直接人类轮 或 当前循环轮 |
工具均要求:调用 agent 处于活跃驱动、当前 turn 未关闭(复用官方 dsh-tool-goal 的权威校验模式)。
pnpm install
pnpm typecheck # host + client 双 tsc --noEmit
pnpm build # build:host(tsc)+ build:client(tsc + tsdown → lib/client.js)
pnpm test # build:host + node:test(loop 状态机/提示/检查点,15 个用例)
pnpm watch # tsdown --watch(client HMR 构建)
已在本仓库验证:typecheck、build、node --test(15 个用例)、真实组合验证
(dsh plugin --profile <scratch> add <tarball|github> → --dump-config 出现 dsh-do 行 →
全新 profile 完整 boot 无 fiber/加载错误;client bundle 为 window.__ModuleLoader__.load({...})
包装,/dsh-do/ai-install 路由注册成功)。
端到端 loop 验证(需要模型凭证):
npx -p @deepseek-ai/dsh dsh --profile web "用 loop_start 启动一个循环,目标:打印三行 hello;max_rounds 设 2;完成后调用 loop_done"
预期:第一轮完成打印 → 驱动自动队列第 2 轮 → 模型 loop_done → 循环 phase=completed,
$DSH_HOME/loops/loop-*.json 出现终止记录。
浏览器 UI 验证:重启 web profile 后:
dsh-do-install-* 新会话自动安装;aria-label 匹配现有按钮(中/英),官方若改文案需同步更新选择器。loop_cancel 或等其结束)。dsh-storage-json 同语义);多进程写同一 root 不保证。roundsStarted 以会话日志为准;无持久化后端的会话在重启后不会自动续跑(新会话 id 与已存 loop 不匹配,属预期)。loop_done",预算耗尽只是兜底;与 goal 工具一样依赖模型的完成判断。CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。