dsh-web-search-toggle
按会话切换网页搜索,要求 Agent 回答前先搜索网页。
seerableofficial
@seerableofficial
⬇ 2
★ 1
main
安装
dsh plugin --profile web add github:seerableofficial/dsh-web-search-toggle
需要可复现安装时,可在仓库后追加 #commit 固定提交。
按会话切换网页搜索,要求 Agent 回答前先搜索网页。
该插件未提供要点说明,请参考仓库 README。
dshdsh-plugin
- 安装并启动 DeepSeek Harness:
npx @deepseek-ai/dsh web - 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
- 用 dsh plugins list 确认已安装,必要时重启 Harness 生效
插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。
| 代码仓库 | github.com/seerableofficial/dsh-web-search-toggle |
| 许可证 | MIT |
| 主要语言 | main |
| 下载量 | 2 |
| GitHub 星标 | 1 |
| 最近推送 | 2026-08-22 |
| 收录日期 | 2026-09-19 |
| 分类 | 工具与能力 |
事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。
以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。
# dsh-web-search-toggle
A [DeepSeek Harness](https://github.com/deepseek-ai/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
call `web_search` before 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`) with `websearch.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 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.
## 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
any `web_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:
```bash
# 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):
```bash
cd
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:
```bash
dsh --profile web restart # or your normal restart path
```
## Usage
1. Open a conversation in the DSH web UI.
2. Click the **Web Search** pill in the composer tool row to toggle it on.
3. Ask a question — the agent calls `web_search` first and cites sources.
4. 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
[MIT](./LICENSE)
数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。