Context(上下文)和 Memory(记忆)是本质不同的东西:上下文告诉 Agent 现在有什么,记忆告诉它曾经学到了什么。当前 Agent 在长周期任务中会遗忘早期架构决策,且无法自动处理记忆冲突。
AI 智能体在使用工具、处理文档和完成多步骤任务方面越来越强。
但有一个问题——每次你长时间使用一个智能体时,这个问题就会变得更加明显:
问题不在于模型无法处理足够的 token。问题在于 上下文(context)和记忆(memory)是不同的东西。
上下文告诉智能体此刻有什么信息可用。
记忆告诉智能体它之前学到了什么。
这两者很容易被混淆。
想象一个在一个大型 Python 应用上工作的编码智能体。
周一,开发者告诉它:
我们有意不使用 Redis,因为系统需要保持为单一进程可部署。
周五,智能体遇到一个性能问题,然后建议使用 Redis。
原始声明已经不在当前的上下文里了。
模型不一定错了。它只是不记得这个架构约束。
一个记忆系统应该在相关信息变得重要时能够检索到它。
但即便如此也还不够。
假设开发者后来改变了架构:
我们现在使用 Redis 来做分布式部署。
记忆系统现在有两条陈述:
一个简陋的记忆系统可能会两条都检索出来。
向量数据库可能会返回嵌入向量最近的那条。
LLM 可能会决定哪条陈述听起来更可信。
这些方法都不能可靠地回答一个简单的问题:
哪条陈述是现在为真的?
这就是时间记忆变得重要的地方。
Memvara 的方法基于两条独立的时间轴:一个事实何时为真,以及系统何时知道或记录了它。

有一件事为真的时间。
还有你得知它的时间。
这两者不一定相同。
例如,一个客户可能在 1 月 1 日搬到了柏林,而你的智能体直到 2 月 10 日才知道这次搬家。
这是两个不同的时间戳。
一旦你将它们分别建模,历史问题就变得可能了:
这是不同的问题。
一个智能体不应该仅仅返回:
Berlin
应该要能够理解为什么柏林是当前的答案。
Memvara 暴露了来源(provenance)和历史检索能力,使记忆可以被审查,而不是被当作一堆不透明的检索文本。

有趣的问题不是:
我们如何存储更多文本?
而是:
我们如何维护一个关于世界的、可信的、不断演化的状态?
这需要一些属性,例如:
这正是 Memvara 旨在解决的问题。
目标不是给智能体一堆巨大的历史对话。
目标是给它一个能够回答以下问题的记忆系统:
上下文给智能体信息。
记忆给它连续性。