DSH Web Search 插件

在 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 工具,否则同名工具会发生冲突或导致启动报错。这需要在两个层级进行配置:

  1. Host Profile 层配置:编辑 C:\Users\<user>\.dsh\profiles\web\cordis.patch.yml,添加或修改以下内容:
    - id: tool-web
      disabled: true
  1. 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)。

总结

通过以上步骤,开发者可以在 DSH 中获得一个可控、持久且受限制的联网工具链。更多细节可参考项目目录或源码仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜