dsh-plugin-deepseek-search:在 DSH 中接入 DeepSeek 官方 Search / Fetch API

前言

在 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):

  1. 打开 插件 页;
  2. 在安装输入框填入插件目录的绝对路径;
  3. 安装后默认启用;纯 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 且插件启用的会话中,模型可按任务自行调用工具,例如:

  1. 用 deepseek_search 查询:query 为 DeepSeek site:github.com,必要时设 count 或 need_content: true 获取正文。
  2. 对某条结果的 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,配置凭据与超时后即可在会话中使用,且不干扰内置联网设置。

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

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

小夜