技术深度解析
Sawtooth的架构是对当前智能体设计中主流单一记忆存储的有意背离。其核心创新在于将记忆分离为三个异步层级,每个层级拥有独立的生命周期、存储格式和检索机制。
短期记忆(Short-Term Memory, STM) 捕获最近的交互——对话的最后N轮或工具调用的即时输出。它存储在一个高速循环缓冲区中,通常位于内存内,具有可配置的大小(默认每轮50个token,共20轮)。对STM的读写操作是无锁的,完成时间低于1毫秒,确保对最频繁访问的数据实现零延迟。
工作记忆(Working Memory, WM) 是智能体的活跃推理上下文。它包含当前目标、中间推理步骤以及从近期STM条目中提取的关键事实。WM实现为知识节点的有向无环图(DAG),随智能体推理过程增量更新。这里的关键设计选择是WM更新是非阻塞的:智能体可以继续其推理循环,同时后台线程压缩和修剪WM图。这防止了智能体在“整理思绪”时常见的“冻结”问题。
长期记忆(Long-Term Memory, LTM) 是归档层。它使用向量数据库(默认ChromaDB,支持Pinecone和Weaviate)来存储过去交互的压缩、摘要化嵌入。关键创新在于异步压缩管道:每10个推理步骤,后台进程会获取当前WM图,通过一个小型摘要模型(例如Mistral 7B或GPT-4o-mini)运行,并将生成的嵌入存储到LTM中。从LTM的检索也是非阻塞的——智能体发出查询,结果通过回调异步传递,允许智能体在新鲜数据到达前继续使用过时但仍有效的上下文进行推理。
| 记忆层级 | 存储介质 | 访问延迟 | 更新机制 | 淘汰策略 |
|---|---|---|---|---|
| 短期记忆 | 内存循环缓冲区 | <1毫秒 | 无锁追加 | 先进先出,可配置大小(默认20轮) |
| 工作记忆 | 内存DAG | 1-5毫秒 | 后台增量更新 | 每10步进行图修剪 |
| 长期记忆 | 向量数据库(默认ChromaDB) | 查询10-50毫秒,写入50-200毫秒 | 异步压缩管道 | 基于时间的衰减(默认7天) |
数据要点: 各层级之间的延迟差异显著。STM和WM以低于5毫秒的速度运行,实现实时推理,而LTM的10-50毫秒查询延迟通过异步回调模式被掩盖。这种设计确保智能体永远不会同步等待记忆检索,从而有效消除了“检索即卡顿”的问题。
该框架使用Python实现,并在MIT许可下发布于GitHub。仓库(sawtooth-memory/sawtooth)在第一个月内已获得超过3200颗星。它包含针对LangChain、LlamaIndex和AutoGPT的预构建集成,以及一个独立的API服务器。核心抽象是`MemoryManager`类,它协调三个层级并暴露简单接口:`write(agent_id, content)`、`read(agent_id, query)`和`consolidate(agent_id)`。
一个值得注意的工程细节是“推测性检索”机制的使用。当智能体进入新的推理步骤时,框架会根据当前WM图预测下一个可能的记忆查询,并将相关LTM条目预取到快速缓存中。这使常见模式下的LTM检索感知延迟降至接近零。预测模型是一个小型Transformer(2层,4头),基于智能体自身的使用历史进行训练,使其能够随时间自我改进。
关键参与者与案例研究
Sawtooth由剑桥大学和艾伦·图灵研究所的研究团队开发,由前Google Brain研究员、专攻认知架构的Dr. Anya Sharma领导。该项目由英国工程与物理科学研究理事会(EPSRC)的250万英镑资助。
多个重要部署正在进行中。LangChain已在其v0.3.0版本中宣布实验性集成,允许任何LangChain智能体使用Sawtooth作为其记忆后端。LangChain内部测试的早期基准显示,与之前的ConversationBufferMemory实现相比,多步推理任务(例如,规划包含动态约束的7天行程)的任务完成时间减少了40%。
AutoGPT开发者已分叉Sawtooth以替换其当前仅向量存储的记忆系统。在最近的一篇博客文章中,AutoGPT团队报告称,使用Sawtooth的智能体在持续超过4小时的会话中保持了连贯的上下文,而之前的版本在大约30分钟后就会丢失上下文。该团队还指出,由于压缩管道有效减少了冗余信息,长时间运行任务的token使用量减少了60%。