DeepSeek Harness plugin

dsh-llm-as-a-verifier

LLM-as-a-Verifier for DeepSeek Harness: fine-grained reward, Probabilistic Pivot Tournament best-of-N selection, and per-step progress tracking as agent tools.

Jump to install

Source facts

Repository
TaurenMountain/dsh-llm-as-a-verifier
Latest update
Aug 20, 2026
Category
Workflow & Automation
GitHub stars
1
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/TaurenMountain/dsh-llm-as-a-verifier
Plugin: dsh-llm-as-a-verifier
Author: TaurenMountain

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer4 files
README.en.mdSource · read only
README language

dsh-llm-verifier

English | 中文

> npm package name: dsh-llm-as-a-verifier (the bare name dsh-llm-verifier was already taken on npm; repo and package are unified as dsh-llm-as-a-verifier).

> Brings LLM-as-a-Verifier — the unified verification framework — into DeepSeek Harness (dsh) as a tool plugin. The agent can now verify its own candidates with fine-grained probabilistic feedback: instead of a binary good/bad judgement, the verifier's full logprob distribution over a 20-point score scale is read and its expectation taken.

What you get

Three model-facing tools, registered automatically after install:

ToolCapabilityCost
verify_compareScore two candidates (code/plan/trajectory) against criteria, returning fine-grained rewards (scoreA, scoreB) in [0,1]1 verifier call per criterion per evaluation
verify_selectBest-of-N via the Probabilistic Pivot Tournament: O(Nk) comparisons instead of an O(N²) round-robinLinear in N
verify_trackPer-step progress curve scored on the A(0%)..T(100%) scale at each checkpointO(K) calls regardless of trajectory length

Why finer than LLM-as-a-Judge? The upstream framework's key ideas, ported verbatim: ① fine-grained scoring granularity (20-letter scale); ② expectation over the full logprob distribution of score tokens; ③ reliability via repeated evaluations and criteria decomposition. This plugin ports the scoring extraction, pairwise prompts, pivot tournament, progress tracking, and token accounting, adapted into a Cordis tool plugin for DSH.

Install

dsh plugin --profile web add dsh-llm-as-a-verifier

Requires dsh ≥ 0.1.0-rc.6 and Node ≥ 18. Restart dsh web (or wait for HMR).

Configure the verifier backend

The verifier model must be an OpenAI-compatible service returning token-level logprobs: DeepSeek's hosted API, a local vLLM/SGLang server, OpenAI, etc.

In your profile config (~/.dsh/profiles/<name>/cordis.patch.yml or ~/.dsh/cordis.patch.yml):

- id: llm-verifier
  config:
    baseUrl: https://api.deepseek.com   # or vLLM: http://localhost:8000/v1
    apiKey: '${DEEPSEEK_API_KEY}'       # environment variables preferred
    model: deepseek-v4-flash            # omitted: DeepSeek defaults to deepseek-v4-flash, others auto-probe /models
    maxConcurrency: 8

Credential resolution order (upstream parity): plugin config → OPENAI_BASE_URL + OPENAI_API_KEYDEEPSEEK_API_KEY (implies the DeepSeek endpoint with thinking enabled). With no credentials configured, tool registration still works and calls fail with MissingAPIKeyError only when executed.

export DEEPSEEK_API_KEY=sk-...   # the simplest setup

Usage

Once installed, just ask the agent in the conversation:

I wrote three candidate implementations. Use verify_select with
"correctness" and "performance" criteria to pick the best one, then use
verify_track to check whether my earlier fix steps made progress.

Configuration reference

ConfigDefaultDescription
modelDeepSeek: deepseek-v4-flash; else auto-probedVerifier model name
baseUrlinferred from credentialsOpenAI-compatible endpoint
apiKeyinferred from environmentPrefer environment variables
timeoutMs60000Per-request timeout (ms)
maxConcurrency8Max in-flight verifier calls
deepseekinferred from baseUrlForce the DeepSeek call path (thinking enabled)
prefilltruePrefill the score tags on non-DeepSeek servers (more reliable letter distribution on vLLM/SGLang)
compare / select / tracktrueRegister the corresponding tool

Tool arguments (nEvaluations, pivots, seed, groundTruthNote, ...) mirror the upstream llm_verifier Python package; see the [user guide](docs/USER-GUIDE.md) and [SOP](docs/SOP.md).

Library use

import { Verifier } from 'dsh-llm-as-a-verifier'

const verifier = new Verifier({ baseUrl: 'http://localhost:8000/v1' })
const { scoreA, scoreB } = await verifier.compare(problem, a, b, { Correctness: '...' })
const result = await verifier.select(problem, candidates, { Correctness: '...' }, { pivots: 2 })
const curve = await verifier.track(problem, steps, { checkpoints: [1, 3] })

Development

npm ci
npm run check   # typecheck + vitest (76 cases incl. end-to-end against a local mock logprobs server)
npm run build

License & attribution

MIT. The score expectation, pairwise prompts, Probabilistic Pivot Tournament, progress tracking and logprob extraction logic are ported from llm-as-a-verifier/llm-as-a-verifier (MIT); full attribution in [LICENSE](LICENSE).