Back to home@Kev-ZJY

dsh-exa-search

dsh-exa-search:一个独立的 DeepSeek Harness插件,通过 Exa 提供更详细的网页搜索能力。

Stars
0
Language
TypeScript
Created
Aug 20, 2026
Updated
Aug 21, 2026
GitHub repo

Introduction

dsh-exa-search

dsh-exa-search 是一个独立的 DeepSeek Harness(DSH)插件,通过 Exa 提供更详细的网页搜索能力。

插件注册 exa_search 工具,适合以下场景:

  • 需要深入研究、技术调研或学术资料发现;
  • 需要一次检索更多来源并保留标题、链接、作者、日期和摘要;
  • 供应商模型不支持 Anthropic 协议,但能够使用 DSH 的工具调用能力;
  • DSH 自带的 web_search 结果不够详细,需要更强的 Exa 搜索类型。

它与 DSH 自带的 web_search 并存:web_search 适合快速查找,exa_search 适合更深入的检索。插件不绑定特定模型或 GPU 运行时。

功能

  • 使用 Exa /search API,支持 autofastinstantdeep-litedeepdeep-reasoning
  • 支持模型传入 querynumResultstype
  • 对查询、结果数量、响应体大小和模型可见输出设置上限;
  • 支持请求取消和超时;
  • API 密钥不会写入请求日志,配置项会标记为敏感信息;
  • 返回稳定的错误代码,便于日志分析和上层处理。

安装

从 npm 安装

dsh plugin --profile web add dsh-exa-search

从 GitHub 安装

dsh plugin --profile web add github:Kev-ZJY/dsh-exa-search

从 GitHub 安装时,DSH 会安装依赖并执行插件的 prepare 构建脚本,生成运行所需的 lib 目录。若包管理器提示是否允许运行构建脚本,请确认来源可信后再允许。

也可以先构建并打包:

npm install
npm run build
npm pack
dsh plugin --profile web add ./dsh-exa-search-0.1.0.tgz

配置 API 密钥

推荐使用环境变量:

export EXA_API_KEY="你的 Exa API 密钥"

也可以在 DSH 插件配置中填写 apiKey。插件配置优先级高于环境变量;密钥为空时才会回退到 EXA_API_KEY。请勿把真实密钥提交到仓库、配置补丁或日志中。

配置项

配置可以通过 DSH 设置界面或 bundle patch 覆盖。修改配置后需要重启对应的 DSH profile,确保工具描述中的默认值和限制同步更新。

配置项默认值说明
apiKeyExa API 密钥;为空时读取 EXA_API_KEY
apiBaseUrlhttps://api.exa.aiExa API 地址,仅支持 HTTP/HTTPS
timeoutMs30000单次请求超时,范围为 1–120000 毫秒
defaultTypeauto默认搜索类型
defaultNumResults5未指定时的结果数量
maxNumResults25单次最多请求的结果数量
maxOutputChars40000返回给模型的文本上限
maxResponseChars1000000Exa 响应体大小上限

工具参数

模型可调用:

{
  "query": "DeepSeek Harness plugin development requirements",
  "numResults": 8,
  "type": "deep"
}

query 不能为空;numResults 必须是整数,且不能超过 maxNumResults。工具结果包含 queryresultCountreturnedCounttruncated 和面向模型的 text 字段。

错误代码

插件会使用以下稳定错误代码:

EXA_CONFIG_ERROREXA_API_KEY_MISSINGEXA_INVALID_ARGUMENTEXA_ABORTEDEXA_TIMEOUTEXA_REQUEST_ERROREXA_HTTP_ERROREXA_RESPONSE_TOO_LARGEEXA_INVALID_RESPONSE

本地开发

环境要求:Node.js 20 或更高版本。

npm install
npm run typecheck
npm test
npm run build
npm pack --dry-run

测试使用模拟的 Exa 响应,不需要真实 API 密钥。

相关链接

许可证

MIT