@snow-the/dsh-search:为 DeepSeek Harness 准备的联网与检索工具集

前言

在 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 /health
  • GET /fetch?url=
  • GET /github?q=&type=repo|code|issue|commit
  • POST /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,插件描述中的多提供商降级链与缓存,可减少单点失败时的手工切换。

使用前请注意:

  1. 权限:插件随当前 DSH 进程权限运行,会发起外网请求、读写本地 SQLite 语料;安装前请阅读源码与 MIT 许可证,确认符合你的安全与合规要求。
  2. 密钥:网页嵌入依赖 ARK_API_KEY(可选);GitHub 代码搜索强烈依赖 token;HTTP 守护进程依赖 DSH_SEARCH_HTTP_TOKEN,勿将 token 提交到仓库或日志。
  3. 生态: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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye