@sakura12/oh-my-deepseekharness

中文文档
0.7.2发布于 2026/11/02MITES Module

Multi-agent orchestration layer for DeepSeek Harness — 49 skills, 58 MCP tools, graph DAG runtime, team pipeline & HUD (OMC/OMX adaptation)

原始使用文档
文档目录10 节
  1. 安装 / Install
  2. 快速上手 / Quick Start
  3. 能力速览 / Capabilities
  4. 配置 / Config
  5. 「stale」阈值总表(同一术语三处语义,一处可查)
  6. 迁移说明 / Migration(0.4.4 → 0.4.5 行为变更)
  7. 状态目录 / .omd/ Layout
  8. 降级与依赖边界 / Graceful Degradation
  9. 开发 / Development
  10. License

oh-my-dsh (omd)

License: MIT Node.js >=22.19.0 Tests: 652 passed

DeepSeek Harness 的多智能体编排层 —— OMC / OMX 编排理念的 dsh 宿主适配实现。 Multi-agent orchestration layer for DeepSeek Harness, adapted from:

omd 以单个 dsh 插件交付:注入编排协议到系统提示词、注册 49 个 skill 目录 + 33 个 omd-agent-* 角色卡(66 个双语文件,会话技能目录共 82 条)与 3 个斜杠命令、挂载内置 MCP server 提供 58 个状态/记忆/协调/代码智能/graph 运行时工具。三种执行模式(autopilot / ralph / team):autopilot 与 ralph 由 dsh 原生 goal / ralph 工具驱动前台循环;team 由 lib/team.js 领队运行时驱动(阶段状态机 + 队员 UUID 生命周期 + mailbox + heartbeat + merge 计划,无 tmux——dsh 无承载面)。


安装 / Install

# 发布后(npm 包名 @sakura12/oh-my-deepseekharness——注意裸 oh-my-dsh 是 npm 上另一个已停更的包)
dsh plugin --profile <profile> add @sakura12/oh-my-deepseekharness

# 本地开发(指向本仓库路径;以你的检出路径替换)
dsh plugin --profile <profile> add /path/to/oh-my-deepseekharness

<profile> 是 dsh 的隔离配置/插件组合单元(本机如 web);dsh plugin 实为转发 pnpm 到该 profile 目录,add/remove 均用 npm 包名。装完必须重启或重载 profile(重开 dsh web)再开新会话,插件树才会重载生效——然后在会话里输入「setup omd」走安装向导,或直接 /omd-doctor 验装。

要求:Node.js ≥ 22.19;dsh 宿主兼容范围以 package.json 的 peerDependencies 为权威(0.1.2 / 0.1.5 / 0.1.7 三条 0.1.x 线与 ≥0.2.0-rc 线;0.2.0-rc.2 与 0.2.1-rc.5 实测全绿——0.2.1 删除了 subagents 服务级 start(改 startActivation),0.7.1 起 omd_delegate 经双形态 feature-detect 自适应新旧两线)。兼容性质证的逐条证据台账是仓内审计产物(.omd/plans/,gitignored),不随 npm 包发布。所有 @deepseek-ai/* 依赖均为宿主义务(peerDependencies,缺失自动降级,见下文「依赖边界」)。可选能力依赖(optionalDependencies,缺席显式降级不阻断):@ast-grep/napi(ast_grep_* 工具)、vscode-jsonrpc / vscode-languageserver-protocol / vscode-uri(lsp_* 工具)。

验装:安装后在会话中输入 /omd-doctor(不确定可用入口时先 /omd 看速查)。

开发改动 → GUI 生效(install-local):profile 依赖若从 npm 解析(如 ^0.4.9),仓库里的改动不会到达运行中的 GUI(2026-10-26 审查实证:实装 0.4.9 vs 仓库 0.5.1 漂移)。闭合链路:

pwsh scripts/install-local.ps1   # npm pack → 装进 profile → 按提示重启 dsh web

注意:该脚本是直接覆盖 profile node_modules 的快装路径;下次在 profile 里跑 pnpm install/add 会被冲掉。长期方案是把 profile 依赖改为本地路径(dsh plugin add <仓库路径>)或发布新版。


快速上手 / Quick Start

三种执行模式,一句话启动:

模式一句话示例说明
autopilotautopilot 帮我做一个 CLI 字数统计工具自然语言触发,goal 驱动的全流程自动编排(访谈→规划→执行→双评审门→沉淀检查点)
ralphralph: 把 README 的测试徽章数字同步到当前实际值显式触发:行首 ralph: 或「用 ralph …」(锚定守卫防误触发;/ralph 斜杠形态经技能面加载,同效);PRD + 证据契约的迭代循环,前台阻塞
team用 team 调研插件市场生态并出报告无关键词,只能显式调用;五阶段流水线 + 领队运行时(team_phase_transition 状态机 / team_register_worker 生命周期 / team_mail_* 信箱 / team_heartbeat_scan / team_merge_plan)

三个斜杠命令与取消/诊断入口:

操作命令
速查帮助/omd(模式关键词 / 技能总览 / HUD 与记忆入口)
取消当前模式输入 cancelomd(或 stopomd),或斜杠命令 /omd-cancel
验装诊断/omd-doctor(注册计数 / Config / MCP 冒烟 / .omd 可写性)

退役关键词 ultrawork / ulw / uw / ccg 不再触发,命中时会提示改用 autopilot 或 team(如 autopilot <你的任务>)。

触发词 code review / 代码评审 命中的是行内指引块(轻量提示),不是完整 review 技能流程;要完整评审请显式调用(如「用 review 技能评审这次改动」)。


能力速览 / Capabilities

维度内容
执行模式3 种:autopilot(goal 循环)/ ralph(PRD 迭代)/ team(五阶段流水线 + 领队运行时),模式互斥 + 触发守卫防误触发
角色33 个委派角色卡(omd-agent-*:OMC 19 + OMX 移植 14——api-reviewer / style-reviewer / performance-reviewer / quality-reviewer / quality-strategist / build-fixer / dependency-expert / information-architect / vision / product-analyst / product-manager / ux-researcher / researcher / explore-harness),各带档位(low 5 / medium 17 / high 11)与职责资产
Skills49 个(中英双语资产):3 执行模式 + 规划 + 质量 + 研究 + 记忆 + 基础设施与元 + OMX 移植 4(analyze / best-practice-research / design / performance-goal)
MCP 工具58 个(内置 omd-state MCP server):state_*×5 / notepad_*×6 / prd_*×4 / handoff_*×3 / team_*×18(c5/c6/c8 + 领队运行时 + team_cancel 取消路径) / events_*×1/ trace_*×4 / hud_*×2 / graph_*×6(U4 graph DAG 运行时:validate/run/status/resume/node_result/gate_resolve)/ 代码智能×9(ast_grep_*×2 + lsp_*×7)
Team 运行时lib/team.js:阶段状态机(team-plan→prd→exec→verify→fix(≤3,状态机强制)→终态)/ 队员 registry(workerId=UUID,runId=owner-epoch,终态不可复活)/ mailbox(in=队员→队长 progress/blocker/done/question,out=队长→队员 nudge/assign/answer)/ heartbeat(team_heartbeat_scan 按需扫描 + 插件侧周期检测定时器——检测+呈面,催促归队长模型,绝不自动杀)/ merge 计划(树∩主仓冲突候选 + 建议序,执行归模型)
HUD三层承载:web GUI 右侧边栏 omd-hud 面板(client half,lib/client.js,自适应轮询五要素卡:活跃 5s,空转退避至 ≤30s;full preset 另渲染「队员」「工具调用」两区)/ 数据路由 GET /oh-my-dsh/hud.json(loopback 私有面另聚合 team registry 为 workers、聚合 .omd/state/events.jsonl 派发事件总线为 toolCalls,MCP wire 零变化)/ MCP hud_render hud_summary(CLI 会话同款摘要)
代码智能ast_grep_search / ast_grep_replace(结构化语法检索/重写,$VAR/$$$VARS 元变量,dryRun 默认不落盘);lsp_start/stop/status/document_symbols/references/definition/diagnostics(Config codeIntel.lspServers 注册表驱动,单实例/崩溃重启 ≤2/随 MCP server 退出回收)
Hook 与定时c2 keyword-hook(agent/pre-step 原生拦截点,唯一 hook 电线)+ team heartbeat 周期检测定时器(Config team.heartbeatIntervalMs,默认 60s,0=关闭)
跨会话记忆omd_memory_set/get/list/delete(宿主 storage domain 承载)+ notepad 三区(priority 永久 / working 7 天 / MANUAL 永不清理)+ autopilot/ralph 收尾沉淀检查点(替代 OMC hook 自动 learner)
路由c3 自适应路由(4 特征 + 表上限钳制 + fallback 审计)+ omd_delegate 硬路由工具(tier/model 经 spawn 路径强制生效)

功能点对齐全景(OMC/OMX 45 功能点:✅34 / ⚠️1 / ❌0 / 🚫10 含决定记录)见 docs/feature-parity-audit.md。


配置 / Config

插件配置(cordis Config,schemastery 校验):

键类型 / 默认说明
language'zh' | 'en' | 'both',默认 'zh'资产语言:中文 / 英文 / 中文正文+英文术语
tiers.low模型标识,默认 'inherit'档位→模型映射;值可为 provider/model 或 'inherit'(继承主会话模型)
tiers.medium同上,默认 'inherit'同上
tiers.high同上,默认 'inherit'同上
roleOverridesdict<string>,默认 {}角色级覆盖,优先于 tiers,如 { "omd-agent-code-reviewer": "deepseek/deepseek-reasoner" }
stateDir字符串,默认 '.omd'项目状态目录名(改名注意:协议与技能文档多处按 .omd/ 举例,改名后文档示例同步失效,非必要不建议改)
autopilot.maxIterations自然数 ≥1,默认 10autopilot 最大轮次(create_goal 的 max_goal_rounds 默认值)
autopilot.maxQaCycles自然数 ≥1,默认 5QA 循环上限
autopilot.maxValidationRounds自然数 ≥1,默认 3re-validation 轮次上限
team.heartbeatIntervalMs自然数,默认 60000插件侧 heartbeat 周期检测间隔(0=关闭定时器;team_heartbeat_scan 按需扫描仍可用)
team.staleAfterMs自然数 ≥1,默认 300000队员无心跳 stale 阈值
hudRoute布尔,默认 trueHUD 数据路由 /oh-my-dsh/hud.json 开关(安全阀:该 loopback 只读路由无鉴权、?cwd= 可读任意已存在目录的 .omd 摘要——多用户/非可信本机环境可关闭;MCP hud_render 不受影响)
hudPreset'minimal' | 'focused' | 'full',默认 'focused'HUD 面板预设:minimal=纯卡文本 / focused=主模式卡+告警 / full=追加记忆三区/队员/工具调用/数据面
graph.stalledAfterMs自然数 ≥1,默认 600000graph run 停滞告警阈值(HUD 告警面扫描用,默认 10 分钟)
codeIntel.astGrep布尔,默认 trueast_grep_* 开关(@ast-grep/napi 缺席时工具显式报错)
codeIntel.lspServersdict,默认 {}LSP 注册表:{ <name>: { command, args?, languages?, env? } }——语言服务器本体由用户环境提供

配置示例(写在 profile 目录的 cordis.patch.yml——如 C:\Users\<你>\.dsh\profiles\<profile>\cordis.patch.yml,不是包内自带的同名只读挂载补丁;用 - id: oh-my-dsh + config: 覆盖形式,改完重载 profile):

# <profile 目录>/cordis.patch.yml(追加一条;文件里已有其他插件条目则并列)
- id: oh-my-dsh
  config:
    language: zh
    tiers:
      low: inherit          # 继承主会话
      high: deepseek-reasoner
    roleOverrides:
      omd-agent-verifier: deepseek/deepseek-reasoner
    autopilot:
      maxIterations: 15
    team:
      heartbeatIntervalMs: 60000
    codeIntel:
      lspServers:
        typescript:
          command: typescript-language-server
          args: ["--stdio"]
          languages: [typescript]

「stale」阈值总表(同一术语三处语义,一处可查)

面阈值配置键含义
team 队员心跳5 分钟team.staleAfterMs队员超阈值无心跳 → stale(检测+呈面,绝不自动杀)
模式状态(ralph/autopilot 等非 team)2 小时无(规格 §5.4 定值)状态文件超阈值未更新 → HUD/协议判 stale(只报告不自动续跑)
graph run 停滞10 分钟graph.stalledAfterMsjournal 超阈值未推进且有等待节点 → HUD 告警行

迁移说明 / Migration(0.4.4 → 0.4.5 行为变更)

tiers 三档默认值从写死的 glm-5.3-flash 改为 'inherit'(继承主会话模型路由)。影响面:

  • 已显式配置 tiers 或经 roleOverrides 覆盖的部署:不受影响;
  • 经 omd_delegate 显式指定 model 的派发:不受影响(显式 model 绕过档位表,一等硬指定);
  • 未做任何配置的部署:档位派发从「固定 glm-5.3-flash」变为「继承主会话模型」——成本敏感部署(希望档位派发继续走指定小模型)应在 Config 中把 tiers.<tier> 显式写回具体模型 id。

状态目录 / .omd/ Layout

所有模式状态落在项目目录的 .omd/(可用 stateDir 改名),取消/崩溃后可恢复:

.omd/
├── state/
│   ├── sessions/<sessionId>/<mode>-state.json   # 每会话每模式状态(active/phase/iteration)
│   ├── run-state.json                           # c6 七字段镜像(CAS,队长独占写)
│   ├── boulder.json                             # ralph 进度石
│   └── events.jsonl                             # U8 派发事件总线(route/fallback,append-only,读面尾部窗口 64 KiB;写面 ≥1MiB 轮转单档 events.jsonl.1——.1 归档不进读面/聚合)
├── plans/          # autopilot/team 计划
├── specs/          # 规格文档
├── prd/            # ralph PRD(JSON + reconciliation.jsonl 台账)
├── handoffs/       # team 阶段交接(五段固定格式)
├── team/<runId>/   # team 运行时:phase.json / registry.json / mailbox/{in,out}/*.jsonl
├── trace/          # trace 时间线(<traceId>.jsonl,append-only;读面 8MiB 上限——超限策略性拒绝,引导另开新 trace)
├── worktrees/      # c5 team 运行树(gitignored,两阶段拆除)
├── graph-runs/     # graph 运行(journal.jsonl + descriptor.json 快照 + outputs/ + fence 旁文件 owner.lock/owner.epoch/owner.json)
├── checkpoints/    # 恢复快照
├── logs/
├── wiki/           # LLM Wiki 知识库(index.md + log.md + 分类页)
└── notepad.md      # 三区记事本(Priority 永久 / Working 7 天过期 / MANUAL 永不清理)

.omd/ 是运行时产物,建议加入 .gitignore。


降级与依赖边界 / Graceful Degradation

  • 零第三方 dsh 插件依赖:不依赖任何非 @deepseek-ai/* 官方插件。
  • 启动时能力探测与注册结果汇总渲染进系统提示词的能力矩阵(其中 core/storage 两项由 probe.js 实测探测;skills/mcpServer/delegate/keywordHook/teamHeartbeat/hudRoute/codeIntel/memoryTools/commands 九项为 apply 注册结果的追加记录——「注册成功」不等于「探测通过」),降级时协议指导模型走文件直读兜底:
    • 核心 inject 服务(tools/skills/systemPrompt/commands)缺失 → 插件启动即报错(唯一硬依赖);
    • storage 缺失 → 记忆工具不注册;
    • MCP server 挂载失败 → state_*/notepad_*/prd_*/handoff_*/team_*/trace_*/hud_*/graph_* 不可用,协议降级为直接读写 .omd/ 文件;
    • @ast-grep/napi 缺失 → ast_grep_* 显式报错(probe 记 codeIntel: unavailable),LSP 不受影响;
    • webServer 缺席(CLI 会话)→ HUD 数据路由不注册(probe 记 hudRoute: skipped,MCP hud_render 同款可用);
    • 运行 /omd-doctor 可随时查看当前降级状态。
  • graph 运行时授权面(已知暴露面登记):descriptor 内 command 节点是经 pwsh 执行的任意 shell 行,bin/graph-runner.mjs 与 MCP graph_run 同权——只运行你撰写或信任的 descriptor。MVP 阶段为声明式信任(无 allowlist/沙箱),登记于 docs/code-quality-logic-review.md 安全节。

开发 / Development

npm test            # vitest 全量(53 files / 652 tests)
npm run test:watch

lib/client.js(HUD client half)是手工维护的懒加载 CJS bundle(无构建步骤),格式经 tests/lib/client-bundle.test.js 沙箱断言;dsh web 宿主需重启以装载/更新 client 插件。

上游快照约定:reference/(gitignored 本机快照)升级 OMC/OMX 版本后,必须同轮更新 docs/upstream-form-*.md 形态卡与 docs/feature-parity-audit.md,并跑 npm test -- upstream-forms 守门(两层门:仓内一致性恒跑;reference 缺席环境漂移层 skip 属预期)。

License

MIT

版本与发布记录

@sakura12/oh-my-deepseekharness 共发布 20 个版本,首次发布于 2026/09/21;过去 12 个月发布了 20 个版本。

版本发布日期距今
0.7.2latest2026/11/021 天前
0.7.12026/11/021 天前
0.7.02026/10/295 天前
0.6.12026/10/295 天前
0.6.02026/10/295 天前
0.5.22026/10/268 天前

关于 @sakura12/oh-my-deepseekharness 的常见问题

@sakura12/oh-my-deepseekharness 是什么?

DeepSeek Harness的多代理编排层——49项技能,58个MCP工具,图形DAG运行时,团队管道和HUD (OMC/OMX适配)

如何安装 @sakura12/oh-my-deepseekharness?

在项目目录运行 npm install @sakura12/oh-my-deepseekharness,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@deepseek-ai/schemastery(^3.18.2)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。它还提供命令行工具 omd-graph-runner,可以用 npx omd-graph-runner 直接运行。

@sakura12/oh-my-deepseekharness 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/sakura12__oh-my-deepseekharness 是否存在。

@sakura12/oh-my-deepseekharness 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@sakura12/oh-my-deepseekharness 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.19.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@sakura12/oh-my-deepseekharness 可以商用吗?

@sakura12/oh-my-deepseekharness 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@sakura12/oh-my-deepseekharness 还在维护吗?

最新版本 0.7.2 发布于 2026/11/02(1 天前);至今共发布 20 个版本,其中过去 12 个月发布了 20 个;首次发布于 2026/09/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。