dsh-web-search-exa:为 DSH 接入 Exa 联网搜索

前言

在 DeepSeek Harness(DSH)里做需要实时信息的智能体时,模型侧通常只有 web_search 和 web_fetch 这类工具;具体搜哪家、密钥怎么进进程,取决于你在 @deepseek-ai/dsh-web 这条 seam 上挂的 search provider。默认或自建方案往往要自己接 HTTP、对齐返回格式。下面介绍社区插件 dsh-web-search-exa(维护者 jakehemmerle):把 Exa 注册为 provider exa,让 web_search 走 Exa 的 /search API,并把结果以 sources 形式返回;web_fetch 行为不变。插件本身没有独立 UI,在 dsh web、dsh-TUI 与 headless 下用法一致。

这是什么

dsh-web-search-exa 是一个 DSH bundle 插件,在 @deepseek-ai/dsh-web 上注册 Exa 搜索后端。安装后 bundle 内的 cordis.patch.yml 会把 web seam 的 searchProvider 固定为 exa,并加入 web-search-exa 配置行。分类上属于联网工具;社区目录见 SkillHub 插件页,源码与说明在 GitHub:jakehemmerle/dsh-web-search-exa。

核心功能

  1. 统一 search provider:在 Cordis patch 里声明 provider 名 exa,DSH 的 web_search 工具把查询发给 Exa API,结果作为 sources 供模型引用。
  2. 多运行面一致:同一套 provider 在 dsh web、dsh-TUI、headless 中生效,无需为每种入口单独写集成。
  3. 可配置密钥与请求参数:支持从环境变量、密钥文件或(不推荐)字面量读取 API Key,并可调整 Exa 的 baseURL、type、高亮长度与超时等(见下文配置表)。
  4. 版本与 DSH 对齐:当前发布 0.3.0-rc.1 在 DSH 0.2.1-rc.2 上做过 qualification;peer 依赖为精确版本,其他 DSH 版本需 dsh plugin allow-version 或等待适配的新 release。

安装与启用

按你实际使用的 profile(例如 web、headless)安装 bundle,并在启动 dsh 的环境中提供 Exa API Key:

dsh plugin --profile web add github:jakehemmerle/dsh-web-search-exa#v0.3.0-rc.1
export EXA_API_KEY=…   # in the environment that launches dsh

上面第二条是在启动 dsh 的同一环境里导出密钥变量;变量名默认对应配置项 apiKeyEnv(见下表)。安装完成后,因 patch 会改写 web seam 的 searchProvider,需要重启 dsh web 后新 provider 才会生效。

若本地 DSH 版本不是 0.2.1-rc.2,安装前请查阅 README 中的版本说明,必要时使用 dsh plugin allow-version 或选用匹配的插件版本。

配置说明

可在你自己 profile 的 cordis.patch.yml 里覆盖 web-search-exa 这一行。patch 会替换整行 config,因此保留的字段也要重新写全。

字段 默认值 含义
apiKeyEnv EXA_API_KEY 密钥环境变量名:先在 dsh credential store 查找,再在(若设置了 apiKeyFile 之后)环境中查找
apiKeyFile (未设置) 存放密钥的文件(原始内容或 dotenv);每次搜索都会读,轮换密钥无需重启;优先级高于环境变量
apiKey (未设置) 字面量密钥,优先于其他来源(不推荐)
baseURL https://api.exa.ai Exa API 根地址
type auto Exa 搜索类型
highlightChars 600 每条结果的高亮字符长度
timeoutMs 30000 请求超时(毫秒)

示例:用密钥文件而不是环境变量:

- id: web-search-exa
  config:
    apiKeyFile: /run/secrets/exa

典型用法

安装、配置密钥并重启 dsh web 之后,无需额外调用插件 API:在对话或 agent 流程里照常使用 Harness 暴露的 web_search 工具即可,查询会经 Exa /search 返回。web_fetch 仍按 DSH 原有逻辑工作,本插件不修改 fetch 路径。

开发侧若改插件本身,仓库 README 提到可用 nix flake check 跑快速测试套件,用 nix run .#e2e 在 mock Exa 上对 dsh web(Playwright)、dsh-TUI 与 headless 做端到端验证;细节见仓库内 SPEC.md、TESTING.md、RELEASING.md。

适用场景与注意

适合:已在用或计划用 Exa 作联网检索、希望在 DSH 全入口统一 web_search 行为的开发者。

注意:

  • 插件以当前 dsh 进程的权限与网络环境运行;安装前请自行审阅 源码与 MIT 许可证。
  • API Key 会用于对外请求 Exa;生产环境更推荐 apiKeyFile 或 credential store,避免在 patch 里写死 apiKey。
  • SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系;插件星标与版本以 GitHub 发布为准。

结尾

dsh-web-search-exa 把 Exa 接进 DSH 的 web seam,用一条官方安装命令和可选的 cordis.patch.yml 覆盖即可完成联网搜索后端切换。需要概览与分类信息时可打开 SkillHub 目录页;安装命令、配置字段与开发说明以 GitHub 仓库 README 为准。

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

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

小夜