理解 LLM 无状态性与 Agent 内存设计
阐释 LLM 无状态本质及其对 Agent 记忆系统设计的影响,是构建持久化 Agent 必须理解的基础概念。
阐释 LLM 无状态本质及其对 Agent 记忆系统设计的影响,是构建持久化 Agent 必须理解的基础概念。
有一句话,大多数 AI Agent 教程都会一笔带过,但它恰恰解释了为什么构建可靠、可长期运行的 Agent 如此困难:
在两次 API 调用之间,模型什么都不知道。
你见过的每一种“记忆功能”——ChatGPT 的 memory、Claude 的 Projects、LangMem、Mem0——本质上都是由人编写的系统:它们先准备好文本,再在调用模型之前将其注入 context window。模型本身并没有持久化状态。
如果 LLM 是无状态的,那么一个长期运行的 Agent,其智能完全存在于 harness 中——由它负责管理哪些内容会被注入,哪些内容会被丢弃。
这不是一种限制,而是一项设计原则。
研究社区已经开始明确地以这种方式看待它:
MemGPT(2023)提出了“LLM 即操作系统”的类比:模型是 CPU,外部记忆是磁盘,而 harness 负责管理查询时哪些页面位于 RAM 中。
MemGPT(2023)提出了“LLM 即操作系统”的类比:模型是 CPU,外部记忆是磁盘,而 harness 负责管理查询时哪些页面位于 RAM 中。
StateFlow(2024)更进一步:Agent 是一个 Finite State Machine。LLM 只会在状态转换时被调用,而不负责保存状态本身。
StateFlow(2024)更进一步:Agent 是一个 Finite State Machine。LLM 只会在状态转换时被调用,而不负责保存状态本身。
ClawVM(2026)将这一理念形式化为虚拟内存层:harness 会在每个生命周期边界强制执行确定性、经过验证的写回。LLM 输出原始思考,而 harness 决定提交哪些内容。
ClawVM(2026)将这一理念形式化为虚拟内存层:harness 会在每个生命周期边界强制执行确定性、经过验证的写回。LLM 输出原始思考,而 harness 决定提交哪些内容。
如果 LLM 只是一个处理单元,那么 Agent 的记忆质量完全取决于 harness 的质量——也就是那个负责决定存储哪些事实、这些事实的有效期有多长,以及何时应被新事实取代的系统。
如果 harness 只是存储扁平化的 embeddings,并通过相似度进行检索,你得到的只会是一个表现平庸的 Agent。如果 harness 存储的是时态断言,并以确定性的方式解决冲突,你得到的才会是一个可靠的 Agent。
时态断言,就是一个具有生命周期的事实:
subject: user_project
predicate: uses_language
object: Python
valid_from: 2025-01-10
valid_to: 2025-06-15 ← closed when user switched to TypeScript
存储它的是 harness,而不是 LLM。一旦设置了 valid_to,LLM 就再也不会看到这条旧事实。当前有效状态就是 WHERE valid_to IS NULL。
这正是 Smriti 背后的模型——一个开源的时态记忆引擎,专门用于为无状态 LLM 提供可靠的 harness。
LLM 不是 Agent,harness 才是 Agent。把 harness 构建好。
MIT license。基于 PostgreSQL。开源。
如需采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。