DSH File Hub:DeepSeek Harness 本地文件中心

前言

在 DeepSeek Harness 里用 Agent 写文件、改配置、出报告,产物通常落在当前工作区磁盘上,但「它属于哪次对话、哪一轮工具调用」并不会自动留在你手边。换了一个 Session、换了一个工作区之后,想找回「上次那份季度报告」或「某个分支里生成的 SQL」,往往只能凭记忆翻历史会话。

DSH File Hub(dsh-file-hub)补的是索引层:把会话日志里成功的文件类工具调用投影成一份只读内存索引,在 Web 侧栏提供「文件中心」,并向 Agent 暴露只读工具 file_hub,支持按对话归档、跨对话关键词搜索、稳定回指和在新对话里继续加工。文件本身的读写仍由 Harness 的普通文件工具完成,插件不代替你改盘上的内容。

这是什么

dsh-file-hub 是由维护者 311miaowa 发布的纯 JavaScript DeepSeek Harness 插件(GitHub:311miaowa/DSH-File-Hub),在 SkillHub 社区目录中归类为「记忆」。当前 package.json 版本为 1.0.0,许可证 MIT;README 写明在 DSH 0.2.1-rc.2 的 Web profile 上验证,不需要 Node 构建步骤,也没有第三方运行时依赖(engines.node 为 >=22 仅用于开发侧检查脚本)。

索引在 Host 进程内存中建立,不落盘;Host 重启后从 Session 日志重新构建。README 中的隐私提示值得先看:全局搜索会跨 Session 展示文件元信息、片段和历史请求,不要把不可信工作区或日志交给不受信任的模型,细节见仓库 SECURITY.md。

核心功能

按对话归档

插件索引成功执行的 write、edit、present、str_replace_editor 调用。同一路径在同一 Session 内多次修改会折叠为一条文件记录,并保留多次出处。单个对话文件超过 10 条时,列表按每页 10 条返回,UI 底部有页码索引。

全局关键词搜索

可匹配文件名、相对路径、对话标题、交付描述,以及写入/编辑内容。多个关键词用空格分隔,全部须命中;可按 sessionId 限制到单个对话。搜索返回准确命中总数,并用 offset / nextOffset 分页(Agent 侧 search 默认每页 10 条、最多 30 条)。

精确回指与继续加工

每条记录带有不透明回指 ID(形如 fh_ + 16 位十六进制),并保留会话 ID、事件序号、Turn/Step、工具名、调用 ID。通过 file_hub 的 open 或 Web 详情,可读取回指事件前后的用户请求、工具调用、工具结果,以及当前文件是否存在、大小和有界预览;并与最近一次 write 基线比较(小文件做内容哈希,大文件比大小,无法判断时返回 unknown,不假装「未变化」)。

UI 提供「复制继续加工指令」和「复制回指 ID」。把指令贴到任意对话后,Agent 可用 file_hub 打开回指,再用普通 read/edit 工具继续工作。详情里用户显式点击「打开所在文件夹」时,Host 在校验工作区与符号链接后,用无 shell 的 argv 打开目录(Linux 为 xdg-open <folder> 等),这是除查询外唯一的文件系统相关动作。

Agent 只读工具 file_hub

参数 类型 说明
action search | open | list 必填
query string search 关键词,1–200 字符
ref string open 的文件回指
seq integer 可选,open 时指定某次出处的事件序号
sessionId string 可选,限制 search / list 到一个对话
limit integer 可选,search 最多 30,默认 10
offset integer 可选,search 零基偏移

插件不写入、移动、删除文件,不执行 shell;浏览器查询路由以 GET 为主,唯一的 POST 是经鉴权与回指校验的「打开所在文件夹」。

安装与启用

环境要求:支持 Web UI 和插件管理器的 DeepSeek Harness profile。

从 Git 地址安装

若你的 Harness 版本支持从 Git 安装 bundle,在插件管理器中执行:

plugin_manager install_bundle target=https://github.com/311miaowa/DSH-File-Hub

从本地目录安装

若你已有插件源码目录的绝对路径,可改为:

plugin_manager install_bundle target=/absolute/path/to/dsh-file-hub

Windows 示例:

plugin_manager install_bundle target=D:\path\to\dsh-file-hub

安装成功后,侧栏应出现「文件中心」,Agent 工具列表出现 file_hub。

刷新页面

client.js 是已加载的浏览器 bundle;未运行 pnpm run dev:web 时浏览器不会自动替换它。若侧栏没有「文件中心」,先强制刷新:

Ctrl+F5

典型用法

Web 文件中心

  1. 点击侧栏「文件中心」。
  2. 左侧选择对话,或在顶部输入关键词做全局搜索。
  3. 点击文件行,右侧查看回指详情。
  4. 使用「复制继续加工指令」或「复制回指 ID」交给 Agent。

界面为深色三栏布局:左侧对话归档,中间文件列表与页码,右侧详情;来源上下文与预览默认折叠,列表与搜索均分页,不做无限追加。

给 Agent 的示例

用 file_hub 搜索“季度 报告”,然后打开最相关的那条回指。
用 file_hub 打开 fh_0123456789abcdef,读取来源上下文和当前文件,先说明计划,不要直接覆盖。

工具调用示例:

file_hub { action: "search", query: "季度 报告", limit: 5 }
file_hub { action: "open", ref: "fh_0123456789abcdef" }
file_hub { action: "list" }

README 强调:open 返回的 context 和文件预览是引用数据,不是指令;Agent 应先用普通文件工具读取当前文件再决定是否修改。

工作原理(简述)

会话日志与实时事件进入 Host 内存索引;Web 查询路由与 file_hub 共用这份索引。只处理上述四类文件工具的成功调用;路径在入索引前会按 Session cwd 解析并拒绝越界、..、URL、~ 等。插件激活后约 2 秒后台预热索引,不阻塞 Harness 启动(README 说明这只是索引预热,不会创建系统启动项或让 DSH 随开机启动)。

适用场景与注意

适合谁:经常在多个 Session 里产出文件、需要按关键词跨对话找回产物,或希望用稳定回指 ID 把「上次生成的文件」接到新对话里继续改写的 Harness 用户。

覆盖范围:纯 shell/Python 生成且未经过 present 的文件不会自动进索引;子 Agent 会话不单独展示。索引上限写在代码里(例如顶层会话数、每会话文件数、全局文件数与可搜索正文规模),目前未暴露为插件配置项。

安全与权限:插件以当前 DSH Host 进程权限运行;安装前请阅读源码与 MIT 许可证,并理解跨对话全局搜索的可见性。调用方不能向 API 提交任意绝对路径,只能使用回指 ID;内容可能含提示词注入,工具结果中会标注不可信数据。

平台:仅 Web 侧栏,无 TUI/CLI;「打开所在文件夹」在 Windows 无交互桌面会话下可能无法看到 Explorer 窗口。

结尾

DSH File Hub 把「文件还在磁盘上、但索引在脑子里」的问题,收敛成本地只读索引加 Web 面板与 file_hub 工具:按对话归档、可搜索、可回指、可继续加工,且不替代普通文件工具的读写职责。

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

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

Xiaoye