跳到主内容

dsh-file-mount 使用指南

为 DeepSeek Harness 提供文件增量挂载:自动记录已读文件哪些行进了模型上下文,重复读取只补缺失或改动的部分,并在 Web 端给出可计账的「挂载文件」仪表盘。

本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。

本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。

快速上手

dsh-file-mount

— 源: plugin_wiki.wiki_content

安装与验证

dsh plugin --profile web add github:acefun29/dsh-file-mount

复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。

— 源: plugins.install

关键要点

  • 模型侧:读过的行范围不重复进上下文(去重 marker);缺失/改动的正文写进本次 read 的工具结果(增量 / 重挂),纸条只记账本声明;文件改动后只补改动的行(行级 diff,日志追加只补新尾巴);AI 自己写过的文件回头读直接免单;file_mount_forget 工具让模型能主动强制重读。
  • 界面侧:「挂载文件」标签页是仪表盘——打开时停在顶部,净节省与路径搜索固定在顶栏,文件列表单独滚动;每个文件行可展开成文件段列表,每段带新鲜度色带(绿=新鲜/黄=一般/橙=接近过期/红=已过期/灰=未知)和过期次数;另有覆盖图(色块标出已挂载行在文件中的位置)、搜索、排序、净节省与人民币折算;对话区有上下文注入折叠行,「文件已变更」时行上有角标。
  • 节省统计:中文按 1 字 ≈ 1 token、其他按 4 字符 ≈ 1 token 估算;同时记账「省下的」和「纸条花掉的」,界面显示净值(为负时按 0 显示);可选把跨会话总账落盘(statsFile)。
  • id: file-mount
  • compaction 后「已挂载」保证失效:被压缩掉的挂载内容离开模型上下文,插件靠 checkpoint 的 sourceEventSeqs 识别并跳过,下一次读取重新锚定。

— 源: plugin_wiki.readme_zh (fallback readme_raw)

常见问题

这个插件是做什么的?我为什么需要它?

它拦截 read/write/edit 工具结果,让模型重复读取同一个文件时不再把整段正文塞进上下文——已经读过的行范围会换成简短的"已挂载"标记,只把缺失或磁盘上改动过的行增量补回去。AI 自己刚写入的文件回头读也直接免单;同时提供一个「挂载文件」仪表盘显示账本与节省统计。

装上之后界面里找不到「挂载文件」标签怎么办?

安装后必须重启 harness(npx @deepseek-ai/dsh --profile web),页面刷新不足以激活。Windows 上避免 dsh plugin add . 直接装目录——pnpm 会把盘符拼进 profile 路径导致插件装上但不激活,请改用 pnpm dsh:install 或预构建的 GitHub Release tarball。

模型能不能主动放弃某个文件的挂载、强制重读?

可以。模型可调用 file_mount_forget 工具作废指定路径的账本条目,下次 read 就会整本重发。仪表盘头部也会提示:遇到"已挂载"但上文找不到内容时,先 forget 再 read。

「挂载文件」标签里那些绿/黄/橙/红色带代表什么?

是「新鲜度」色带——根据挂载段在当前上下文中的位置判断它是否还可能被模型看见。绿色=新挂载、黄色=尚可、橙色=接近过期、红色=已过期、灰色=无法判断(缺少 usage 数据的会话)。接近上下文窗口上限时越靠前的段越容易被摘账,下次读取会重发,重发过一次后该段就被钉住。

节省的数字准确吗?界面怎么算的?

是估算:中文 1 字 ≈ 1 token,其他字符 4 字符 ≈ 1 token。仪表盘显示「净值」(省下的 token 减去插件自己写入的提示纸条开销,负数显示为 0),并按每百万 token ≈ ¥1 折算人民币作为参考。

跨会话的累计节省存在哪里?

在配置中设置 statsFile 后,每次会话结束会自动把该会话的「省下 token / 提示开销 token / 会话数」原子写入该 JSON 文件;宿主通过 ctx.fileMount.stats() 可读取。未配置 statsFile 则不落盘。

哪些文件插件不管?

超过 maxManagedBytes(默认 16 MiB)的文件不接管;路径命中 excludeGlobs(默认 **/node_modules/**)也直接原样放行。这两类文件会走原生 read,不会写账本,也不会出现在仪表盘上。

升级 DSH 后这个插件会不会失效?

不会立刻失效,但 compaction 后的挂载判断、read 工具的 canonical value 形状等耦合点由 tests/compaction.spec.ts 钉死。每次升 DSH 建议跑一遍 pnpm test,DSH 一旦改动这些形状测试会立刻报警。

— 源: plugin_wiki.faq_json

兼容性

  • DSH: 0.1.0-rc.5+(peerDependencies 全部声明 ^0.1.0-rc.5,README 验证基于 0.1.0-rc.5+)
  • Node: ^22.19.0 || >=24.0.0(package.json:21 engines 字段)
  • Platforms: macOS, Windows, Linux

— 源: plugin_wiki.compatibility_json

踩坑提醒

安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。

— 来源:通用规则

dsh-file-mount 使用指南