资讯 · 改写稿
把 AI 的记忆存成纯文本:一次查询少读一个数量级的 token
结论先给:让模型「记住一切」最贵的做法,是把整段历史塞回上下文。把记忆存成本地纯文本文件、按问题只取相关切片,能在不换模型的前提下,把每题要读的 token 降一个数量级。
这个项目把记忆拆成两半、放进同一种格式:.dai 存文档与会话历史,.cai 存一份代码调用图。两者都是磁盘上的纯文本文件,可以直接 grep 和纳入 git;最新一个版本把代码记忆并了进来。
数字
- 在 LongMemEval-S 上:GPT-4o 达 83%,Claude Fable 5 达 92%,且每题读取的 token 少约 10 倍。
- 同一模型不带记忆时,得分低 22.40 分。
- 代码图查询(例如「谁 import 了 httpx」)全部命中只花 22 个 token;把文件全读要 4,696 个,约 218 倍;对另一种基线 64,075 个,约 2,976 倍。
机制:为什么要分两半
只记对话的工具答不了「谁调用了这个函数」,只建代码图的工具不知道你当初为什么这么改。把两半放进同一层、再加一个路由决定问题归哪一支,模型读到的就是一小片和问题相关的切片,而不是整段历史或整个仓库。代码图用 tree-sitter 确定性地建,不调模型、不花 API 钱,覆盖十种编程语言。
本站计算:省下来的 token
本站计算——假设每题原本要把 5,000 个 token 的历史塞进上下文,一天问 200 次就是 100 万 token;按每题少读 10 倍算,降到约 10 万 token。用站内额度计算器换算,省下的是输入侧的大头——而输入恰恰是多数人账单里最重的部分。
别忽略口径
作者把每个数字连同逐题判词和校验清单一起发布,也标了适用条件:代码图只覆盖列出的那十种语言,评测结果依赖所用的模型与题目集。纯文本存下来不等于自动正确,关键是「按问题取切片」这一步;切片选错,省下的 token 换不回答错的代价。
把整段历史塞回上下文:这是最贵也最容易失控的做法。
以为存成文件就万事大吉:关键是按问题取切片,而不是全量读回。
忽略覆盖范围:代码图只覆盖它支持的若干语言。
不看评测口径:作者附了逐题判词与适用条件,别把分数当成通用保证。
自检清单
常见问题
为什么把记忆存成纯文本文件有用?
因为模型可以只读一小片和问题相关的切片,而不是把整段历史或整个仓库塞进上下文,从而大幅降低每次查询读取的 token。
这个项目在评测里表现如何?
来源称在 LongMemEval-S 上 GPT-4o 达 83%、Claude Fable 5 达 92%,每题少读约 10 倍 token,并比不带记忆的同模型高 22.40 分。
代码图查询能省多少?
来源给出一例:查「谁 import 了 httpx」全部命中只花 22 个 token,比把文件全读少约 218 倍,比另一种基线少约 2,976 倍。
有什么适用条件?
代码图只覆盖它支持的十种语言,评测依赖所用模型与题目集;作者附了逐题判词与校验清单,别把分数当成通用保证。
来源参考
以上为外部来源;本文为 RefHub 用自己的结构重写,事实以来源页为准,价格与政策会变,请回源核对当日。
下一步:想省 API 账单,读 LLM 成本 5 步;想给 Agent 划权限边界,读 执行容器。