最近看到一个很有深度的帖子,讲的是Agent记忆工程中Memory和Graphs的核心区别。
很多人觉得Memory已经够用了,但其实它的上限来得很安静:
它存储发生了什么,但不存储该怎么做。
跑了六次之后,你的文件有50行,模型在做任何事情之前都要重新加载所有50行。
Graph工程通过改变Memory的本质来解决这个问题:不是一个存储地方,而是一条反向运行的边。
你需要两者,这里有一句话解决了整个困惑:
存储保留发生了什么,边保留该怎么做。
具体区别:
- 存储随每次运行增长,每一行在下一次运行前都会重新加载
- 边携带一条派生规则,规则替代了产生它的运行
流程是:Prompts → Context → Harness → Loops → Graphs
转录消失,约束保留。
而且约束更小,因为"适配器精确保留关键字参数"比证明它的运行短400个token。
同样的四个块适用于任何你可以分成车道的东西。
关键点:
- 什么值得保留:输出不是记忆。"移植了工具切片,第一次通过就变绿了"告诉下一次运行 nothing 它可以行动。你从中派生的规则才是。
- 扩展前要知道一件事:你写下的不是回来的东西。
- 根规则文件和自动记忆从磁盘重新注入,它们每次都会完整回来
- 路径范围的规则存在于消息历史中,它们会被总结掉,直到再次读取匹配文件才会返回
所以必须持久化的规则不能是路径范围的,移到根目录并支付始终加载的成本,或者接受它在任何长会话中都是建议性的。
- 最容易踩的坑:一个从未删除过一行的内存文件不是内存,它是对你将进行的每一次运行的税,没有人会读回来。
项目地址:graphrun.pages.dev
对于想让Agent更好地管理记忆的同学来说,这个帖子值得研究一下。
16 浏览 0 评论
0 反应












