前言¶
DeepSeek Harness (DSH) 的设计理念是“一切皆插件”。默认的 deepseek-official 提供程序通常适合通用场景,但在需要接入特定网关、代理或使用支持原生联网的特定模型时,手动注册一个自定义提供程序是必要的操作。dsh-websearch-custom 旨在解决这一问题,允许用户通过配置 OpenAI Responses 兼容的端点来接管 web 频道的联网能力。
插件介绍¶
dsh-websearch-custom 是由 Jyjays 维护的一个开源插件(MIT 许可证),属于 DSH 的“联网工具”分类。它注册了一个可配置的 ctx.web 提供程序,调用任意 OpenAI Responses 兼容的 API 端点,并内置了一个浏览器设置界面。插件本身不包含厂商特定的默认配置,所有关键参数(端点、模型、密钥引用)均由用户决定。
核心功能¶
- 注册自定义提供程序:在 DSH 环境中注册一个名为
custom-openai的提供程序,供web频道选择。 - OpenAI Responses 兼容:调用支持
POST /responses接口的端点,利用原生 web search 工具。 - 运行时配置界面:提供浏览器设置页面,无需修改配置文件即可动态调整端点、模型和密钥引用。
- 行为约束:
- 不抓取网页:依赖端点的原生搜索能力,而非插件自身的爬虫。
- 不调用普通聊天补全:严格使用 Responses API 格式。
- 不伪造引用:只有当响应包含原生 URL 引用时才视为有效,否则返回
WEB_PROVIDER_ERROR。
安装与启用¶
安装插件需要使用 DSH 插件管理命令,并将插件路径指向本地检出的代码或 Git 仓库。
dsh plugin --profile web add /absolute/path/to/dsh-websearch-custom
安装完成后,必须重启 DSH Host 才能使插件生效。
配置方法¶
安装完成后,插件会注册 custom-openai 提供程序。你可以通过两种方式配置:
1. 使用浏览器设置界面¶
打开 DSH 的设置页面,进入 WebSearch Custom 选项。这里可以编辑与配置文件相同的参数,保存后立即生效,无需重启。
主要配置项:
* Provider ID:稳定 ID,用于 web 频道选择(默认 custom-openai)。
* API Key:可选,存储为设置密钥,不会回显。
* API Key Env:推荐使用。环境变量名或 DSH 凭证引用,每次搜索时解析。
* Base URL:OpenAI Responses 兼容端点的基础地址(不带 /responses),必填。
* Model:支持原生联网的模型名称,必填。
* Search tool type:web_search 或 web_search_preview,根据网关文档填写。
* Search context size:low / medium / high。
* Max output tokens:输出 token 上限。
* Allowed / Blocked domains:逗号分隔的域名过滤列表。
2. 直接修改配置文件¶
在 DSH 的配置层(如 overlay 或 composition)中,手动指定 web 频道的 searchProvider 为 custom-openai。
- id: web
name: '@deepseek-ai/dsh-web'
config:
searchProvider: custom-openai
为了安全起见,应避免在配置文件中直接写入 apiKey。推荐使用 apiKeyEnv,插件会优先通过 DSH 凭证解析,其次读取环境变量。
完整的配置示例:
- id: web-search-custom
name: dsh-websearch-custom
config:
providerId: custom-openai
apiKeyEnv: MY_PROVIDER_API_KEY
baseURL: https://api.example.com/v1
model: my-search-enabled-model
searchToolType: web_search
searchContextSize: low
maxOutputTokens: 1024
allowedDomains:
- arxiv.org
- openreview.net
注意事项¶
- 不替换默认提供程序:此插件仅注册
custom-openai,不会覆盖 DSH 默认的deepseek-official提供程序。你需要通过配置明确将web频道的searchProvider指向它。 - 端点兼容性:必须确保目标端点支持
POST /responses并返回 URL 引用。如果端点仅支持普通聊天补全或没有原生搜索能力,插件会报错。 - 响应验证:由于插件不生成伪造引用,如果模型返回的文本中没有包含 URL 引用,提供程序会返回
WEB_PROVIDER_ERROR。 - 开发环境:如果从 Git 安装,确保
prepare脚本已执行以构建dist/文件夹;在pnpm-workspace.yaml中可能需要添加dsh-websearch-custom: true以允许构建。
结语¶
dsh-websearch-custom 为 DSH 用户提供了接入自定义 OpenAI Responses 网关的能力。它通过严格的“无抓取、无补全、无伪造引用”策略,确保了联网行为的可控性与准确性。若你需要使用特定的代理服务或私有化网关,这是一个可以直接落地的解决方案。