DSH 插件市场DeepSeek Harness 社区插件目录

harnessmm-dsh

已验证 模型与推理 ★ 2 1.2.5

Guarded decision reuse for the DeepSeek Harness: the model authors already-decided tool actions once, and receipt-supported ones execute through the native tools without another reasoning request. Ships a read-only decision-reuse panel with per-number data provenance.

一句话定位

Guarded decision reuse for the DeepSeek Harness: the model authors already-decided tool actions once, and receipt-supported ones execute through the native tools without another reasoning request…

安装方式

在 DSH 的 web profile 中执行下面的命令;装完刷新页面即可。

$ dsh plugin --profile web add harnessmm-dsh@1.2.5

兼容的 DSH 版本

>=0.2.1-rc.1

作者与热度

Xiuxiu-6 · ★ 2 · 更新于 2026-11-05

关于这个插件

harnessmm-dsh

Guarded decision reuse for the DeepSeek Harness. The model writes down already-decided

tool actions once; when the previous tool result satisfies the guard it wrote for them,

those actions run through the native tools without another reasoning request.

> This is a derivative work of [HarnessMM](https://github.com/YuhuaJiang2002/HarnessMM)

> by Yuhua Jiang (Apache-2.0). See [Provenance](#provenance) — the attribution is not

> boilerplate. This plugin re-implements one part of that research codebase for a general

> harness, and it does not inherit its benchmark claims.

---

The problem

An agent loop pays a full model request before every tool call, even when the model already

knows exactly what the next three calls are:

step 1  request → "read a.ts, then b.ts, then run the tests"   ← pays once
step 2  request → "ok, read a.ts"                               ← pays again, said nothing new
step 3  request → "ok, read b.ts"                               ← pays again
step 4  request → "ok, run the tests"                           ← pays again

Steps 2–4 are not decisions. They are the model re-deriving something it already decided.

What this plugin does

slow actor (one request, already paid for)
  ├─ visible text: {candidates:[...]}
  └─ one native tool call                        ← the "root"
        │
        ▼  real tool result (the receipt)
  guard checked deterministically against the receipt
        │
        ├─ holds  → run the stored action through the SAME native tool
        │           no model request at all  →  certificate
        └─ else   → the slow actor runs normally

Three moments:

| Moment | Boundary | What happens |

| --- | --- | --- |

| Author | llm/stream | After the model answers, its `` bank is validated against the live tool catalog and recorded. |

| Substitute | llm/stream | If exactly one stored action's guard holds, the request is answered with that exact tool call and no model call happens. |

| Certify | tools/post-execute | The action runs through the original tool definition; a certificate is recorded only after the real result is in hand. |

Anything else — no bank, failed guard, ambiguous successors, graph exhausted, a native

error, a non-conversation request, or the plugin disabled — calls next() unchanged, so

the harness behaves exactly as it would without the plugin.

The decision-reuse panel

The plugin ships a read-only observability panel. Nothing to install separately, nothing

to configure — restart the harness and it is there.

Two ways to open it:

1. Right sidebar tab — a HarnessMM tab in the conversation's right sidebar.

2. Standalone page — open http://127.0.0.1:/plugins/harnessmm/panel

in any browser tab. Useful when you want the panel full-width, or when the sidebar is

not available.

It follows the conversation. The panel counts only the conversation you have open:

  • Open conversation A → you see A's skipped requests, certificates and action banks.
  • Switch to B → the numbers switch to B's immediately; A's numbers never linger.
  • Start a new conversation → everything is 0, with an explicit "this conversation has not

been recorded yet" note.

The chip in the top-right corner toggles the scope:

[ This conversation · 3f2a1b8c ]   default — one conversation only
[ All conversations ]             click to see the process-wide total

The choice is remembered (localStorage: harnessmm.scope), and the sidebar tab behaves

exactly like the conversation-header tab. The session id comes from the host's

uiSession.current, which is the same UUID the engine records as sessionId.

同分类对比

同一分类下 Star 最高的 5 个,便于横向比较。

插件作者 Star版本更新
dsh-our-free-model Ebony-Vinyl 68K 2.1.0 2026-11-10
next-ai-draw-io DayuanJiang 36.9K 0.4.10 2026-11-09
MemOS MemTensor 12.3K 0.0.0 2026-11-09
bisheng dataelement 12.2K 0.0.0 2026-11-10
webnovel-writer lingfengQAQ 7.9K 0.0.0 2026-11-07