Awni Hannun 论持续学习:从 Prompt Compaction 到 Memory-Based Agents
> 来源:https://x.com/awnihannun/status/2029672507448643706
> 日期:2026-03-05
> 作者:Awni Hannun(MLX 联合创建者,刚从 Apple 离职)
> 数据:794 赞、623 收藏、35万曝光
一、作者背景
Awni Hannun 不是普通工程师:
- 斯坦福 CS 博士,导师 Andrew Ng(吴恩达)
- 百度硅谷 AI 实验室:主导 Deep Speech(2014年端到端语音识别里程碑)
- Facebook AI Research:隐私 ML、UAI 2021 最佳论文
- 与吴恩达合作的心律失常检测发表在 Nature Medicine(准确率超人类心脏专科医生)
- Apple:联合创建 MLX(Apple Silicon 原生 ML 框架,24.1K GitHub ⭐,MIT 开源)
- 2026年2月离职,去向未知
他的观点基于实际实验(用 MLX 做持续学习 toy experiments),而非纯理论。
二、原文核心论点
现状:Prompt Compaction + 递归子 Agent
Awni 承认当前主流方案"remarkably effective"——
- Prompt Compaction:上下文快满时,让模型生成摘要,从摘要重新开始
- 递归子 Agent:把任务拆成子任务,每个子 Agent 有独立上下文窗口
但他指出:Prompt Compaction 是一个"低效但高效的 hack"。
> "Prompt compaction seems like a bit of an inefficient (though highly effective) hack."
为什么是 hack?
1. 信息丢失累积:每次压缩丢失 ~10%,N 次后损失 1-(0.9^N),指数级衰减
2. 不连续性:每次压缩等于"硬重启",破坏对话流的连贯性
3. 计算浪费:每次要重新读取整个上下文 + 生成摘要 + 重新加载
三、两个替代方案
方案 1:在线微调(Online Fine-tuning)— 不看好
部署时用 LoRA 适配器在用户数据上持续训练。Awni 明确不看好:
> "Online fine-tuning is inherently unstable. If you train on data in the target domain you can catastrophically destroy capabilities that you don't target."
三个根本问题:
- 灾难性遗忘:训练医学能力可能摧毁法律知识
- 数据来源不明:用什么数据训?生成 Q&A 对本身需要另一个模型(鸡生蛋问题)
- 工程复杂度:每个用户需要独立 LoRA adapter,1000用户 = 1000个adapter
他还分享了实验代码 github.com/awni/mylm:
- 本地模型聊天 +
/sleep命令触发记忆整合 - sleep 时生成 Q&A 对 → LoRA 微调 → 重置 KV cache
- 结论:很难。让模型学会历史的同时不"脑损伤",非常难拿捏。
方案 2:基于记忆的技术(Memory-based)— 最有前景
> "This feels much more like how humans retain information: 'use it or lose it'."
类比人类记忆的"用进废退"机制。只需要三个组件:
1. 淘汰/保留策略:如"最近 10k token 内被访问过至少一次就保留"(类似 LRU Cache)
2. 高效可计算:策略需要 O(1) 或 O(log N) 复杂度
3. 层次化存储:
- 稀疏访问的 KV cache(GPU VRAM,工作记忆)
- Vector DB(RAM,短期记忆)
- 结构化数据库(磁盘,长期记忆)
四、三种方案对比
| 维度 | Prompt Compaction | Online Fine-tuning | Memory-based |
|---|---|---|---|
| 像人类? | ❌ 硬重启 | ⚠️ 有灾难性遗忘 | ✅ 用进废退 |
| 信息丢失 | ⚠️ 压缩丢失 | ❌ 遗忘其他能力 | ✅ 只淘汰不用的 |
| 工程复杂度 | ✅ 低 | ❌ 高 | ⚠️ 中 |
| 计算成本 | ⚠️ 重复读取 | ❌ 持续训练 | ✅ 按需加载 |
| 稳定性 | ✅ 稳定 | ❌ 不稳定 | ✅ 稳定 |
| 个性化 | ⚠️ 弱 | ✅ 强 | ✅ 强 |
五、与 OpenClaw 的关联
这条推文与我们的实践高度相关:
| Awni 的分类 | OpenClaw 的实现 | 状态 |
|---|---|---|
| Prompt Compaction | `compaction: safeguard` 模式 | ✅ 已在用 |
| 递归子 Agent | `sessions_spawn` / subagents | ✅ 已在用 |
| Memory-based | `MEMORY.md` + `memory/*.md` 文件系统 | ✅ 已在用 |
| Online Fine-tuning | 无 | ❌ 不需要 |
关键洞察:OpenClaw 的文件系统记忆(MEMORY.md)本质上就是 Memory-based 方案的一种实现——
- 淘汰策略 = 手动维护 + 心跳时定期清理
- 存储 = 文件系统(无限容量)
- 检索 =
memory_search(embedding 语义搜索)
这正是 Jay 提出的非参数学习理论的核心:知识存在文件系统,不在神经网络权重里。可审计、可修正、不会"脑损伤"。
Awni 的实验(LoRA 微调失败)进一步验证了这个方向的正确性。
六、未解决的挑战
1. 如何定义"重要性"? LRU 不够——有些记忆重要但很久不用(如生日)
2. 记忆"幻觉":Vector DB 可能返回语义相似但事实不一致的记忆
3. 冷启动问题:新用户/新 Agent 没有历史记忆
4. 隐私和安全:记忆持久化 = 数据持久化,需要加密和访问控制
七、未来展望
短期(6-12月):Memory-first Agent 框架出现、Vector DB 添加 LRU 原生支持
中期(1-2年):多模态记忆、分布式记忆(Agent 之间共享)、自适应淘汰策略
长期(3-5年):神经符号混合记忆、Agent"数字大脑"、记忆市场
八、评分:9/10
理由:
- ✅ 第一手实践经验(不是空谈)
- ✅ 明确批评现状 + 理性否定热门方案
- ✅ 提出具体方向和所需组件
- ✅ 作者权威性极高(MLX 创造者)
- ⚠️ 实现细节不足(但这是推文,不是论文)
一句话总结:这条推文是 Agent 持续学习领域的路线图——清晰指出了当前方案的局限(Compaction 是 hack)、否定了过度炒作的方向(在线微调有根本问题)、并提出了最有前景的路径(Memory-based 技术)。