dsh-local-search:让模型查本机索引,而不是猜路径

前言

DeepSeek Harness(DSH)会话通常只绑定一个工作目录。目录内的 grep、glob 很快,但目录外几乎看不见。任务若依赖散落在其他盘符或项目外的合同、笔记、PDF,模型往往只能猜路径,或停下来请你另开窗口自己找——对话空转,查找又回到你手上。

本机全文检索插件 fishdivinity/dsh-local-search 把「找文件、读正文」拆成五个只读工具:文件名走 Everything 的 es.exe,文档正文走 Anytxt Searcher 的 JSON-RPC。查询走已有索引,毫秒级返回,不扫盘、不写盘、不重建索引。维护者为 fishdivinity,npm 包名 @fishdivinity/dsh-local-search,社区目录分类为「记忆」,许可证 MIT,当前 package 版本 0.4.0。

这是什么

一句话:在 Windows 上为 DSH 提供全盘文件名检索与 PDF / Word / Excel / PPT / EPUB 等格式的正文检索,全部只读,由模型调用工具完成查找与引用。

与「只在工作区里搜」相比,差别在于索引覆盖整机(在配置的搜索范围内),且非纯文本格式可通过 Anytxt 取正文,而不必你手动复制粘贴。

核心功能:五个工具

工具 引擎 用途
local_search_files Everything(es.exe) 按文件名、路径、跨盘发现文件与文件夹
local_search_content Anytxt JSON-RPC 在 PDF、DOCX、XLSX、PPTX、EPUB、RTF、TXT、MD 内搜正文
local_search_fragments Anytxt 单文件内匹配附近的片段
local_search_read Anytxt 单文件提取纯文本(有上限)
local_search_status 两者 检查各引擎是否可达

插件不捆绑 Everything、es.exe 或 Anytxt,需自行安装并授权;也不负责 OCR、删改文件或启动索引引擎以外的写操作。

README 中归纳的适用情形包括:检索只是完成主任务的一步;你知道大意但记不清关键词;答案要跨多文件对比;批量从多份文档抽字段;目标不是纯文本无法用 grep;回答需要带路径与摘录以便核对。

环境与依赖

  1. 操作系统:Windows。
  2. DSH:>=0.2.1-0 且 <0.3.0(见 README 徽章与 Requirements)。
  3. Everything:需运行;另需下载 es.exe(voidtools 提供)。插件可自动探测 PATH 或常见安装目录,也可在配置里设置 files.everything.esPath。
  4. Anytxt:需运行 GUI(ATGUI.exe),JSON-RPC 服务在 GUI 进程内;仅索引服务不够。

安装与启用

安装命令必须写入当前会话实际使用的 profile:Desktop 应用用 desktop,dsh web 用 web。

dsh plugin --profile desktop add @fishdivinity/dsh-local-search   # Desktop app
dsh plugin --profile web add @fishdivinity/dsh-local-search       # dsh web

若要从源码安装而非 npm 包,将规格换为 github:fishdivinity/dsh-local-search(README Install 节原文)。

安装后重启 profile 或新开 session,模型工具列表中会出现上述五个 local_search_* 工具。

配置要点

在 DSH 侧边栏 Plugins → Official plugins 中的 Local Search 卡片进入插件页。保存后对下一次工具调用生效;离开页面前未保存的编辑会丢弃。Reset 会清除引擎与 limit 相关设置并由探测重新填充,搜索范围与启动检查开关保留。

页面按能力分区:File names、File contents 各自选择后端并展示对应字段;Search scopes、Limits、Startup 与后端无关。Anytxt 端点下方有 Test connection,可同时探测 Everything 与端点(无需先保存);es.exe 路径填错会提示文件缺失。保存前会对端点与 es.exe 路径做探测,失败时可选择是否仍保存(硬错误如无此路径则无法绕过)。

路径字段保存时会规范为 Windows 写法(盘符大写、反斜杠等);若路径存在,以磁盘实际拼写为准。

更细的 scopes、引擎选择、错误诊断与安全限制见 GitHub README 与 简体中文 README。

典型用法(模型侧)

文档未给出固定 CLI 示例,而是描述工作流:你在对话里提出需要某类文档或某段表述的任务;模型依次调用 local_search_status 确认引擎可用,用 local_search_files 或 local_search_content 查索引,再用 local_search_fragments / local_search_read 精读命中文件,最后带路径与摘录回答。例如「对比两份合同里的付款条款」「从多份会议纪要里归纳关于进度的决定」——搜索是手段,阅读与对比由模型完成。

适用场景与注意

适合:Windows 上已部署 Everything 与 Anytxt;希望 agent 在本机索引范围内自主找名、搜正文并引用来源;工作常涉及 PDF、Office、EPUB 等非仓库内纯文本文件。

务必注意:

  • 插件以当前 DSH 进程权限运行,能检索到的范围受 Everything / Anytxt 索引与你在插件里配置的 search scopes 约束;安装前请阅读源码与 MIT 许可证,确认可接受其只读边界与已知限制(README 的 Known limitations、Security and limits)。
  • 社区插件目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系;安装与配置以 GitHub 文档为准。
  • GitHub 上该仓库公开 star 数为 2(与目录页一致),不代表功能完备度,仅作生态参考。

结尾

dsh-local-search 把「整机文件名 + 常见文档正文」收敛为五个只读工具,让 DSH 在索引上查盘而不是猜路径。需要安装命令、配置字段与限制说明时,可直接查阅仓库文档。

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

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

小夜