在 DeepSeek Harness (DSH) 中构建智能体时,联网能力是刚需。虽然官方提供了 tool-web,但在某些场景下,开发者需要更可控的搜索与抓取逻辑,或者需要替换默认实现。DSH Web Search 插件旨在解决这一问题,它持久化运行在宿主机端,支持 Bing 和 SearXNG 搜索,并能抓取特定 HTTP(S) 页面。
插件定位¶
DSH Web Search 是一个宿主机侧的 DSH 工具插件,由 gao-gao-zai 维护。它提供了 web_search 和 web_fetch 两个接口,用于执行网络搜索和网页抓取。该工具会将 HTML 转换为 Markdown,且不会下载或解释图片。输出大小经过限制,适合在生产环境中直接调用。
前置条件¶
使用前需满足以下条件:
1. 安装了 DeepSeek Harness 且启用了 web 配置文件。
2. 系统已安装 Node.js 22 或更高版本。
3. DSH 配置文件目录具有写入权限。
安装与启用¶
通过命令行安装到 web 配置文件:
dsh plugin --profile web add github:gao-gao-zai/dsh-tool-web-search
若需开发调试,可使用本地检出路径:
dsh plugin --profile web add link:E:\DeepSeekHarness\WebSearch
配置说明¶
安装后必须禁用官方 tool-web 工具,否则同名工具会发生冲突或导致启动报错。这需要在两个层级进行配置:
- Host Profile 层配置:编辑
C:\Users\<user>\.dsh\profiles\web\cordis.patch.yml,添加或修改以下内容:
- id: tool-web
disabled: true
- Agent Preset 层配置:复制 DSH 安装目录下的
standard预设到用户目录${DSH_HOME:-$HOME/.dsh}/.agent-presets/web-search/,并禁用:
- id: tool-web
name: '@deepseek-ai/dsh-tool-web'
disabled: true
同时在 `settings.yaml` 中将默认预设指向该目录:
agent-presets:
default: web-search
重启 DSH 后端(例如通过 Ctrl+C 停止旧进程再运行 dsh web)并创建新会话。验证新工具是否生效,可尝试:
web_fetch({"url":"https://example.com/"})
若返回 Fetched https://example.com/ (HTTP 200) 及 Markdown 内容,说明配置成功。
插件注册了 dsh-web-search 命名空间。在浏览器中打开 Settings → Web UI Plugins → 网页搜索与抓取(或 Plugins → Plugin configuration),可配置引擎(Bing/SearXNG)、最大结果数、超时时间及输出字符限制。SearXNG 的凭据需在 DSH 凭据 UI 中管理。
典型用法¶
启用后,Agent 可调用以下工具:
- 搜索:支持
query、limit和language参数。
web_search({"query": "DSH", "limit": 5, "language": "zh-CN"})
- 抓取:接收一个 HTTP(S)
url参数。
web_fetch({"url": "https://example.com/"})
限制与注意事项¶
插件对输出做了大小限制,以防止内存溢出:
* 搜索:最多 10 个结果,单个片段 200 字符,渲染输出上限 16K 字符。
* 抓取:渲染输出上限 200K 字符。
* 任何超过限制的网络响应都会在解析前被拒绝。
注意:该插件依赖 Node.js 22+,且搜索和抓取均以 DSH 进程的权限运行。建议在安装前检查源码与许可证(MIT)。