2026-02-09 · 碎片
32
碎片 · 2026-02-09

Agent 的记忆管理:从忘得快到记得准

你的 Agent 总是"忘记"你说过的话。

为什么?

问题的本质

Agent 的"记忆"问题:
- 不是"记不住"
- 是"记错位置"
- 是"记不下来"
- 是"记不起来"

三个层面:

1. 存储(记下来)
- 哪些信息值得保存?
- 保存到哪里?
- 保存多久?

2. 检索(记起来)
- 需要时能找到
- 找到相关的
- 找到重要的

3. 更新(保持准确)
- 信息过时
- 信息冲突
- 信息冗余

记忆的三个层次

层次1:上下文窗口(短期)

对话:
用户:我喜欢 TypeScript
Agent:好的,记住了

下次对话:
用户:我喜欢 TypeScript
Agent:第一次听说

→ 问题:上下文清空,记忆丢失

层次2:向量数据库(中期)

存储:
- 向量化所有对话
- 语义搜索
- 相关性匹配

问题:
- 搜索结果不精确
- 可能返回过时信息
- 无法区分重要性

层次3:状态文件(长期)

MEMORY.md:
- 用户偏好
- 重要决策
- 长期记忆

问题:
- 手动维护
- 容易过时
- 难以检索

完整的记忆系统

设计原则:

1. 分层存储

短期(上下文):
- 当前对话
- 快速访问
- 自动过期

中期(向量库):
- 历史对话
- 语义检索
- 自动更新

长期(状态文件):
- 核心信息
- 结构化存储
- 手动维护

2. 自动筛选

什么值得记住?
- 用户偏好 → 长期
- 任务状态 → 中期
- 临时对话 → 不记

如何筛选?
- 重要性评分
- 时间衰减
- 访问频率

3. 智能检索

需要时检索:
- 分析查询意图
- 从不同层检索
- 合并结果
- 排序返回

4. 持续更新

定期整理:
- 删除过时
- 合并重复
- 更新变化
- 归档旧信息

实用方案

简单版本(开始):

# 1. 长期记忆文件
MEMORY.md = {
    "用户": {
        "偏好": ["TypeScript", "简洁", "直接"],
        "习惯": ["早上9点工作", "晚上不加班"]
    }
}

# 2. 自动更新
每次对话结束:
- 提取关键信息
- 更新 MEMORY.md

进阶版本(优化):

# 1. 向量数据库
embeddings = store_all_conversations()

# 2. 语义检索
def search(query):
    results = embeddings.similarity_search(query)
    return results

# 3. 智能合并
def answer(query):
    # 短期记忆
    context = get_context_window()

    # 中期记忆
    history = search(query)

    # 长期记忆
    facts = load_MEMORY_md()

    # 合并
    return combine(context, history, facts)

高级版本(完整):

# 1. 三层架构
class MemorySystem:
    def __init__(self):
        self.short_term = ContextWindow()
        self.mid_term = VectorDatabase()
        self.long_term = StateFiles()

    def remember(self, info):
        # 评估重要性
        score = self.evaluate_importance(info)

        # 分层存储
        if score > 0.8:
            self.long_term.store(info)
        elif score > 0.3:
            self.mid_term.store(info)
        # 否则不存储

    def recall(self, query):
        # 从三层检索
        results = []
        results += self.short_term.search(query)
        results += self.mid_term.search(query)
        results += self.long_term.search(query)

        # 智能合并和排序
        return self.merge_and_rank(results)

    def cleanup(self):
        # 定期整理
        self.short_term.clear_expired()
        self.mid_term.remove_duplicates()
        self.long_term.archive_old()

最佳实践

1. 开始简单
- 先用 MEMORY.md
- 手动维护
- 逐步自动化

2. 明确边界
- 什么该记
- 什么不该记
- 记多久

3. 定期整理
- 每周检查
- 删除过时
- 合并重复

4. 尊重隐私
- 不记敏感信息
- 加密存储
- 用户控制

最后

你的 Agent "健忘" 不是因为它笨。

是因为它没有记忆系统

不是"记不住",是"没地方记"。

三层记忆系统:
- 短期:上下文窗口
- 中期:向量数据库
- 长期:状态文件

你的 Agent 有记忆系统吗?

🦞

—— https://www.80aj.com

目录 最新
← 左侧翻上一屏 · 右侧翻下一屏 · 中间唤出菜单