持久耐用 纯文字儲存於磁碟 |
一搜即得 IDF 三路檢索 |
證據鏈強制 有據可查 |
自動注入 每次會話 ≤2KB |
一条命令 24 条命令 + 插件 |
| 层 | 选型 | 光芒 |
|---|---|---|
| 运行时 | Node.js ≥ 18 | 🟢 零依赖 · 零服务 · 零 API 成本 |
| 存储 | .memory/ 纯 Markdown | 🧾 人可读 · 可 diff · git 友好 |
| 索引 | MEMORY.md ≤ 60 行 / 2KB | 📥 硬顶封顶,被挤出的条目列在尾注 |
| 规模 | 最多 1000 条 | ⚡ 注入索引仍 2KB;搜索靠倒排索引扩展 |
| 检索 | IDF + 中文 n-gram + aliases,两阶段重排 | 🎯 不上向量库的多路检索 |
| 交付 | AGENTS.md 注入段 + Harness 插件 + 设置卡 | 🔌 一张引擎(mem-core.mjs)两张脸 |
| 安全 | 审批 · 密钥/PII 扫描 · Jaccard 闸 | 🛡 四层防御(OWASP ASI06 有意识) |
| 质量 | 78 测试 · 发行冒烟 · CI | 🧪 每次改动都先过检查再发布 |
[n] [--two-stage]` | IDF 三路检索带片段;`--two-stage` 按可信度/新鲜度/反馈重排 | | `show` | 打印单条全文 | | `store [--overwrite] [--force] [--model]` | 校验入库(密钥/PII/重复/证据全闸) | | `forget ` | 归档,永不硬删 | | `review ` | 刷复核日期,review +90 天 | | `draft [主题]` | 生成四段骨架草稿(落到 `drafts/`) | | `drafts` | 列出待审批草稿 | | `approve <草稿>` | 批准入库(走完整 store 闸) | | `reject <草稿> [原因]` | 拒绝草稿——归档,永不硬删 | | `write-mode [approval\|auto-draft\|auto-low-risk\|off]` | 读 / 设写入模式(模型受限,人类永不受限) | | `explain ` | 一条为什么可信 —— 可信度、状态、证据、关系 | | `verify [name\|--all]` | 跑验证配方(仅白名单,绝非任意 shell) | | `feedback <采用,csv> [原因]` | 记录这次召回被用在哪;后续召回会给被采用的加权 | | `map [name]` | 文本图谱 —— 六段:取代链 · 因果链 · 冲突对 · 过期节点 · 复核时间线 · 根因归组 | | `gather[预算]` | 证据包按可信度分层 —— **绝不生成结论** | | `conflicts` | 列出未决 `conflictsWith` 对 | | `resolve <败方> --prefer <胜方> --reason <理由>` | 裁决冲突 —— 败方派生为 `stale`,双方都留 | | `global-sync` | 跨工作区镜像 `scope: global` 条目 | | `stats [天数]` | 检索埋点(命中率);非整数回落 7 | | `doctor` | 全量体检 —— **绿 = exit 0 = 零 findings**(notes 仅信息级) | ### Harness 插件 | 界面 | 作用 | |---|---| | 提示词段 | 教训索引 ≤2KB,每回合注入,失败降级 | | `mem_recall[limit]` | 教训本 ∪ 会话全文,合并排序 | | `mem_save ` | 写入一条教训——按写入模式放行(`approval` 必问人) | | `/memory <子命令>` | 16 个维护子命令——亲手敲一条**就是**批准 | | 设置卡 | 只读状态 · 可信度 · 命中率 · 搜索 | --- ## 🏗️ 架构:一张引擎,两张脸 ``` ┌───────────────────────────────────────────┐ │ .memory/ (数据) │ │ *.md 条目 · MEMORY.md 索引 · 埋点 │ └────────────────────┬──────────────────────┘ │ tools/mem.mjs (引擎,24 条命令) │ tools/mem-core.mjs (门面) promptIndexText · formatRecall · saveAndSync ┌────┴─────┐ │ │ CLI 脸 ─────┘ └──── plugin/dsh-memory (AGENTS.md 注入段) (Harness:提示词段 mem_recall · mem_save · /memory · 设置卡) ``` 两条铁律在两张脸上同样成立:预算硬顶、失败降级、人工批准写入。 --- ## 📂 仓库解剖 ``` cross-session-memory/ ├── README.md · README.zh-CN.md ├── LICENSE · CHANGELOG.md · .gitignore ├── tools/ │ ├── mem.mjs # 24 条命令的引擎(单文件,零依赖) │ └── mem-core.mjs # 共享门面——插件与 CLI 的单一入口 ├── plugin/dsh-memory/ # DeepSeek Harness 插件包(插件版) │ ├── index.js # 提示词注入 · mem_recall · mem_save · /memory │ ├── client.js # 只读设置卡(settings.section) │ ├── cordis.patch.yml # loader 行 + 配置(memoryCorePath、maxHits) │ ├── locale/ # 中英展示元数据 │ └── README.md # 安装 · 依赖物化 · 验收 ├── install/ │ ├── setup.mjs # 一键引导 │ └── smoke.mjs # 端到端冒烟测试 ├── templates/ # AGENTS.md.example + entry.example.md ├── docs/ # DESIGN · COMMANDS · RESTORE · ATTRIBUTION ├── examples/ # 真实脱敏教训样例 └── assets/fonts/ # 自托管 OFL 字体 + 许可原文 ``` --- ## 🔐 安全与信任模型 | 层 | 机制 | 防什么 | |---|---|---| | 1️⃣ 溯源 | `originSessionId` + `created/verified` 戳 | 无出处的断言 | | 2️⃣ 审批 | 人工同意 + `store` 闸 + 写入模式(`approval` **每次**都问) | 代理过度热心地写 | | 3️⃣ 检出 | 密钥模式 · PII 闸 · Jaccard ≥0.6 闸 · 证据链 | 泄密、个人信息、重复、谣言 | | 4️⃣ 完整性 | git 回滚(建议本地库) | 其他一切 | > 记忆投毒是公认的攻击类别(OWASP **ASI06**),自动写入型记忆系统正是靶子。 > 默认写入模式**不经人手不写一字**——插件里 `mem_save` **每次**调用都返回 `ask`, > 审批策略为 `never` 时干脆拒之门外,而设置卡**根本没有任何写按钮**。 --- ## 🗺 路线图 - 🔌 **当前(0.5.x)** —— 以上功能均已发布;只做维护与打磨。 - 🌱 **更远** —— 可选多本联邦 · 更多中文会话检索兜底 · 可选 SQLite FTS5 召回(不进零依赖默认路径)。 - 🚫 **不做** —— 向量库 · 网关 · 静默自动写入。触发条件见 `docs/DESIGN.md`。 --- ## 🤝 参与贡献 欢迎 PR——尤其是**新的教训包**(记得脱敏!)。提交前跑 `node install/smoke.mjs` 全绿。 所有代码必须保持**零依赖**。 --- ## ⚖️ 法律与署名 - **非官方项目。** 与任何具名产品、公司或组织(包括 DeepSeek、Anthropic、OpenAI、Mem0、Zep、 Letta、Cognee、腾讯云、OWASP、SIL)无隶属、无赞助、无背书关系。产品名称仅作事实性指称使用。 - **观点归我们。** 比较性陈述反映的是特定时点的公开资料与个人体验——决策前请对照厂商最新文档核实。 - **字体:** Orbitron、Space Grotesk、IBM Plex Mono 以 **SIL Open Font License 1.1** 自托管捆绑—— 许可全文见 [`assets/fonts/licenses/`](./assets/fonts/licenses/)。中文用系统字体(不捆绑)。 - **无担保。** 软件按 MIT 许可原样提供——见 [`LICENSE`](./LICENSE)。---``` ╔═══════════════════════════════════════════════════════════╗ ║ ★ L E S S O N S L I V E O N D I S K ★ ║ ║ Evidence in, garbage out — never. ║ ║ 错题本 · lesson book ║ ╚═══════════════════════════════════════════════════════════╝ ``` _用 📕 + 🛠 + 零依赖制成 —— **MIT** © 2026 Agent Lesson Book contributors_