TOMC Memory 0.3.0 更新说明
English | 简体中文 · 2026-10-30 · 发布标签 v0.3.0-preview.1
0.3.0 主要解决"敢不敢用":默认少存东西,能一键清空,更稳地交出最新值,也更容易上手试。论文用的编译核心没有改。
你会注意到的变化
隐私默认值
- MCP 结果默认不再保存。 0.2.0–0.2.1 里,
prepare_context和recall_memory每次都会把结果和任务存成本地快照。现在默认什么都不存,想存要自己打开:tomc settings --save-mcp-results on,同时"保存上下文记录"开关也要开着。没保存时,返回里会写context_record.status = "disabled"。 - 保存的内容会遮住密钥。 API key、Bearer token、私钥、URL 里的密码、
KEY=value这类密钥,写入前都换成[REDACTED]。 - 保存的内容会过期。 默认 30 天后删除(
tomc settings --retention-days N,1 到 3650)。0.2.x 存下的快照,会在下次启动 MCP 服务或网关时统一遮一次密钥,并按时间清理。 - 关掉记录就真的不写。 "保存上下文记录"关闭时,Windows 网关的 Claude 路径只在内存里保留重放数据。
- 文件只有你自己能读。 数据库和安装器的备份都设成仅本人可读(文件 0600,文件夹 0700),删除的数据会在磁盘上覆盖掉。
- 桌面小猫第一次运行时会显示一次隐私说明。
删除和还原
forget_memory现在会把从这个笔记本准备出来的上下文一起删掉。- 全部清空:MCP 工具
erase_all_memory(要传confirm="ERASE ALL")、tomc erase-all --yes,或者上下文库里的 清空全部记录… 按钮。 tomc restore-direct把 Codex 和 Claude Code 改回直接连接各自的服务商。TOMC Memory 没在运行也能用,只删 TOMC 自己加的设置。scripts/install_request_gateway.py、scripts/install_windows_companion.py也有--restore-direct,Windows 开始菜单里有 TOMC Memory - Restore direct connection 快捷方式。- Codex 改过
config.toml之后,还原和卸载不会再失败;运行两次也没问题。
更常拿到最新值
- 如果后面某一行可能改过某个值,这条记录会显示成
[STATE?] key = value (later: uN)(或PATH?),后面紧跟那一行原文,方便你或模型核对。 - 能读懂更多写法:
key: value、列表项、Update:和说话人前缀、用;分开的多个赋值、全角=/:、中文等 Unicode 字段名。代码块、文件头、比较式和"如果你想要……可以这样写"这类假设例子会跳过。 - 问当前值和计数时,同分的行优先留后面的;预算里还专门留一小块给最新提到问题关键词或宣布改动的行。
- 特别长的一行会按句子拆开(
u12.1、u12.2…),一段话不会再吃掉整个预算。 - 路由修正:account、discount、country 不再被当成计数;concurrent 不再被当成 current;能认出"现在、目前、改成"等中文状态词;"… now?" 会被当成问当前状态。
- 离线旧值测评(
python benchmarks/stale/run.py,每种预算 144 题,不调用模型),准备好的上下文里带着最新值的题目占比:
| 预算 | 10% | 20% | 40% | 60% | 80% | 默认 |
|---|---|---|---|---|---|---|
| v0.2.1 | 51% | 51% | 51% | 53% | 59% | 58% |
| v0.3.0 | 85% | 88% | 98% | 100% | 100% | 100% |
剩下没过的,都是 10–40% 预算下、没说改的是什么的改口。完整表格和注意事项
试一下 TOMC Memory
对助手说 "试一下 TOMC Memory"(或 "Try TOMC Memory"),在 Claude Code 里也可以运行 /tomc-memory:try,终端里运行 tomc try。它在内存里处理一份内置的 120 天项目聊天,给出一张小卡片:处理前后的 token 数、找到的值和所在行号、下一步怎么用。什么都不保存。新增 MCP 工具 try_tomc 和 MCP 提示 quickstart;Codex 插件的第一条推荐提示也是它。
tomc doctor
tomc doctor(或加 --json)检查 Python、MCP 支持、数据库、uv,用临时数据库真的启动一次服务并数工具,再看哪些客户端已经配好。没通过的每一项都会给出修法。
tomc setup --write
tomc setup --client <claude-desktop|claude-code|cursor|codex|workbuddy> --write 把 TOMC Memory 写进该客户端的配置文件。写之前先做带时间戳的备份,保留你原有的其他服务和文件权限,重复运行也没问题。TRAE 或项目级配置用 --config 路径。--client claude-code 不加 --write 时会打印 claude mcp add … 命令。Cursor 的 JSON 现在带 "type": "stdio"。
Codex 安装器现在会一次列出所有缺的前提条件,给出安装 uv 的几种方法(包括国内镜像),运行时固定用 Python 3.12,装完自己启动一次服务检查(--no-verify 跳过)。
工具更严格,回答更清楚
- 共 12 个工具:
try_tomc、prepare_context、remember_memory、recall_memory、get_status、list_contexts、get_context、make_handoff、get_usage_stats、list_memories、forget_memory、erase_all_memory。 - 参数检查更严:
budget必须是正整数,宿主和统计周期只能从固定选项里选,limit是 1 到 1000,不认识的参数直接报错。 - 每个返回都以一行
summary开头,诊断信息挪到details里。输入很短时会说"Short enough to use as is",不再说"省了 0 token"。 - 给模型的服务说明缩短了一半,不再让模型对 1 万 token 以下的历史跳过 TOMC。
服务进程
客户端断开连接或父进程退出时,MCP 服务会跟着退出,不会留下孤儿进程。在终端里手动运行 tomc mcp 会打印一行提示然后退出。
没有变的
- 论文用的编译核心(
src/tomc/_vendor/)没动,BEAM 和 RULER 还是原来存档的结果。 - Codex 和 Claude Code 的实测数字是在 0.1.0 预览版上测的,0.3.0 没有用模型重测。0.3.0 准备出来的上下文不一样了,请把那些数字当成旧版本的结果。证据页
- 核心包仍然要求 Python 3.10+,没有第三方依赖。仍然没有发布到 PyPI。
- 插件仍然不会让助手当前的对话变短。
升级须知
- 旧的 MCP 快照。 如果你通过 MCP 用过 0.2.0 或 0.2.1,每次准备和召回的结果都存下来了。升级后它们会被遮一次密钥,超过 30 天的会删掉。想马上全部删除:
tomc erase-all --yes(笔记本也会一起删)。想像以前一样继续保存:tomc settings --save-mcp-results on。 - 设置。
tomc settings显示当前设置,用--save-mcp-results on|off、--save-contexts on|off、--retention-days N修改。 - 读取 MCP 返回的脚本。
selected_method、token 估算、warnings、usage、preparation_id、host、session_id等字段挪到了details里。memory、status、context_reduction、context_record、delivery、budget、max_chars还在顶层。传了不认识的参数现在会报错。 - 输出大小。 自适应模式的下限(768 token 或预算的 25%)现在一定会填满,所以输出可能比 0.2.1 大。日文、韩文改成按字计数,预算和显示的节省量会变。
- 笔记本名称不区分大小写:
Proj会追加到已有的proj。 - 插件。 Claude Code:用
/plugin更新插件,新开会话。Codex:下载 0.3.0 的 ZIP,重新运行安装器。Claude Desktop:安装 0.3.0 的.mcpb。然后说"试一下 TOMC Memory"。
已知限制
- 用普通说法写的更新只作为原文保留,不会变成状态记录,预算小的时候仍可能丢。
- 用文字否定的关系("Alice no longer owns repo1")会标成
PATH?,不会被删掉。 - 计数用的分词只支持英文(问题里点名的中文词会直接按字符串计数);中文任务不做自适应缩减。
- 用
remember_memory存的笔记和导入的包按原样保存,不遮密钥。 - Windows 网关还没有客户端认证。见 SECURITY.md。
本次发布的检查
python -m pytest -q:1109 通过,2 跳过。ruff check 和 ruff format --check:通过。make reproduce:离线检查全部通过,git status 不变。可复现性