技术深度解析
Steno的架构建立在一个清晰的诊断之上:单纯扩展上下文窗口的方法在计算上不可持续,在认知上效率低下。因此,它提出了一种受认知科学启发的双系统记忆模型。该系统包含三个主要组件:压缩引擎、向量记忆存储和检索协调器。
压缩引擎处理原始交互文本(聊天记录、工具输出、用户反馈)。它不仅仅是总结,而是执行结构化提取。通过使用微调的transformer模型,它识别并分类关键的记忆“原子”:实体(人物、项目、概念)、事件(做出的决策、采取的行动)和结果(成功/失败、用户情感)。这些原子随后被编码为密集向量嵌入,并与结构化元数据(时间戳、置信度分数、相关性标签)一起存储在向量记忆存储中。一个关键创新是将类似于信号处理中的有损压缩技术应用于这些嵌入,在丢弃噪声的同时保留语义精髓。项目的GitHub仓库(`steno-ai/compressive-memory`)展示了用于“显著性评分”和“时间分块”的模块,这些模块决定了哪些内容被压缩和存储。
检索协调器是回忆机制。当智能体面临新查询或任务时,协调器并非简单地对记忆存储进行相似性搜索。它首先进行“检索规划”,使用一个轻量级LLM来假设哪些*类型*的过去记忆可能相关(例如,“先前的API错误”、“用户关于UI的明确偏好”)。然后,它使用这些规划好的配置文件查询记忆存储,获取一小部分高度压缩的记忆嵌入。这些嵌入被解压缩,并与即时任务指令一同注入智能体的提示上下文中,从而有效地提供一段精心策划的历史。
项目初步测试的性能基准揭示了显著优势:
| 记忆方法 | 上下文窗口(令牌) | 任务连贯性得分(0-100) | 每次查询延迟(毫秒) | 每千轮对话存储增长 |
|---|---|---|---|---|
| 原始完整历史记录 | 128K | 85 | 1200 | 线性(∼128MB) |
| 简单摘要 | 4K | 72 | 350 | 次线性(∼15MB) |
| Steno压缩 | 2K | 88 | 280 | 对数级(∼5MB) |
| 无记忆(无状态) | 0 | 45 | 100 | 无 |
*数据要点*:Steno的压缩记忆在使用仅1/64的上下文窗口的情况下,实现了比原始完整历史记录方法更高的任务连贯性,同时将存储增长降低了数量级。这表明,在性能和效率指标上,智能压缩都优于暴力扩展上下文。
该仓库还包含`memgpt-adapters`,显示了与流行的MemGPT框架的兼容性,这暗示了一种集成而非替代的策略。其压缩算法似乎借鉴了近期关于LLM“知识蒸馏”的研究,将类似原理应用于情景记忆。
主要参与者与案例研究
持久化智能体记忆的开发正成为一个核心战场。Steno进入了一个各参与者采取不同战略路径的领域。
开源与研究项目:
- MemGPT(来自加州大学伯克利分校):可能是概念上最接近的同类项目。MemGPT使用类似操作系统的分页机制,采用分层记忆系统(主存、外存)。然而,其压缩技术较为简单,通常依赖于截断。Steno的贡献在于提供了一个更算法化的压缩层。
- LangChain的LangGraph / LangSmith:这些框架为有状态智能体提供了脚手架,但将记忆实现留给开发者完成。Steno可能成为此类生态系统的首选记忆后端。
- 微软的AutoGen:虽然专注于多智能体协作,但AutoGen在持久化对话上下文方面存在困难。与Steno这类系统集成是自然的下一步。
商业平台:
- OpenAI的GPTs与自定义指令:这代表了“浅层持久化”模型——存储静态系统提示和有限的基于文件的知识。它缺乏对交互的动态记忆。
- Anthropic的Claude Projects:向持久化迈进了一步,允许将文档和上下文与“项目”关联。然而,它仍然缺乏对聊天轮次和决策的细粒度记忆。
- Cognition的Devin及其他编码智能体:这些自主智能体突显了对记忆的迫切需求。一个会忘记自己昨天做出的架构决策的编码员是无用的。Steno针对“持久化编程伙伴”的案例研究正是直接瞄准了这一痛点。
| 实体 | 记忆策略 | 持久化粒度 | 压缩技术 | 开放/封闭 |
|---|---|---|---|---|
| Steno | 压缩RAG + 结构化提取 | 每次交互的原子 | 高级(有损语义) | 开源 |