dsh-web-search-ddg:DeepSeek Harness 的无密钥 DuckDuckGo 搜索

前言

DeepSeek Harness (DSH) 的核心设计理念是本地优先。编码智能体需要的文件、Shell、Git、规划等能力都是本地的,且成本为零。联网搜索是唯一需要突破的“墙”:现有的 DSH 内置搜索或第三方提供商通常要求付费账户、API 密钥或消耗模型令牌。dsh-web-search-ddg 插件解决了这个问题,它通过抓取 DuckDuckGo 的 Lite 结果页面,为 Harness 提供无需任何凭证、无需消耗模型令牌的搜索能力。

插件简介

dsh-web-search-ddg 是 DeepSeek Harness 的联网工具类插件,由tatselkrik维护,采用 MIT 许可证。

它通过 Harness 的公开 ctx.web 提供者接口注册,直接将 DuckDuckGo 的搜索结果注入到智能体的工作流中。

核心功能

  • 零凭证:无需存储任何 API 密钥或访问凭证 vault。
  • 零模型令牌:搜索过程不触发辅助模型调用,不消耗 token。
  • 严格模式:仅接受 DuckDuckGo 结果标记的锚点链接;解析失败时抛出错误而非静默返回空结果。
  • 重定向感知解析:自动解析 /l/?uddg= 等重定向包装,丢弃内部链接,并去重 URL。
  • 实体安全文本:正确处理 HTML 实体编码(如 &),避免双重解码。
  • GET 和 POST:支持 GET(默认)和 POST 两种查询方式,POST 可规避部分反爬检查。
  • 摘要配对正确:确保每个搜索摘要与其对应的锚点链接正确关联。

安装与启用

推荐将插件安装到指定的 Profile 中。

  1. 安装插件:
dsh plugin --profile my-profile add github:tatselkrik/dsh-web-search-ddg
  1. 配置 Provider。在 Profile 目录下的 cordis.patch.yml 中添加:
- id: web
  name: '@deepseek-ai/dsh-web'
  config:
    searchProvider: duckduckgo
  1. 启动 Harness 并使用 Web 工具:
dsh --profile my-profile web

配置项

插件提供以下可配置参数,可通过 cordis.patch.yml 覆盖:

Key 默认值 含义
baseURL https://lite.duckduckgo.com/lite/ DuckDuckGo Lite 结果页地址
limit 10 单次搜索的最大来源数量
method get 请求方式(get 或 post)
timeoutMs 15000 单次请求的超时时间(毫秒)

配置示例:

- id: web-search-ddg
  name: dsh-web-search-ddg
  config:
    limit: 5
    method: post

注意事项与限制

  • 非官方端点:插件使用非官方抓取端点。高频请求可能触发 403 错误或 CAPTCHA 验证。
  • 无发布日期:DuckDuckGo Lite 页面不返回发布日期信息。
  • 索引深度:结果质量与 DuckDuckGo 的索引一致,对于小众技术查询,索引深度略低于 Google。
  • 隐私:每次查询的查询词对 DuckDuckGo Inc. 是可见的。
  • 安全性:无密钥、无凭证访问、无安装时代码执行。依赖项范围严格限定,不使用通配符。

适用场景

适合需要在 DSH 中进行免费、本地化联网搜索的开发者或用户。特别是那些希望避免 API 密钥管理、不想消耗模型 token 或希望完全审计搜索逻辑的场景。

总结

dsh-web-search-ddg 让 DeepSeek Harness 保持了“本地优先、无密钥”的纯净生态。它通过简单的 HTTP 抓取和正则解析,填补了免费软件在联网搜索能力上的空白。

插件目录
GitHub 仓库

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

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

小夜