Back to home

kxh4892636

pi-deepseek-anchor

pi extension: DeepSeek V4 Pro Minimal-anchored bootstrap, then full Standard tools (port of dsh-anchored-standard)

Stars
4
Language
TypeScript
Created
Aug 15, 2026
Updated
Aug 15, 2026

Introduction

pi-deepseek-anchor

中文说明:README.zh-CN.md

pi-deepseek-anchor enables the full-powered DeepSeek V4 Pro to run at full strength in pi, with significantly improved results (Project2: 91–92 → 98–99).

Cause DeepSeek V4 Pro selects its trajectory based on the API-visible tool catalog. With the default full catalog, the first response typically starts with "Let me..." and follows the Standard trajectory (Project2: 91–92). With the official Minimal pair (bash + str_replace_editor), the first response starts with "We need..." and produces zero let me (Project2: 98–99). Staying on Minimal permanently loses the full toolset. This extension applies Minimal only to request #1 and restores the full catalog from request #2, so both are retained in one session.

Install

pi install npm:pi-deepseek-anchor

Or from GitHub:

pi install git:github.com/kxh4892636/pi-deepseek-anchor@v1.0.0

Then /reload or restart pi. Works with the full-powered DeepSeek V4 Pro official release.

Manual fallback: copy index.ts to ~/.pi/agent/extensions/anchored-standard/index.ts (global) or <project>/.pi/extensions/anchored-standard/index.ts (project-local).

Behavior

Request #1 (bootstrap)Request #2+ (promoted)
Toolsbash + str_replace_editor, byte-identical to the official Minimal presetfull pi tool catalog
System promptYou are a helpful software engineer assistant. (46 chars)persona remains; stripped pi context returns as a user message
Output budgetadapter default (no cap; bootstrapMaxTokens is opt-in)adapter default

Promotion fires on the first durable signal: the first assistant message or the first tool call, whichever comes first (promoteOn: "either" default). State is durable, so /resume and reload preserve the phase.

pi adaptation

Upstream (dsh preset)pi port
Minimal tool rowspi.registerTool overrides: bash uses the byte-identical Minimal description and delegates to pi's built-in createBashTool; str_replace_editor implements the official schema and upstream filesystem semantics (view / create / str_replace / insert, 16000-char truncation, exact error messages)
tool-bootstrap pre-step filterbefore_agent_start + before_provider_request: request #1 is Minimal-exact; late appends (e.g. pi-memory) are dropped on request #1 and moved to a user message after promotion
Persona row (complete: true)minimalPersona + personaScope: "always" (default): persona remains the system prompt for the whole session; stripped context is re-delivered as a user message from request #2
Durable event scanphase derived from pi's durable session branch plus a dsh-anchored-state custom entry
Zero-Anchored Standard modezeroAnchor: true in PI_DSH_ANCHOR_CONFIG

Verification

End-to-end with official deepseek-v4-pro, reasoningEffort=max, --mode rpc:

REQ#1: tools=[bash, str_replace_editor]
       system='You are a helpful software engineer assistant.' (46 chars)
       first thinking: "We need answer briefly about repository. Need inspect. Use tools."
REQ#2: full tool catalog + normal pi context (delivered as a user message)

Configuration

Edit DEFAULT_CONFIG in index.ts, or override at runtime:

{"promoteOn": "tool-call", "bootstrapMaxTokens": 1024, "personaScope": "always"}

Keys: bootstrapTools (default ["bash","str_replace_editor"]), promoteOn (either | tool-call | assistant-message), bootstrapMaxTokens (optional; unset = no cap), minimalPersona (default true), personaScope (always | bootstrap, default always), personaText, stripContext, zeroAnchor (default false), zeroAnchorText, editorMaxOutputChars (default 16000).

Verify & debug

  • /dsh-anchor prints the phase; /dsh-anchor promote promotes now; /dsh-anchor on|off re-arms/disables the bootstrap for the session.
  • The TUI footer shows bootstrap: bash/str_replace_editor until promotion.
  • PI_DSH_ANCHOR_DEBUG=1 dumps assembled payloads to PI_DSH_ANCHOR_DEBUG_FILE (default /tmp/dsh-anchor-debug.jsonl).

Type check

npx tsc -p tsconfig.check.json

Adjust the three paths entries in tsconfig.check.json to the installed pi type-definition locations.

Files

  • package.json — pi package manifest
  • index.ts — pi extension (single file, zero runtime deps)
  • README.zh-CN.md — Chinese documentation
  • tsconfig.check.json — type-check config
  • LICENSE — MIT, including upstream copyright notices
  • NOTICE — upstream derivation notice

License

MIT. index.ts is a port of the MIT-licensed upstream preset; original copyright notices are retained.

Upstream

This project is a pi port of xiaobright/dsh-anchored-standard. The upstream README and methodology are the basis for this port: