toon-memory由 TOON 驱动

面向 AI 代理的连续性层

你的代理的知识会跨会话延续 —— 离线、私密、零 LLM。

~/.toon-memory

$npm install -g toon-memory

为什么代理会在会话之间丢失上下文?

AI 编程代理每次会话都从失忆开始

上下文每天重置

每次新会话,你的代理都会忘记昨天学到的决策、模式和 bug。你需要一遍又一遍地重新解释相同的上下文。

在历史中搜寻

没有记忆时,代理需要搜索 git 历史并重新读取文件来重建为什么某事以特定方式构建 — 消耗 token 和时间。

复制粘贴笔记

开发者在聊天之间手动粘贴上下文。这种方式脆弱、容易过时,而且永远无法传递到下一次自主运行中。

toon-memory 为你的代理提供持久的、可查询的记忆 — 让上下文在每个会话中自动存活。

认识 toon-memory

你编码工作流的连续性层

记忆存储事实,而连续性层保存你项目的工作方式 — 让每个会话都从上次结束的地方开始。

决策

每个选择背后的"为什么" — 框架、库、权衡。在重要时刻被召回,不再重新争论。

📏

约定

你的团队认可的命名、结构和风格规则。无需再次告知即可遵守。

上下文

不存于任何单一文件中的架构、环境和运维知识。

🤝

共享理解

项目知识和团队决策可供每个代理和每次会话使用。

toon-memory 引入了连续性层的概念:一个轻量系统,在 AI 会话之间保存项目知识、决策和上下文 — 无需云服务或重型基础设施。

为什么开发者选择 toon-memory

私有、轻量、通用

让项目记忆可以放心保留的保障。

隐私优先

  • 100% 本地 — 无云、无服务器、无遥测
  • 可选 AES-256-GCM 加密
  • 你拥有记忆文件,就像任何源文件

轻量

  • 原生 TOON 格式 — 比 JSON 少 22% 的 token
  • 零依赖,任何 Node.js 18+ 都可运行
  • 确定性逻辑 — 无 LLM 调用、无 API 密钥
🛰️

通用

  • 适用于 15+ 个代理:Claude Code、Codex、Gemini CLI、Cursor、OpenCode 等
  • 标准 MCP — 更换代理而不丢失上下文
  • 每个团队成员共享的项目记忆

同一个项目。两次会话。

你的代理记住什么会改变结果。

没有 toon-memory
会话 1
使用 Sequelize。
好的。
保留在会话上下文中 — 会累积 token。
会话 2
我们的 ORM 是什么?
会话之间没有记忆。
我不知道。
使用 toon-memory
会话 1
使用 Sequelize。
$ memory_remember({ category: "decision", key: "orm:sequelize", content: "使用 Sequelize 作为 ORM" })
好的。
已保存到记忆。
会话 2
我们的 ORM 是什么?
从记忆回想。
你在使用 Sequelize。

基准测试

实测而非假设

在真实会话中测得的 token 与工具调用节省

工作流节省
~90%

更少令牌(自动加载)

25 → 5
80%

更少工具调用

工作流节省
68%

更少令牌(紧凑召回)

工作流节省
58%

更少令牌(系统提示)

工作流节省
14%

更少令牌(批量压缩)

TOON 格式

TOON 格式专为 LLM 设计,而非人类

指标
比 JSON 减少 token22.5%
单条条目30.5%
解析更快1.3x

JSON 1097TOON 850

使用 gpt-tokenizer(cl100k_base)在 16 条代表性记忆条目上测量,比较实际磁盘上的 TOON 格式与紧凑 JSON。可复现:npm run bench

排序质量

在 187 条真实条目冻结快照上的 LongMemEval 风格检索 — 42 条 gold queries

指标线性RRF统一
R@5· gold 条目在前 5 名0.6430.8610.829
nDCG@5· 排序质量0.6540.7640.739
MRR@5· 正确命中的位置0.7760.7880.760
97.6% 的查询可从前 5 名得到答案

真实 data.toon 快照(187 条,2026-08-01),today 确定性、只读、无代码复刻;排除 2 条 priority 元条目。可复现:npm run bench:retrieval

自动加载:OpenCode 插件仅注入与文件相关的记忆,而不是转储所有条目。完整会话:启动 → 调试 → 实现 → 审查 → 完成。可复现:npm run bench:fullnpm run bench:primernpm run bench:compress-all

它是如何工作的?

从失忆到记忆的四个步骤

1

安装

一条命令。15+ 个代理零配置。

npm install -g toon-memory
2

记忆

在工作时保存决策、模式和 bug — 支持自动标签推断和可选 TTL。

memory_remember({
  category: "decision",
  key: "use-zod",
  content: "Use Zod for validation",
  file: "src/types.ts"
})
3

召回

你的代理按需查询记忆 — 无需重复解释,不浪费 token。

memory_recall({ query: "validation" })
// [decision] use-zod (a1b2c3d4)
//   Use Zod for validation — src/types.ts
4

上下文

一次调用为你的代理提供全部信息:项目、git、记忆、会话。减少 80% 的工具调用。

context_generate({})
// # Project Briefing (full)
// ## Project — toon-memory v4.3.0
// ## Git — branch: main, 3 commits
// ## Memory — 26 entries, 18 edges
// ## Sessions — 2 active

多代理

支持所有主流 AI 编程代理。OpenCode、VS Code、Claude、Cursor、Windsurf、Cline、Continue — 零配置。

OpenCodeClaudeCursor

TOON 格式

比 JSON 减少 22% 的 token(实测)。自定义编码专为 LLM 理解和 token 效率设计。

减少 22% token解析速度提升 1.3x

智能召回

基于图的召回按 BM25 相关性和图中心性重新排序(中心节点即使不包含查询词也会浮现)。按跳数衰减保持远距离上下文较低。Token 高效的 `compact` 模式返回数字索引、片段截断的结果。

BM25中心性compact

智能记忆

从内置词汇表和项目依赖自动推断标签、质量评分、置信度评分、合并去重、相关条目建议、记忆 diff,以及可配置的临时上下文 TTL。

自动标签质量评分合并去重

加密

AES-256-GCM 保护敏感数据。自动归档旧条目。Watch 模式每隔 N 分钟自动备份。

AES-256-GCM自动备份

你的记忆,以图谱形式

将决策与规格、bug 和架构连接起来。召回返回正确的上下文 — 不仅仅是关键词匹配。

  • 使用 `links` 或 `[[key]]` 引用连接条目 — 无需嵌入,无需 LLM
  • `memory_recall({ mode: "graph" })` 展开关系感知的子图
standard1097 tokens
memory_recall({ query: "riesgo", mode: "graph" })
[decision] risk-engine-priority (a1b2c3d4)
  The engine prioritizes risk over speed.
  File: spec.md:10 | Tags: risk;spec | Date: 2026-07-01
  links: engine-arch
compact: true~520 tokens
memory_recall({ query: "riesgo", mode: "graph", compact: true })
[1] decision/risk-engine-priority
  The engine prioritizes risk over speed.
  tags: risk;spec · edges: ->2, ->3
查看器内:
搜索路径查找导出 PNG / SVG深色与浅色主题

记忆图谱查看器

将你的记忆可视化成一个交互式力导向图。一目了然看到条目、连接、类别和访问模式。

  • CLI 查看器:npx toon-memory viewer 启动 HTTP 服务器
  • 内联 MCP Apps 查看器:调用 memory_visualize() 直接在兼容 MCP Apps 的主机中渲染图 — 无需服务器
  • 悬停节点查看包含内容预览和质量分数的 tooltips
  • 点击选择并居中;双击打开详情
  • 搜索过滤条目并以脉动光晕高亮匹配节点
  • 路径查找器查找并高亮两个条目之间的最短连接
  • 可调物理、深色/浅色主题、PNG/SVG 导出

记忆工具集

你的代理记忆、召回和推理所需的一切

核心记忆

memory_remember

保存到记忆

存储决策、模式、bug、知识或 warning(负面"不要这样做"记忆,召回时加成) — 跨会话持久化,自动质量评分。

memory_recall

搜索记忆

在读取文件之前查询知识图谱。质量加权结果。支持路径范围(path_scope)和预算控制(tiny/normal/deep)。explain: true 为每条结果追加原因行;budget_tokens 按估算 token 数限制输出。

memory_stats

记忆统计

显示项目记忆的统计信息,包括质量分布、最常访问的条目以及命中率/重复率/废弃率指标。

memory_visualize

打开图谱查看器

在兼容 MCP Apps 的主机中内联渲染交互式记忆图谱。力导向图、统计、时间线、详情面板。

搜索与智能

memory_smart_recall

智能召回

统一搜索,在一次调用中结合 BM25 + 图中心性 + 质量评分 + 新鲜度。支持 explain: true(每条结果的原因)和 budget_tokens(输出上限)。

memory_consolidate

合并去重

通过 mode 参数以确定性方式去重相同内容、合并近似重复(Jaccard >50%)、批量移除低质量条目或淘汰旧库版本条目(mode: "versions") — 无 LLM。

上下文简报

context_generate

完整项目简报

一次调用的简报:项目结构 + git 状态 + 记忆 + 会话。替代 6 次手动调用。节省 93% token。

context_health

健康审计

孤立链接、重复项、损坏的文件引用、过期 TTL、过时会话。评分 0–100。

压缩

memory_compress

LLM 压缩

LLM 驱动的两步压缩:摘要 + 覆盖。如果可用则使用 Anthropic/OpenAI CLI。

memory_primer

上下文引导

一次调用的上下文引导:主要记忆 + 分类 + 会话文件变化。会话开始时自动注入。

会话管理

memory_sessions

会话

显示活跃的代理会话并检测软冲突。

memory_merge_sessions

合并会话

合并文件的并行会话中的观察。去重并自动提升。

同步与安全

memory_encrypt

启用加密

使用自动生成密钥的 AES-256-GCM 加密。

memory_backup

备份记忆

创建带时间戳的记忆文件备份。自动修剪至最近 10 条。

资源:memory-entriesmemory-statsmemory-summariesmemory-viewer (ui://viewer)

支持 15+ 个 AI 编程代理

零配置 — toon-memory 自动检测并配置每个代理

OpenCodeOpenCode
VS Code / CopilotVS Code / Copilot
ClaudeClaude
CursorCursor
WindsurfWindsurf
ClineCline
ContinueContinue
CodexCodex
GeminiGemini
ZedZed
AntigravityAntigravity
AiderAider
KiloCodeKiloCode
OpenClawOpenClaw
KiroKiro

常见问题

关于为你的代理提供记忆你需要知道的一切

什么是 toon-memory?

面向 AI 编程代理的持久记忆层,包含 35 个 MCP 工具。它以紧凑的 TOON 格式存储决策、模式、bug 和上下文,让你的代理在会话之间记住一切 — 每次会话减少 80% 的工具调用。

支持哪些代理?

OpenCode、VS Code、Claude Code、Cursor、Windsurf、Cline、Continue、Codex、Gemini、Zed、Antigravity、Aider、KiloCode、OpenClaw 和 Kiro — 通过 MCP 服务器零配置支持 15+ 个代理。

我的数据如何存储?

条目写入本地 TOON 文件(一种 token 高效的格式,比 JSON 小约 22%,实测)。你拥有该文件,可以像任何其他源文件一样提交、diff 或备份。

我的记忆是加密的吗?

是的。使用 memory_encrypt 工具启用加密,通过 AES-256-GCM 保护敏感条目。密钥自动生成并保持在本地。

它能离线工作吗?

完全可以。toon-memory 在本地运行,无需外部服务或账户。Watch 模式甚至可以按计划自动创建备份。

多个代理可以共享相同的记忆吗?

可以。因为记忆存储在项目中的普通文件中,为该项目配置的每个代理都读写相同的上下文。

如何备份我的记忆?

使用 watch 模式进行定时自动备份,或者直接将 TOON 文件提交到 git。旧条目在 30 天后自动归档以保持整洁。

它是免费和开源的吗?

是的。toon-memory 采用 MIT 许可证,免费使用。源代码在 GitHub 上,包发布在 npm 上。

它与代理内置记忆有什么不同?

内置记忆通常是临时的或特定于供应商的。toon-memory 提供一个可移植、可 diff、加密的记忆文件,你完全控制,跨代理和项目使用。

我可以设置临时上下文过期吗?

可以。在任何条目上设置 TTL(例如 ttl: "7d"),它会自动过期 — 非常适合冲刺计划、截止日期和时间敏感的笔记。

什么是智能召回?

memory_smart_recall 在一次调用中结合 BM25 关键词搜索、图中心性、质量评分和新鲜度衰减 — 无需手动编排的最佳排名策略。

质量评分是如何工作的?

每条条目自动获得质量评分 (0-1),基于标签覆盖率、链接丰富度、内容详细度、新鲜度和特定度。高质量条目在召回结果中首先出现。

如果我两次保存相同的键会怎样?

系统合并属性而非替换:标签和链接取并集,质量和置信度取最大值,日期更新。你的条目随时间变得更丰富。

什么是记忆压缩?

memory_compress 允许 LLM 将相关条目摘要为简洁的总结。memory_consolidate(mode: "low-quality") 可确定性地移除低质量条目(无标签、短内容)— 无需 LLM。两者都减少令牌数量。

可以在机器之间同步记忆吗?

可以。使用 memory_export_gist 将条目推送到 GitHub Gist,然后在另一台机器上使用 memory_import_gist。条目会自动合并(标签并集、最大置信度)。

准备好为你的代理带来连续性了吗?

几秒内完成安装,再也不必重新解释你的项目。