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

文件记忆 wojiao42/dsh-memory-file

DeepSeek Harness
wojiao4232 天前有提交已提供中文文档扫描:含敏感能力

用 Markdown 文件为智能体保存长期记忆并读写

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add wojiao42/dsh-memory-file
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

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

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 97 处,展示前 28 条)
  • 读取本地文件
    index.js:131
    if (!existsSync(file)) return undefined;
  • 读取本地文件
    index.js:132
    return readFileSync(file, 'utf8');
  • 读取本地文件
    index.js:158
    if (!existsSync(file)) return '';
  • 写入本地文件
    index.js:160
    mkdirSync(backupDir, { recursive: true });
  • 写入本地文件
    index.js:163
    copyFileSync(file, dest);
  • 读取本地文件
    index.js:170
    if (!existsSync(backupDir)) return undefined;
  • 读取本地文件
    index.js:173
    const names = readdirSync(backupDir).filter((n) => n.startsWith(prefix) && n.endsWith('.md'));
  • 读取本地文件
    index.js:182
    if (!existsSync(backupDir)) return [];
  • 写入本地文件
    index.js:332
    mkdirSync(dirname(file), { recursive: true });
  • 写入本地文件
    index.js:333
    writeFileSync(file, `${JSON.stringify(state, null, 2)}\n`, 'utf8');
  • 写入本地文件
    index.js:427
    mkdirSync(dirname(pendingFile), { recursive: true });
  • 写入本地文件
    index.js:428
    if (!existsSync(pendingFile)) writeFileSync(pendingFile, PENDING_HEADER, 'utf8');
  • 读取本地文件
    smoke.mjs:17
    const SRC = readFileSync(new URL('./index.js', import.meta.url), 'utf8');
  • 写入本地文件
    smoke.mjs:186
    writeFileSync(join(tmp, 'placeholder'), '');
  • 读取本地文件
    smoke.mjs:238
    assert.ok(existsSync(addedFile), `文件未创建: ${addedFile}`);
  • 读取本地文件
    smoke.mjs:239
    const body = readFileSync(addedFile, 'utf8');
  • 读取本地文件
    smoke.mjs:294
    const body = readFileSync(r.file, 'utf8');
  • 读取本地文件
    smoke.mjs:296
    assert.ok(r.backup && existsSync(r.backup), '未在写入前备份');
  • 读取本地文件
    smoke.mjs:301
    const before = readFileSync(memoryFile, 'utf8');
  • 删除本地文件递归
    smoke.mjs:374
    rmSync(dir, { recursive: true, force: true });
  • 写入本地文件
    smoke.mjs:380
    mkdirSync(scanSessDir, { recursive: true });
  • 写入本地文件
    smoke.mjs:402
    writeFileSync(
  • 删除本地文件递归
    smoke.mjs:489
    rmSync(dir, { recursive: true, force: true });
  • 写入本地文件
    smoke.mjs:495
    mkdirSync(memoryDir, { recursive: true });
  • 写入本地文件
    smoke.mjs:496
    writeFileSync(join(memoryDir, 'MEMORY.md'), '# 记忆\n\n- 一条记忆\n', 'utf8');
  • 写入本地文件
    smoke.mjs:497
    writeFileSync(join(memoryDir, 'MEMORY.pending.md'), '\u0000 坏内容 - [ ] 半行\n', 'utf8');
  • 删除本地文件递归
    smoke.mjs:503
    rmSync(dir, { recursive: true, force: true });
  • 删除本地文件递归
    smoke.mjs:618
    rmSync(tmp, { recursive: true, force: true });
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

功能亮点

  • 读写长期记忆
  • 可验证约束

给 DeepSeek Harness 提供基于文件的记忆,带可验证约束

README

由 DeepSeek 最新模型翻译生成
dsh-memory-file 给 DeepSeek Harness 的文件型长期记忆:每个会话开始注入你自己的 Markdown 记忆文件,并提供三个工具让智能体读写它。 这个插件的核心卖点不是功能,是可核实性。 它刻意做得很小,小到你能在几分钟内读完并自己确认它做了什么。 它不做什么(这是设计约束,可对照源码逐条核实) | 主张 | 怎么自己核实 | | 不读你的对话 | 全文唯一的订阅是 ctx.on('agent/pre-step'),且回调参数里没有解构 messages。搜索 ctx.on( 只有一处。 | | 不联网 | 全文没有 fetch / http / https / net / dns / tls / WebSocket。检查 import 语句:只有 node:fs、node:os、node:path,加两个 DSH 官方包。 | | 不执行命令 | 没有 child_process。 | | 不删你的文件 | 没有 rmSync / unlinkSync / renameSync / copyFileSync。 | | 只碰两个路径 | $DSH_HOME/memory/MEMORY.md(全局)与 <cwd>/.dsh/memory/MEMORY.md(工作区)。见 resolveMemoryPaths()。
展开完整文档(README 剩余 1 节)
dsh-memory-file

给 DeepSeek Harness 的文件型长期记忆:每个会话开始注入你自己的 Markdown 记忆文件,并提供三个工具让智能体读写它。

这个插件的核心卖点不是功能,是可核实性。 它刻意做得很小,小到你能在几分钟内读完并自己确认它做了什么。

它不做什么(这是设计约束,可对照源码逐条核实)

| 主张 | 怎么自己核实 |
| 不读你的对话 | 全文唯一的订阅是 ctx.on('agent/pre-step'),且回调参数里没有解构 messages。搜索 ctx.on( 只有一处。 |
| 不联网 | 全文没有 fetch / http / https / net / dns / tls / WebSocket。检查 import 语句:只有 node:fs、node:os、node:path,加两个 DSH 官方包。 |
| 不执行命令 | 没有 child_process。 |
| 不删你的文件 | 没有 rmSync / unlinkSync / renameSync / copyFileSync。 |
| 只碰两个路径 | $DSH_HOME/memory/MEMORY.md(全局)与 <cwd>/.dsh/memory/MEMORY.md(工作区)。见 resolveMemoryPaths()。 |

自动化核实:仓库里带 smoke.mjs,它把这五条写成了静态断言,跑一次就知道有没有人偷偷改过:

node smoke.mjs

它同时做行为测试(16 项)。任何一条审计断言失败,就不该再信任这个插件。

安装

Harness 桌面端(配置档由应用托管,不要用 dsh 命令行):

设置(Ctrl+,)→ 插件市场 → 自定义安装 → 填 github:wojiao42/dsh-memory-file

或从本地路径装(开发时):

插件市场 → 自定义安装 → 填本机绝对路径

注意:桌面端的配置档受应用独占管理,dsh plugin --profile desktop add ... 会被拒绝。
走 GUI 的市场面板是官方通道(inspect → installBundle)。

配置

- id: memory-file
name: 'dsh-memory-file'
config:
maxBytes: 16384 # 单次注入的字节上限,超出会被截断 dshHome: null # 覆盖 $DSH_HOME(一般不用) header: '以下是用户长期记忆文件的内容。' # 注入时用的引导语

用法

自动部分:每个会话的第一次 pre-step,插件读取记忆文件并注入。
同一会话只注入一次,不会重复烧 token。

工具部分(智能体可调用,你也可以让它调):

| 工具 | 作用 |
| memory_add | 追加一条事实到记忆文件(可指定 scope: global 写全局) |
| memory_recall | 在记忆文件里做纯文本关键词搜索(多词为「与」) |
| memory_list | 列出记忆文件位置、大小、修改时间——用来核对插件到底读了什么 |

记忆文件格式:就是普通 Markdown,没有私有语法。你可以随时手改。

记忆

- [2026-10-02] 喜欢简洁的回答,不要导语
- 孩子 2026 年 9 月升二年级

设计取舍(先说清,免得期待错位)

它不做自动提炼。 它不会读你的对话、不会自己总结出新事实。

这是故意的:一旦要「自动提炼」,插件就必须读你的全部对话,安全主张就从「可核实」变成「请信任我」。所以:

提炼(可选,跑在你自己的脚本里,明文可审) ↓ 写 Markdown 记忆文件 ↓ 读本插件(只注入 + 提供手动读写工具)

代价:需要你(或你本地的脚本)把值得记的东西写进那个 .md。
收益:这个插件看不到你的对话,而这一点你可以自己验证。

兼容

- 安装源:npm / github / 本地路径
- 平台:DSH 桌面端(host 侧插件;没有客户端界面,就不需要 dsh.client 声明)
- 依赖:仅 @deepseek-ai/dsh-llm(构造注入消息)与 @deepseek-ai/dsh-tools(注册工具),均为 Harness 官方包

已知边界

1. 注入发生在会话首次 pre-step。中途手改记忆文件,本会话不会生效(下个会话才读)。
2. 注入内容按 maxBytes 截断,且会转义 </system-reminder> 防止记忆内容闭合框架。
3. memory_recall 是字面匹配,不是语义检索。没搜到不代表没记过。
4. 没有自动去重。重复调用 memory_add 会写入重复行。

许可

MIT
预览分享卡片长什么样 ↓wojiao42/dsh-memory-file
分享 · DeepSeek Harness Hub
wojiao42/dsh-memory-file

用 Markdown 文件为智能体保存长期记忆并读写

这是你的仓库?认领条目

回到顶部