DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
P

dsh-plan-runner

Plan Runner

为 DeepSeek Harness 打造的逐步计划运行器,适用于小型本地模型:每个步骤都在全新的子对话中运行,并使用独立的模型和访问权限;通过机械检查和可选的只读审查器进行验证;失败后重试一次,然后向用户提议进一步拆分。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:MathieuPortmann/dsh-plan-runner#2bb098a0ab8a433f7eef893c30424c8086c3d2cd
README兼容性版本

兼容性与来源证明

Plan Runner 以 dsh-plan-runner 发布,当前版本为 0.1.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/25

版本

0.1.1stable
2026/10/25

相关插件

正在加载相关插件…

最新版
0.1.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/25
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 agents-orchestration 分类下经过校验的插件。

Hindsight Coding Agents@vectorize-io/hindsight-coding-agents面向编程代理的仅反思式 Hindsight 长期记忆(可插拔支持多种运行框架:opencode、……),自动在后台导入(无需设置 CLI)。Liangshen@linxin666/dsh-liangshen适用于 dsh Web GUI 的 LiangShen (梁神) agent preset 及其 composer lever。主机部分在激活时将内置 preset 声明到 harness 的 agent-preset 注册表中(declare = enabled),因此无需写入任何内容,preset 即可供新会话选择Remote Bridge@linxin666/dsh-remote-bridgeDSH 远程桥接:主机端通过唯一且精确的 /ios/v1 WebSocket 路由提供协议 v1——会话列表、历史记录基线、提示、包含工具活动的实时回合增量、中断以及进程内代理审批——连接到通过一次性配对的设备Skills Manager@michengai/dsh-skills-managerDSH Skills Manager — 在 DeepSeek Harness 中统一加载并安全管理本机 Agent Skills · 在 DSH 中加载并安全管理本地 Agent Skills

README

dsh-plan-runner

Step-by-step plan runner for DeepSeek Harness (DSH), built for small local models that lose the thread on long tasks. A Plan agent writes the steps; the runner then executes each step in a fresh child conversation that only sees the objective, its own instructions, short summaries of earlier steps and the files it needs, and verifies the result with checks the harness runs itself.

Maintenance: best-effort. Issues may go unanswered; forks are welcome.

How it works

  1. Choose the Plan preset. The agent explores read-only, then records the steps with plan_begin, plan_add_step (one call per step) and plan_show. A step that would exceed 60 % of its model's context window is refused, so it has to be split. The plan is also saved as PLAN-<name>.md.
  2. Approve the plan and press Run step by step (plan review card, or the strip above the composer). Each step runs in its own conversation (native DSH subagent) with:
    • its own model (see Configuration),
    • its own access level: read, read-shell (read-only shell commands only), write (files, limited to the step's declared outputs) or full,
    • a worker persona and a fixed final report (Summary / Files / Decisions / Open questions).
  3. After each step the harness runs the checks of the step: exists: <path>, contains: <path> :: <text>, words: <path> >= <n>, count: <glob> >= <n>, command: <shell command> (exit 0 = ok). Important steps also get a read-only reviewer that ends with VERDICT: OK or VERDICT: PROBLEMS - ....
  4. A failing step gets one retry with the cause and a lesson; after a second failure a finer split is proposed and nothing changes until you accept it.
  5. for_each steps run once per file or item, each in a short conversation, and write one result file per item. Steps marked stop pause the run so you can check the result.
  6. Loops (the same tool call repeated) abort the step; a plan interrupted by a restart is paused and resumes from the current step.

State is kept in <working folder>/.plan-<name>/state.json (readable by humans) and an index of plans per conversation in <DSH_HOME>/plan-runner/index.json. Files a step overwrites are backed up under .plan-<name>/backups/.

Steps cannot ask for approval (DSH rejects approval requests in a subagent): an action the conversation's permission mode does not allow without asking is refused and the step fails. For steps that write, put the conversation in an auto or workspace-write mode.

Install

dsh plugin --profile web add dsh-plan-runner
# or straight from GitHub:
dsh plugin --profile web add github:MathieuPortmann/dsh-plan-runner

Restart the profile afterwards. The bundle adds its own Plan preset (id plan); do not combine it with another bundle that defines a preset with the same id.

Configuration

Row plan-runner in your profile's cordis.patch.yml; every key is optional.

- id: plan-runner
  config:
    models:                      # models a step may use; empty = the plan conversation's own model
      my-local-model:
        provider: ollama
        window: 32768            # context window in tokens
        description: good reasoning, slow   # shown to the Plan agent
    defaultModel: my-local-model
    splitModel: my-local-model   # proposes the finer split after two failures
    auditModel: ''               # reviewer of important steps ('' = the step's own model)
    pauseOnBattery: false        # pause the run on battery power
    ollamaUrl: http://127.0.0.1:11434
    commandTimeoutMs: 120000     # timeout of `command:` checks
    loopRepeats: 3               # identical tool calls in a step that count as a loop

When a model's provider is ollama, the run pauses if ollamaUrl stops answering. Token budgets use basePromptTokens, outputReserve, unknownFileTokens, itemOutputTokens and summaryTokens (defaults tuned for 32k windows).

Compatibility

ComponentSupported
Node.js^22.19.0 || >=24.0.0 (engines.node)
DSH>=0.2.0-rc.2 <0.3.0; declared as optional peerDependencies on @deepseek-ai/dsh-llm and @deepseek-ai/dsh-tools, the only DSH packages the plugin imports
PlatformLinux (tested); pure JavaScript, no native addon. command: checks need a POSIX sh

Tested with DSH 0.2.0-rc.2 on Node 22.23 (see Verification).

Permissions and external services

Everything the plugin can touch, and what happens when it fails:

CapabilityWhereUsed forIf it fails
Files (read)lib/checks.js, index.jsexists / contains / words / count checks, file sizes for the token budget, /sys/class/power_supply (only with pauseOnBattery); every path is resolved inside the working folderthe check fails or the file counts as missing
Files (write)lib/store.js, lib/plan-file.js, index.js<cwd>/.plan-<slug>/state.json and backups/, <DSH_HOME>/plan-runner/index.json, PLAN-<name>.md in the working folder; a step's own result files are written by the step's child conversation, restricted to its declared outputsthe plan stays in its previous state
Commandslib/checks.js (spawn('sh', ['-c', …]))command: checks, written by you or by the Plan agent, run in the working folder with a timeout (commandTimeoutMs); the Plan agent is told to keep them read-onlya timeout kills the command and its children; the check fails
Networkindex.js (fetch)only GET <ollamaUrl>/api/tags when a step uses an ollama modelan unreachable server pauses the run
Dynamic module loadingindex.js, lib/plan-tools.jsloads @deepseek-ai/dsh-llm and @deepseek-ai/dsh-tools from the DSH installation that runs the plugin (a synchronous require of an ES module fails on Node 22); nothing is downloaded and no code is evaluated from textboth are required: the plugin fails to load without them
Subagentsindex.js (ctx.subagents)one child conversation per step, with a tool filter per access level (read, read-shell, write, full)the step fails and follows the retry rule

The plan state is plain JSON under .plan-<slug>/; delete the folder to forget a plan.

Verification

Checked on a disposable profile (DSH_HOME pointing at a temporary folder, profile cloned with dsh <name> --from-default-profile web, so the real profile is never touched):

npm pack
dsh plugin --profile t add file:$PWD/dsh-plan-runner-0.1.1.tgz   # install
dsh --profile t --no-open --port 3095                              # start: plugin loads, no error

npm test runs 42 standalone tests (state, parsing, checks, store, runner, scope guard, read-only shell, config) with no DSH installation needed. A real run with a 9B local model created a plan with plan_begin / plan_add_step, ran its step in a child conversation and verified the result with a words: check.

Develop

npm test

License

MIT