dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
中文说明: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.
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).
| Request #1 (bootstrap) | Request #2+ (promoted) | |
|---|---|---|
| Tools | bash + str_replace_editor, byte-identical to the official Minimal preset |
full pi tool catalog |
| System prompt | You are a helpful software engineer assistant. (46 chars) |
persona remains; stripped pi context returns as a user message |
| Output budget | adapter 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.
| Upstream (dsh preset) | pi port |
|---|---|
| Minimal tool rows | pi.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 filter |
before_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 scan | phase derived from pi's durable session branch plus a dsh-anchored-state custom entry |
| Zero-Anchored Standard mode | zeroAnchor: true in PI_DSH_ANCHOR_CONFIG |
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)
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).
/dsh-anchor prints the phase; /dsh-anchor promote promotes now; /dsh-anchor on|off re-arms/disables the bootstrap for the session.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).npx tsc -p tsconfig.check.json
Adjust the three paths entries in tsconfig.check.json to the installed pi type-definition locations.
package.json — pi package manifestindex.ts — pi extension (single file, zero runtime deps)README.zh-CN.md — Chinese documentationtsconfig.check.json — type-check configLICENSE — MIT, including upstream copyright noticesNOTICE — upstream derivation noticeMIT. index.ts is a port of the MIT-licensed upstream preset; original copyright notices are retained.
This project is a pi port of xiaobright/dsh-anchored-standard. The upstream README and methodology are the basis for this port:
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。