插件目录 / Knowledge / dsh-web-search-toggle
dsh-web-search-toggle
已验证 · 实测可装 SeerableOfficial
功能简介
DSH plugin: a per-session "Web Search" toggle that forces the agent to search the web before answering.
可用 — 实测通过,早期项目
DSH plugin: a per-session "Web Search" toggle that forces the agent to search the web before answering. 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
dsh-web-search-toggle
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.
Features
- Adds a compact, pill-shaped "Web Search" button in the composer tool row.
Inactive = neutral outline; active = DeepSeek brand blue with a small green
"on" dot. - When ON, injects a mandatory system-prompt directive telling the agent to
callweb_searchbefore answering, on every turn of that session. - Per-session state, persisted across reloads and host restarts.
- Follows DSH's plugin conventions (
dsh.bundle.patch+dsh.client), so it
installs like any other DSH web-profile plugin.
How it works
- Client half (
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. - Host half (
index.js):- Serves an RPC channel (
/dsh-web-search) withwebsearch.get-state/websearch.set-state, storing the flag per session and persisting it to~/.dsh/dsh-web-search-toggle.json. - Registers a system-prompt section (
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 callweb_searchfirst" directive into the
system prompt; when OFF it renders empty (empty sections disappear).
- Serves an RPC channel (
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.
Why "force" is a directive, not a hard block
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).
Requirements
- DeepSeek Harness with the web profile (
dsh --profile web). - A configured web search provider (the built-in DeepSeek search provider, or
anyweb_search-providing provider). The plugin forces the tool; it does not
install one.
Installation
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
Usage
- Open a conversation in the DSH web UI.
- Click the Web Search pill in the composer tool row to toggle it on.
- Ask a question — the agent calls
web_searchfirst and cites sources. - Toggle it off to restore normal behavior.
The on/off state is remembered per session.
Files
| 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 |
License
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-web-search-toggle」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:SeerableOfficial/dsh-web-search-toggle Headless(CLI)profile:
dsh plugin --profile headless add github:SeerableOfficial/dsh-web-search-toggle 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。