前言¶
在 DeepSeek Harness(DSH)里做智能体,常见需求是:拉网页正文、查 GitHub、把几篇资料收成可语义检索的临时库,或在无浏览器、无 GPU 的远程主机上完成这些事。自己拼 curl、搜索引擎 API 和向量库,维护成本高,也容易和 Harness 的工具调用方式脱节。
下面介绍社区插件 @snow-the/dsh-search(维护者 snow-The,SkillHub 分类为「联网工具」)。它在 DSH 侧提供一组检索相关工具,并可选开启本机 loopback HTTP 接口,适合 headless / 远程环境;README 写明无需浏览器、无需 GPU。
这是什么¶
@snow-the/dsh-search 是面向 DeepSeek Harness 的通用检索工具包。package.json 中的描述概括为:统一网页搜索(Bing / DDG / SearXNG / Exa / Tavily,带降级链与缓存)、页面抓取、GitHub 搜索、向量语料库、深网探测,以及本地代码库的语义搜索(search_code)。
插件以 TypeScript 实现(tsc + esbuild 构建,HTTP 侧使用原生 node:http,与 dsh-gitkit 同类模式)。当前 README 列出的 Harness 工具如下。
| 工具 | 作用 |
|---|---|
search_fetch |
无浏览器抓取 URL,返回抽取后的页面文本 |
search_github |
直连 GitHub REST API 搜索仓库 / 代码 / Issue / Commit(不经过 Google) |
search_corpus_add |
抓取、抽取、分块、嵌入并索引到临时 SQLite 向量语料库 |
search_corpus_search |
在语料库上做语义 top-k(float32 向量余弦相似度) |
search_corpus_clear |
清空临时语料库 |
实现上 README 还说明了:分块带重叠、批量 ARK 嵌入(16 条一批)、向量以 float32 BLOB 存 SQLite;在配置 ARK_API_KEY 时可使用 ARK doubao-embedding-large(search_code 语义层;也可用环境变量 DSH_BROWSER_EMBED_MODEL 覆盖),无密钥时可用本地 64 维 n-gram 哈希回退,BM25 + rerank 核心可在无密钥、无网络下工作。
安装与启用¶
安装方式以 GitHub README 为准:把 @snow-the/dsh-search 写入 profile 的 dependencies 与 dsh.profile.bundles,再执行 pnpm install 并重启 DSH。
在 profile 的 package.json 中可类似配置(包名与版本以你选用的 lock 为准):
{
"dependencies": {
"@snow-the/dsh-search": "^0.5.1"
},
"dsh": {
"profile": {
"bundles": ["@snow-the/dsh-search"]
}
}
}
package.json 中声明的 DSH 兼容范围为 0.2.0-rc.1、0.2.0-rc.2、0.2.1-rc.2,verifiedAgainst 为 0.2.1-rc.2。许可证为 MIT。
典型用法¶
在 Harness 里调用工具¶
智能体通过 DSH 插件机制调用上表中的 search_* 工具即可,具体参数以插件注册定义为准。README 对 GitHub 搜索说明:查询串支持 GitHub Search API 的限定符透传,例如:
lang:ts stars:>100
repo:owner/name
org:google
is:issue is:open
GitHub 认证可通过环境变量 GITHUB_TOKEN / GH_PAT,或 ~/.dsh/.credentials.yaml 中的引用(按行解析)。代码搜索按 GitHub 规则需要认证;未认证时 README 写明限额为 10 次/分钟。
可选:本机 HTTP API(loopback)¶
若需在本机以 HTTP 消费同一套能力,可设置环境变量 DSH_SEARCH_HTTP_PORT(仅 loopback)。自 v0.5.1 起还必须设置 DSH_SEARCH_HTTP_TOKEN(不少于 16 个字符);只设端口不设 token 时守护进程会拒绝启动,而不是无鉴权对外服务。每次请求需带:
Authorization: Bearer <DSH_SEARCH_HTTP_TOKEN>
否则返回 401 及 WWW-Authenticate: Bearer。
README 列出的路由包括:
GET /healthGET /fetch?url=GET /github?q=&type=repo|code|issue|commitPOST /corpus(body 为 URLs)GET /corpus/search?q=&k=DELETE /corpus
示例(token 与端口按你的环境替换):
curl -s -H "Authorization: Bearer YOUR_TOKEN_HERE" \
"http://127.0.0.1:PORT/fetch?url=https%3A%2F%2Fexample.com"
检索方法论文档¶
仓库内附带从专业书籍整理的操作符、调查流程与向量检索要点(OCR、行号引用),入口包括 docs/search-methods.md 以及 docs/book-osint-techniques.md、docs/book-ai-powered-search.md、docs/book-bellingcat.md,便于把「怎么搜」和上述工具对应起来。
适用场景与注意¶
适合需要在 DSH 智能体工作流中完成网页抓取、GitHub 检索、临时 URL 语料语义检索,或在无图形界面主机上跑检索能力的开发者。若你已在使用多种搜索 API,插件描述中的多提供商降级链与缓存,可减少单点失败时的手工切换。
使用前请注意:
- 权限:插件随当前 DSH 进程权限运行,会发起外网请求、读写本地 SQLite 语料;安装前请阅读源码与 MIT 许可证,确认符合你的安全与合规要求。
- 密钥:网页嵌入依赖
ARK_API_KEY(可选);GitHub 代码搜索强烈依赖 token;HTTP 守护进程依赖DSH_SEARCH_HTTP_TOKEN,勿将 token 提交到仓库或日志。 - 生态:DSH 奉行「一切皆插件」;SkillHub 目录页由社区维护,与 DeepSeek / 幻方无官方从属关系,本文安装与能力说明以 GitHub README 与包元数据为准。
结尾¶
@snow-the/dsh-search 把抓取、GitHub 搜索、临时向量语料和(按包描述)统一网页搜索、代码库语义检索等能力收进一个 DSH 插件,并针对 headless 与可选 loopback API 做了明确设计。进一步了解可访问 SkillHub 目录页与 GitHub 仓库。
- 目录页:https://www.skillhub.cn/plugins/snow-The/dsh-search
- GitHub:https://github.com/snow-The/dsh-search