🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

读取缓存 yongshuai0314/dsh-readcache

DeepSeek Harnessv1.0.1
yongshuai031472 天前有提交已提供中文文档扫描:未发现敏感能力

复用重复文件读取结果,避免长会话反复做 I/O

28.8/100
综合分
2
GitHub 星标
223
npm 周下载
—/5
用户评分

数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-readcache
npm 源 · dsh-readcache 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · dev
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 72 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-readcache @ 1.0.1
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/24 11:37:49

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 进程内结果缓存
  • 版本令牌校验
  • 复用重复文件读取

为 DSH read 工具提供进程内结果缓存,用版本令牌校验

README

由 DeepSeek 最新模型翻译生成
dsh-readcache ⚡ 为 DSH read 工具提供版本令牌校验的结果缓存。 长会话会反复重读未变更的文件——上下文压缩后的恢复、并行子代理、编辑前后的对比,每一次重复都要重新做文件 I/O 和行号渲染,读到的却是字节完全相同的内容。dsh-readcache 包装了 tools/execute 事件瀑布,让这些重复读取直接命中进程内缓存,且每一次命中都对照文件系统自己的版本令牌重新校验。 为什么它是安全的 朴素的缓存会吐旧内容,这个插件不会: | 性质 | 机制 | | 绝不吐旧内容 | 每次命中都重新 stat 文件,要求版本令牌精确匹配(本地后端为 dev:ino:size:mtimeNs:ctimeNs)。任何写路径——edit/write 工具、bash、外部编辑器——都会改变令牌并立即失效对应条目。 | | 无写入竞态 | 未命中时,执行结果只有在二次 stat 仍报告执行前令牌的情况下才会入缓存(双 stat 防护)。 | | 保留"先读后改"约束 | 缓存键包含代理 id。文件系统的观察门(fs-observation-policy)要求每个代理编辑前必须自己读过该文件;按代理隔离键值保证每次命中都以该代理自己的先前观察为凭据。 | | 内存有界 | LRU 上限:300 条 / 总量 16 MiB / 单条 4 MiB。
展开完整文档(README 剩余 1 节)
dsh-readcache

⚡ 为 DSH read 工具提供版本令牌校验的结果缓存。

长会话会反复重读未变更的文件——上下文压缩后的恢复、并行子代理、编辑前后的对比,每一次重复都要重新做文件 I/O 和行号渲染,读到的却是字节完全相同的内容。dsh-readcache 包装了 tools/execute 事件瀑布,让这些重复读取直接命中进程内缓存,且每一次命中都对照文件系统自己的版本令牌重新校验。

为什么它是安全的

朴素的缓存会吐旧内容,这个插件不会:

| 性质 | 机制 |
| 绝不吐旧内容 | 每次命中都重新 stat 文件,要求版本令牌精确匹配(本地后端为 dev:ino:size:mtimeNs:ctimeNs)。任何写路径——edit/write 工具、bash、外部编辑器——都会改变令牌并立即失效对应条目。 |
| 无写入竞态 | 未命中时,执行结果只有在二次 stat 仍报告执行前令牌的情况下才会入缓存(双 stat 防护)。 |
| 保留"先读后改"约束 | 缓存键包含代理 id。文件系统的观察门(fs-observation-policy)要求每个代理编辑前必须自己读过该文件;按代理隔离键值保证每次命中都以该代理自己的先前观察为凭据。 |
| 内存有界 | LRU 上限:300 条 / 总量 16 MiB / 单条 4 MiB。 |

只有 read 工具的成功、非中止、可无损 JSON 序列化的结果才会入缓存;失败结果原样透传。

readcache 工具

插件注册一个模型可见的工具:

- readcache(action:"stats" | "clear")— 汇报命中/未命中等计数与已节省字符数、条目数;或清空缓存。

stats 输出示例:

{
"hits": 2,
"misses": 4,
"hitRatio": 33.3,
"stale": 1,
"stores": 4,
"evictions": 0,
"savedChars": 1210,
"clearedEntries": 0,
"entries": 3,
"cachedChars": 1662,
"maxEntries": 300
}

安装

dsh plugin --profile web add dsh-readcache

或从本地检出安装:

cd dsh-readcache && npm pack
dsh plugin --profile web add ../dsh-readcache/dsh-readcache-1.0.1.tgz

安装后重启 DeepSeek Harness 生效。

设计说明

- 拦截点:tools/execute 的 around 分发瀑布——官方超时策略用的同一条缝。调用身份保持不变,只有结果被复用。
- 声明 inject,不和加载器赛跑:插件导出 inject = ["fs", "tools"],Cordis 会把它保持在等待态,直到基础 bundle 提供这两个服务。若用软性 ctx.get("fs") 提前返回,可能在启动竞态中抢跑并让整个缓存静默失效——这正是 1.0.1 修复的 bug。
- 为什么用 stat 而不是 fs 观察事件:fs.stat 是无副作用的纯探测;观察事件依赖触发顺序,且命中时无法复核。
- 仅宿主侧:缓存完全活在宿主进程里。客户端仪表盘(经 Remote service)在 v1.1 路线图上。
- 入缓存的对象是冻结的 ToolExecutionResult;一次无损 JSON 往返(JSON.parse(JSON.stringify(...)))保证存下的副本不持有任何指向运行时的活引用。

已验证行为

- 同参数重读未变更文件 → hits +1,省掉 I/O。
- 两次读取之间文件被外部修改 → 返回新内容(不吐旧内容),stale +1。
- 另一个代理首次读取已缓存文件 → misses +1(按代理隔离成立)。

许可证

MIT
预览分享卡片长什么样 ↓yongshuai0314/dsh-readcache
分享 · DeepSeek Harness Hub
yongshuai0314/dsh-readcache

复用重复文件读取结果,避免长会话反复做 I/O

这是你的仓库?认领条目

回到顶部