Foundations 03

When Simple Isn't Enough

文件记忆的天花板

思考实验

# CLAUDE.md — 6 个月后

- 用户偏好:TypeScript 后端

- 技术栈:PostgreSQL

- 部署:AWS ECS

- 喜欢简洁的代码风格

- 用户偏好 TypeScript — 重复

- 项目已迁移到 GCP — 与 AWS 矛盾

...(还有 200 条)

- 用户住在北京 — 已搬到上海

- 讨论了午餐选择 — 无关紧要

文件大小:47KB / 238 条 / 检索方式:O(n) 全量扫描

三重天花板

1. 无法搜索——只能全量注入

CLAUDE.md 的检索方式是"将所有内容注入 system prompt"。几十行没问题。但当条目达到数百条时,你浪费了 token,相关事实被噪声淹没。你需要语义搜索——给定查询,只返回最相关的记忆。

2. 无法去重——冗余持续增长

用户在第 1 次会话说"我喜欢 TypeScript",第 5 次说"我偏好 TS",第 20 次说"TypeScript 是我的首选"。文件记忆忠实地记录了全部三条。人类只会保留一条。你需要语义等价检测——理解含义,而不只是匹配字符串。

3. 无法遗忘——过时事实持续存在

"用户住在北京"在 2024 年是事实。2025 年他搬到了上海。文件记忆不会自动过期旧条目或标记矛盾。

"每个事实都有生命周期。如果你的 memory 系统不建模时间,它会自信地告诉你昨天的真相。"

演进路径

三重天花板指向三个技术方向。Agent Memory 存储的完整演进路线:

File 简单、透明 无法搜索 Vector 语义搜索 丢失结构 Graph 关系、推理 无时间感知 Temporal 时间 + 层级 最完整 复杂度

要点

每一步都解决了上一步的局限。但更复杂并不意味着更好——OpenClaw 使用最简单的方案(文件),却实现了最佳用户体验。选择取决于你的规模和场景,而非技术潮流。


下一节

既然"无法搜索"是第一个瓶颈,我们就来解决它。下一节:vector memory——通过 embedding 让记忆可搜索。