deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
A DeepSeek Harness (DSH) plugin that adds a "Web Search" toggle button to the chat composer tool row. When it is turned on, the agent is instructed that it must search the web before answering — mirroring the "Web Search" toggle in the DeepSeek Web Chat UI. The toggle is per-session (per conversation), like DeepSeek's own per-conversation toggle.
web_search before answering, on every turn of that session.dsh.bundle.patch + dsh.client), so it
installs like any other DSH web-profile plugin.lib/client.js): registers the toggle into the composer's
tool row (conversation.input.left, the seat beside the resident access-mode
/ plan / attach chrome). On toggle it calls the host through the
client↔host RPC channel.index.js):/dsh-web-search) with websearch.get-state /
websearch.set-state, storing the flag per session and persisting it to
~/.dsh/dsh-web-search-toggle.json.dsh-web-search:force) whose text is
evaluated on every prompt assembly. When the current session's flag is ON,
it injects a mandatory "you MUST call web_search first" directive into the
system prompt; when OFF it renders empty (empty sections disappear).The web_search tool itself is registered by DSH's own dsh-tool-web package
(via the auto-selected DeepSeek search-provider seam); this plugin only forces
its use.
DSH has no primitive for "the model MUST call tool X on every turn." So the enforcement is a strong, always-present system-prompt instruction — the authoritative, reliable way to steer the model in this harness. The model follows it, but compliance is probabilistic rather than guaranteed (as in the DeepSeek web chat UI itself).
dsh --profile web).web_search-providing provider). The plugin forces the tool; it does not
install one.The plugin is published to npm. From the DSH web profile:
# via the dsh plugin command (recommended — reconciles the bundle list)
dsh plugin --profile web add dsh-web-search-toggle
or with pnpm directly (skips bundle-list reconcile):
cd <your-profile-dir>
npx pnpm add dsh-web-search-toggle
# then add "dsh-web-search-toggle" to dsh.profile.bundles in package.json
Then restart DSH so the bundle patch composes at boot:
dsh --profile web restart # or your normal restart path
web_search first and cites sources.The on/off state is remembered per session.
| Path | Purpose |
|---|---|
package.json |
Package + dsh.bundle.patch + dsh.client declaration |
index.js |
Host plugin: RPC channel + system-prompt force section |
lib/client.js |
Client plugin: composer "Web Search" toggle |
cordis.patch.yml |
Bundle patch mounting the host half |
LICENSE |
MIT License |
README.md |
This file |
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。