前言¶
在 DeepSeek Harness(DSH)里做需要实时网页信息的智能体时,常见做法是使用内置的 web_search / web_fetch,或自行封装第三方搜索与抓取。若你希望模型直接调用 DeepSeek 自研搜索引擎 与 官方网页抓取接口,并把结果以独立工具名暴露给会话,而不改动 DSH 内置的 ctx.web 配置,就需要一个专门对接 POST https://api.deepseek.com/v1/tools/search 与 POST https://api.deepseek.com/v1/tools/fetch 的插件。
下面介绍社区插件 dsh-plugin-deepseek-search(维护者 lxyztmds),它把上述两个 API 注册为 deepseek_search 与 deepseek_fetch,与内置联网工具互不冲突。
这是什么¶
dsh-plugin-deepseek-search 是 DSH 的 Host 端插件(npm 包名 dsh-plugin-deepseek-search,当前资料中版本为 0.1.1,MIT 许可证)。简介为:Official DeepSeek Search / Fetch API tools for DeepSeek Harness (DSH)。
插件只读、无缓存、无遥测,不会写入工作区。鉴权默认通过 DSH 凭据服务解析 DEEPSEEK_API_KEY(可配置 apiKeyEnv);也可显式配置 apiKey 字面值,此时优先使用字面值。换 Key 无需重启进程。
接口说明见 DeepSeek 文档:https://api-docs.deepseek.com/zh-cn/guides/search/。
核心功能¶
安装后,模型在工具列表中会多出两个工具:
| 工具 | 底层接口 | 作用 |
|---|---|---|
deepseek_search |
POST https://api.deepseek.com/v1/tools/search |
检索网页,返回标题、URL、摘要、发布时间、权威性、排序分等;可选返回网页正文 |
deepseek_fetch |
POST https://api.deepseek.com/v1/tools/fetch |
抓取单个网页,返回标题与 Markdown 正文 |
与 DSH 内置 web_search / web_fetch 的关系:本插件使用独立工具名,不接管内置 provider,也不修改内置设置。
deepseek_search 主要参数:
query(必填):1–128 个 Unicode 字符,支持site:、-site:、引号精确短语、lang:、after:/before:等语法(原样传给搜索服务)。count(可选):1–50,未传时使用配置默认值。need_content(可选):是否同时返回网页正文(更大、更慢)。
deepseek_fetch 主要参数:
url(必填):绝对 http(s) URL,≤8192 字符,须带 host,不能携带用户名/密码。
HTTP 客户端侧支持超时、重试(408 / 429 / 5xx 与网络错误)、响应校验;错误会映射为带 [CODE] 前缀的文本(如 MISSING_CREDENTIAL、TIMEOUT),便于模型与日志排查。Web 端可通过 presentationMeta / presentResult 展示结果卡片。
安装与启用¶
DSH 插件以 profile 的 bundle 形式加载:profile 的 package.json 在 dsh.profile.bundles 中引入本包,cordis.patch.yml 将插件行插入加载树。
推荐:在 DSH 侧边栏 插件 → 发现 中搜索本插件;或在非 desktop profile 下使用命令行:
# GitHub 源码安装
dsh plugin --profile <profile-name> add github:lxyztmds/dsh-plugin-deepseek-search
# npm 安装(发布 npm 后可用)
dsh plugin --profile <profile-name> add dsh-plugin-deepseek-search
图形界面本地路径安装(即时生效,适合 Desktop):
- 打开 插件 页;
- 在安装输入框填入插件目录的绝对路径;
- 安装后默认启用;纯 Host 端插件在 HMR 模式下通常会在后续会话中出现在工具列表。
非 Electron 托管的 profile 也可用本地路径:
dsh plugin --profile <profile-name> add "file:C:\path\to\dsh-plugin-deepseek-search"
# 然后重启该 profile
注意:desktop profile 由 Electron 独占,独立 dsh CLI 会拒绝对其执行 add;Desktop 用户优先用图形界面或 README 中的手工 bundle 方式。资料要求 Node ^22.19.0 || >=24.0.0,DSH >=0.1.5-rc.1。
配置要点¶
可在 profile 的 cordis.patch.yml 中按插件 id deepseek-search 覆盖配置,例如:
- id: deepseek-search
config:
apiKeyEnv: DEEPSEEK_API_KEY
count: 5
needContent: false
timeoutMs: 60000
retries: 2
maxOutputChars: 60000
常用字段(完整表见仓库 README):
| 字段 | 默认值(schema) | 含义 |
|---|---|---|
apiKeyEnv |
DEEPSEEK_API_KEY |
凭据引用名,经 ctx.credentials 解析 |
count |
10 |
deepseek_search 未传 count 时的默认条数 |
needContent |
false |
未传 need_content 时的默认是否拉正文 |
timeoutMs |
60000 |
单次调用总预算(含重试) |
retries |
2 |
可重试错误的次数 |
maxOutputChars |
60000 |
返回给模型的最大字符数 |
sendOriginalQuestion |
true |
是否将本轮用户问题前 128 字符作为 ori_question 发送 |
API Key 解析顺序:apiKey 字面值 → ctx.credentials.resolve(apiKeyEnv)(如 ~/.dsh/.credentials.yaml 或 Web 模型页)→ 进程环境变量。三者皆无时,工具仍可见,执行时返回 MISSING_CREDENTIAL 及修复指引。
典型用法¶
在已配置 Key 且插件启用的会话中,模型可按任务自行调用工具,例如:
- 用
deepseek_search查询:query为DeepSeek site:github.com,必要时设count或need_content: true获取正文。 - 对某条结果的
url调用deepseek_fetch,得到 Markdown 正文供后续推理。
搜索语法示例(来自 README):
DeepSeek site:github.com OR site:huggingface.co
DeepSeek -site:example.com
DeepSeek "精确短语" lang:zh,en after:2025-01-01 before:2026-06-01
计费与限速以 DeepSeek 文档为准:Search / Fetch 按成功请求次数计费;账号侧 Search、Fetch 各自约 5 QPS。本插件为显式工具调用路径,请控制调用频率与 count。自 2026-11-01 00:00(北京时间) 起,在部分宿主环境中的服务端工具调用也将按次收费(详见 README「计费与限速」)。
适用场景与注意¶
适合:已在 DSH 中使用 DeepSeek API Key,希望用官方 Search / Fetch 做联网检索与单页抓取,且希望与内置 web_search / web_fetch 并存、由模型按工具名选择。
使用前请知悉:
- 插件以当前 DSH 进程的权限运行;
query、url会发往 DeepSeek API。安装前请阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的安全与合规要求。 - 页面正文视为外部不可信数据;插件不执行页面脚本。
baseURL非 https 时会明文传输 Key,仅应指向可信网关。 - 社区目录 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系,属于 DSH「一切皆插件」生态中的第三方条目(资料中 GitHub 星标为 1,分类:联网工具)。
结尾¶
dsh-plugin-deepseek-search 把 DeepSeek 官方 Search / Fetch 以 deepseek_search、deepseek_fetch 两个只读工具接入 DSH,配置凭据与超时后即可在会话中使用,且不干扰内置联网设置。