Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dsh-minimal-anchored

中文说明

An experimental DeepSeek Harness preset. On the first request it shows the model the same two tools as DeepSeek's official Minimal preset, persistent bash and str_replace_editor, with the Minimal system prompt, a 1024-token output limit, and no injected workspace or skill context. Once the session makes its first tool call or writes its first reply, the full Standard tool catalog opens up.

This is a community project. It is not an official DeepSeek preset and is not affiliated with or endorsed by DeepSeek.

Why this exists

DeepSeek V4 Pro pays a lot of attention to which tools it can see in the API. Upstream also reported Project2 V4.1b scores on this endpoint: the official Minimal preset scored 99 and 96, while Standard and PTC scored 91 and 92, and the higher-scoring runs showed the we/let's reasoning style. This preset copies Minimal's first-request tool identity.

The upstream experiment xiaobright/dsh-anchored-standard bootstrapped the first request with pwsh/bash + read, a 1024-token output cap, and stripped injected context. Its issue #11 then ran controlled Windows tests and found that the tools shown on the first request matter most:

First-request tools Source n First line let me
persistent bash + str_replace_editor official Minimal preset 5 5/5 We need... 0.0
pwsh + read anchored-standard 8 8/8 The user wants / Let me... 2.0 to 2.6

This preset keeps that approach and changes only the first-request tool surface. It mounts the official Minimal persistent-shell and editor groups, so request #1 sees bash + str_replace_editor. The 1024-token cap and the first-request context filter stay. After promotion the session gets the full Standard catalog plus those two tools.

How it works

  1. Keep the Minimal system prompt: You are a helpful software engineer assistant.
  2. On the first model request, expose only the official Minimal tool schemas: persistent bash and str_replace_editor.
  3. Strip auto-injected context on request #1: the AGENTS.md/CLAUDE.md workspace digest and the available-skills reminder that true Minimal never mounts (suppressedContextSources). Skill gestures the user sends themselves are not filtered, and both injections come back from request #2 on.
  4. Cap request #1 at bootstrapMaxTokens (default 1024), then release the cap after promotion.
  5. After the first durable tool/call or the first assistant/message, expose the full Standard catalog. Request #1 always sees the bootstrap catalog and request #2 always sees the full one.
  6. Derive the phase from durable session events, so resume and reload keep it.

Results

Local tests on Windows 11 with opencode-go, deepseek-v4-pro, and reasoningEffort=max, 2026-08-15. Counts match upstream: completed reasoning text, case-insensitive, whole words.

Preset Prompt language First-request tools maxTokens we let's let me
dsh-anchored-standard (real session) Chinese pwsh, read 1024 0 0 5
dsh-anchored-standard (control) English pwsh, read 1024 3 2 0
dsh-minimal-anchored #1 English bash, str_replace_editor 1024 2 1 0
dsh-minimal-anchored #2 English bash, str_replace_editor 1024 3 1 0
dsh-minimal-anchored Chinese bash, str_replace_editor 1024 0 0 1

One more Windows session, reported by a user but not counted line by line, used only we/let's reasoning and no let me.

A few limits worth knowing:

  • we, let's, and let me are trajectory fingerprints, not performance claims. Matching the wording does not promise a score or capability change.
  • English prompts reproduced reliably in the tests above. Chinese prompts do not produce a stable English we fingerprint; see upstream issues #6 and #11.
  • The model endpoint can drift over time. Treat these numbers as a snapshot, not a contract.

Compatibility

Developed and tested against:

  • DeepSeek Harness 0.1.0-rc.5
  • repository commit 47f9438
  • Node.js 24 on Windows

DeepSeek Harness is a developer preview and explicitly permits breaking changes. Check the upstream composition before using this preset with a newer release.

On Windows the bootstrap shell is persistent bash. Make sure a bash is available (Git for Windows or WSL, for example) before starting a session.

Install

Clone this repository and copy the whole preset directory into the user preset root under the id minimal-anchored.

PowerShell:

$dshHome = if ($env:DSH_HOME) { $env:DSH_HOME } else { Join-Path $env:USERPROFILE '.dsh' }
$target = Join-Path $dshHome '.agent-presets\minimal-anchored'
if (Test-Path -LiteralPath $target) { throw "Preset already exists: $target" }
New-Item -ItemType Directory -Force -Path (Split-Path -Parent $target) | Out-Null
Copy-Item -Recurse -LiteralPath '.\preset' -Destination $target

Linux/macOS:

dsh_home="${DSH_HOME:-$HOME/.dsh}"
mkdir -p "$dsh_home/.agent-presets"
test ! -e "$dsh_home/.agent-presets/minimal-anchored"
cp -R preset "$dsh_home/.agent-presets/minimal-anchored"

Restart DeepSeek Harness completely, start a blank session, and select Minimal Anchored Standard (experimental). Do not switch presets in a session that already has content.

Verify

Export the session JSONL and inspect request/header events:

  • the first header should contain only bash and str_replace_editor, with config.maxTokens: 1024 and the Minimal persona system prompt;
  • the first request's messages should contain no AGENTS.md/CLAUDE.md digest and no available-skills reminder;
  • after the first tool call or first assistant reply, the next changed header should contain the full Standard catalog (plus bash and str_replace_editor);
  • later requests keep that full catalog and restore the standard context injections.

Run the local zero-dependency tests:

npm test

Behavior worth knowing

  • With the default promoteOn: either, the session promotes after its first durable tool/call or its first assistant/message, whichever comes first. Set promoteOn: tool-call to require a tool call.
  • A failed tool execution still promotes the session because the durable tool/call already exists.
  • If a bootstrap tool is missing, the preset degrades to the full catalog with a one-time warning instead of failing requests. Invalid promoteOn values fail when the preset mounts.
  • While a session is unpromoted, the pre-step filter strips messages whose source.kind is listed in suppressedContextSources (default: agent-instructions and skill-catalog). Set the list to [] to turn the context filter off. If the filter itself fails, it keeps every message.
  • The tool catalog changes once, so request-prefix cache continuity changes once too, between the first and second model requests.
  • The preset has the same trust level as shell access. Read its files before installing it.
  • The plugin makes no network requests and adds no telemetry.

Attribution

This project is derived from xiaobright/dsh-anchored-standard at commit 6472c1c, with the first-round budget-cap listener fix synced from upstream PR #13 (commit c774e60). That project is based on the DeepSeek Harness Standard preset. The Minimal persistent-shell and editor groups are copied from the official DeepSeek Harness Minimal preset. Copyright and license details are in LICENSE and NOTICE.

License

MIT. See LICENSE and NOTICE.

About

DeepSeek Harness preset: first round uses the official Minimal tools, then unlocks full Standard. 复现 Project2 评测中更高分的 We/Let's 思维链(Minimal 99/96 vs Standard 91/92),改善 Windows 上 DeepSeek V4 Pro 的 Let me 现象。

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages