前言¶
给智能体做联网搜索,常见做法是再挂一个 MCP、再配一套 Skill,或者让模型去调一个全新的搜索工具。结果是:普通问答要先选工具,引用卡片和内置 web_search 对不上,密钥又散落在几处配置里。
DeepSeek Harness(以下简称 DSH)把能力拆成可装卸的插件。官方仓库把核心理念写成「一切皆插件」:模型、工具、会话、UI 都可以在配置层替换,不必改 Harness 源码。社区里有一份适配层,专门把 AnySearch 接到 Harness 已有的 web_search 上,同时补上能力发现、垂直搜索和有界批量搜索。这个插件叫 anysearch-dsh,收录在独立的社区插件目录 deepseek-harness-plugin.com 中。该目录与 DeepSeek / 幻方没有官方从属关系,不是官方应用商店。
本文按插件目录页、GitHub 仓库 README、package.json、中文使用指南和 DeepSeek Harness 官方仓库交叉核对后整理:它是什么、装哪条命令、四个工具怎么用,以及安装前要看清的权限与能力边界。
这是什么¶
anysearch-dsh 是 AnySearch 面向 DeepSeek Harness 的搜索插件。npm 包名是 @anysearch/anysearch-dsh,当前文档适用版本为 0.1.1,由 GitHub 组织 anysearch-team 维护,仓库地址为 anysearch-team/anysearch-dsh,许可证为 MIT。主要语言是 TypeScript。社区目录把它分在「界面增强」,收录日期为 2026-08-15。截至 2026-08-17,GitHub 仓库星标为 74。
它解决的问题可以概括成一句话:Agent 仍然调用 Harness 原生的 web_search,插件负责把请求发到 AnySearch,并把结果转成 Harness 能展示和引用的来源。按仓库说明,你不需要让模型学习一个新的普通搜索工具,也不需要单独配置 MCP Server。
随包提供的 profile 层会把 AnySearch 设为现有 ctx.web Provider,并挂载高级工具。默认配置里插件条目的 id 是 web-search-anysearch,web 配置里的 searchProvider 为 anysearch。
核心功能¶
当前 0.1.1 向模型暴露四个搜索入口:
| 使用场景 | Harness 工具 |
|---|---|
| 普通网页搜索 | web_search |
| 查看可用领域和标签 | anysearch_capabilities |
| 垂直或参数化搜索 | anysearch_search |
| 一次执行一至五个搜索 | anysearch_batch_search |
按 README 和使用指南,已核实的能力包括:
- 通过内置
web_search走 AnySearch,返回带标题、摘要和 URL 的实时来源,便于引用。 anysearch_capabilities读取实时目录,拿到可搜索领域、垂直分类和支持的参数;两级能力目录结果会向模型保留请求 ID。anysearch_search可使用tag、params、zone、language做垂直或参数化搜索。anysearch_batch_search并发执行一至五个完整搜索项,按输入顺序返回;单项失败时保留其他成功结果。每项单独鉴权、限流和计费。- 高级搜索结果可保留请求 ID、耗时,以及有字符上限的清洗正文。
- 未配置 API Key 时使用 AnySearch 匿名额度;配置后走账号级额度。
- 凭据通过 DSH 凭据系统解析
ANYSEARCH_API_KEY。受管凭据文件里轮换 Key 后,下一次搜索自动使用新值,不必重启 DSH。启动环境变量优先级更高,改环境变量需要重启进程。 - Agent 取消操作时会中止正在进行的搜索。HTTP 请求有 55 秒 deadline,三个高级工具声明 60 秒预算。
- 拒绝把查询或凭据转发到 HTTP 重定向目标。
web_search 只向通用 Web Search 接口提交可移植字段:title、url、snippet。完整 content 不会进入 web_search 结果。要拿清洗正文,需要走 anysearch_search 或批量工具,并传入 includeContent: true。单次搜索所有结果的 content 累计最多 200,000 字符;向模型展示时再截到配置项 maxRenderedContentChars(默认 12000)。批量搜索里,200,000 字符上限按每个独立搜索计算,maxRenderedContentChars 由整批共享。
当前版本明确不提供 anysearch_extract,也就是没有网页正文提取工具。AnySearch MCP 另有 extract;DSH 插件这条路径目前没有接上。
安装与启用¶
目录页给出的安装命令如下,在 DeepSeek Harness 终端中运行即可:
dsh plugin add github:anysearch-team/anysearch-dsh
如需可复现安装,目录页建议固定 commit 哈希:
dsh plugin add github:anysearch-team/anysearch-dsh#commit
把 commit 换成仓库里实际的提交哈希。插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前应检查源代码仓库和许可证。
仓库 README 和中文使用指南推荐把 npm 包装进 web profile。环境要求是 Node.js 22.19 或 Node.js 24+、pnpm 11.7,以及可以通过 npx 运行的 DeepSeek Harness。DSH 插件命令用 pnpm 管理 profile 依赖,因此 pnpm 必须能在 PATH 里直接运行。Windows、Linux 和 macOS 使用同一条安装命令:
npx -y @deepseek-ai/dsh plugin --profile web add @anysearch/anysearch-dsh
然后启动:
npx -y @deepseek-ai/dsh web
快速体验不需要 API Key,未配置时请求使用 AnySearch 匿名额度。匿名额度受共享免费额度和更低限流约束,耗尽或触发限流后需要稍后重试,或改配账号 Key。
安装后可用下面这条命令检查最终组合配置,输出里不应出现真实密钥:
npx -y @deepseek-ai/dsh --profile web --dump-config
配置中应能看到:
- id: web
config:
searchProvider: anysearch
以及插件行:
- id: web-search-anysearch
name: '@anysearch/anysearch-dsh'
更新和移除(仓库 README):
npx -y @deepseek-ai/dsh plugin --profile web update @anysearch/anysearch-dsh
npx -y @deepseek-ai/dsh plugin --profile web remove @anysearch/anysearch-dsh
配置 API Key¶
API Key 是可选的。持续使用或需要账号级额度时,仓库建议到 anysearch.com 注册并登录,再到 API Keys 获取。推荐写入 DSH 管理的凭据文件,默认位置是 ~/.dsh/.credentials.yaml;如果设置了 DSH_HOME,则是 $DSH_HOME/.credentials.yaml:
ANYSEARCH_API_KEY: "as_sk_your_key"
as_sk_your_key 是占位符,必须换成有效 Key。原样保存时,插件会在发送 HTTP 请求前拒绝它;若要继续匿名访问,删除整条配置即可。Windows 默认路径对应 C:\Users\<用户名>\.dsh\.credentials.yaml。
插件配置只保存引用名 ANYSEARCH_API_KEY,不保存真实 Key。DSH 的标准本地凭据 Provider 按以下顺序解析同名引用:启动环境、$DSH_HOME/.credentials.yaml、当前调用目录的 .env、$DSH_HOME/.env。请不要把真实 API Key 写入 Git 仓库、截图、日志或问题报告。
当前 DSH Web 设置页不会为第三方 Provider 自动生成 AnySearch Key 输入框,因此只能用受管凭据文件或环境变量。官方 base profile 已包含插件所需的标准 credentials 服务。
默认 API 地址是 https://api.anysearch.com。若要改测试环境或自托管兼容服务,在目标 profile 的用户配置层覆盖同一条 id: web-search-anysearch,保持 id 不变,完整替换 config,不要用不同 ID 再加第二个 AnySearch Provider:
- id: web-search-anysearch
config:
apiKeyEnv: ANYSEARCH_API_KEY
baseURL: https://api.anysearch.com
maxRenderedContentChars: 12000
apiKeyEnv 是凭据引用名,不是 Key 字面量。baseURL 必须是 HTTP 或 HTTPS 地址。
典型用法¶
安装完成后,像平时一样向 DeepSeek Harness 提问。普通联网查询继续走 web_search。使用指南给出的提示词示例包括:
搜索 DeepSeek Harness 最近的发布变化,并附上来源链接。
查找今天关于开源 Agent Harness 的重要新闻,比较三个来源。
核实某个 GitHub 项目当前的安装方式,并引用官方文档。
需要专业数据时,应先调用 anysearch_capabilities 读取实时目录,再把返回的标签和参数交给 anysearch_search,不要自行猜测 tag 或参数名。需要同时执行多个独立查询时,使用 anysearch_batch_search,一次最多五项。使用指南里的提示词示例:
查询 AAPL 最新行情。先获取 finance 领域能力,再使用准确的标签和参数搜索。
检索最近的 CVE,并保留 AnySearch 的请求 ID 和搜索耗时。
分别搜索三个开源 Agent Harness 的最新版本,并保留每项请求 ID。使用批量搜索。
普通查询让 Harness 自动选 web_search 即可。只有垂直标签、结构化参数或完整元数据有价值时,才使用 anysearch_search。
如果 Provider 未注册,Harness 会报告配置的搜索 Provider 缺失;如果 AnySearch 返回错误,工具会显示安全错误消息或 HTTP 状态说明。出现 WEB_PROVIDER_ERROR 时,使用指南建议依次检查:baseURL 是否正确、网络能否访问 api.anysearch.com、API Key 是否有效或过期、匿名/账号额度是否用尽、服务端是否返回 429 或 5xx。报告问题时提供错误消息和发生时间,不要提供真实 API Key。上游业务错误文本最多保留 2,000 字符,并以 JSON 字符串转义,前面会标明这是不可信的上游数据而不是指令。
适用场景与注意事项¶
适合已经在用 DeepSeek Harness、希望 AnySearch 成为默认搜索 Provider、并且更看重原生 web_search 展示和引用的人。仓库把 DSH 插件、AnySearch Skill、AnySearch MCP、直接 HTTP 四种接入写成同一套搜索后端上的不同适配层:只在 DSH 里用、想替换内置搜索,选这个插件;当前就需要 Extract,应另配 AnySearch MCP,而不是指望本插件补上提取工具。
使用前需要接受这些边界:
- DeepSeek Harness 仍处于开发预览阶段,可能发布不兼容变更,插件可能需要同步升级。
- 本插件当前不提供
anysearch_extract。 - 通用
web_search仍只开放查询词和结果数量;清洗正文和完整元数据走专属工具。 anysearch_batch_search发出多次独立 HTTP 请求,可能部分成功、部分限流或额度不足,语义不同于 MCP 服务端统一处理的 batch。- 插件以当前 dsh 进程权限运行。安装前检查源码与许可证;需要可复现安装时固定 commit 哈希。
- 社区插件目录是独立站点,收录信息(例如星标)可能滞后于 GitHub。以仓库和
package.json为准核对版本与命令。
小结¶
anysearch-dsh 做的是一层很薄、但贴着 Harness 走的适配:普通搜索继续叫 web_search,垂直和批量能力用三个专属工具补上,密钥只以引用名进入配置。当前版本是 0.1.1,MIT 许可,维护者是 anysearch-team。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/anysearch-dsh/
GitHub:https://github.com/anysearch-team/anysearch-dsh