# Agent 记忆持久化与自我进化：从短期记忆到持续学习

## 概述

当 agent 从单次对话走向跨 session、跨工具的长期协作时，记忆（memory）系统成为决定 agent 能力上限的关键基础设施。本文综合 Hermes 生态中七个记忆与进化相关项目的分析，探讨三个递进的核心问题：agent 如何记住（记忆架构）、如何想起（检索策略）、以及如何变得更好（自我进化）。这些项目共同揭示了一条从"被动存储"到"主动学习"的技术演进路径，其设计哲学与 harness-learning 中 context engineering 的研究形成了深层互补。

## Agent 记忆的三层架构：Working → Episodic → Semantic

跨多个项目观察，agent 记忆正在形成类似人类认知科学的三层分级结构。

**Working Memory（工作记忆）** 是 agent 在当前 session 中操作的即时上下文。FlowState-QMD 在这一层引入了关键创新——**anticipatory context prefetching**。它不等 agent 被动搜索文档，而是基于活跃 session 日志预测 agent 需要什么并提前准备到 `~/.cache/qmd/intuition.json`。这种"预见性工作记忆"的设计，与 harness-learning 中 context engineering 讨论的 Just-in-Time Context Retrieval 异曲同工，但更进一步：不是"按需检索"，而是"预测性预取"。FlowState-QMD 的三层设计（Durable Knowledge → Working Memory → Context Overlays）本身就是一个精巧的微缩记忆架构。Honcho 的 Deriver（每条消息提取观察）和 Dialectic（每个 agent turn 召回记忆）也承担着 working memory 的即时加工职责。

**Episodic Memory（情景记忆）** 记录 agent 的具体交互经历。Honcho 的四层 memory pipeline 是这一层的典型实现：Deriver（从每条消息提取观察）→ Dialectic（每个 agent turn 进行记忆召回）→ Summary（20-60 条消息时触发上下文压缩）→ Dream（约每 8 小时执行记忆合并）。这个 pipeline 的精妙之处在于**频率分层**——高频操作（Deriver）处理简单提取，低频操作（Dream）处理深度合并，与操作系统的多级缓存策略如出一辙。Honcho self-hosted 方案还支持组件级 model 配置，允许"快速模型处理高频任务、强推理模型处理低频任务"的精细优化。PLUR 则引入了 episode 存储单元来捕获时间戳事件，Hindsight 将个人经验组织为 Experiences 类型——两者都在 episodic 维度上做了形式化表达。

**Semantic Memory（语义记忆）** 存储 agent 从经验中抽象出的知识和理解。Hindsight 的三类仿生学 memory 结构——World（环境事实知识）、Experiences（个人经验）、Mental Models（反思产生的理解）——正是对这一层的精确建模。其中 Mental Models 通过 **Reflect 操作**从已有记忆中生成新洞察，实现了从"记忆"到"学习"的质变。PLUR 的 **engram 格式**则从另一个维度丰富了语义记忆的表达：每个 engram 包含 activation strength（ACT-R 衰减模型）、polarity classification（directive vs constraint）、hierarchical scope（global/project/service）和 associations，是目前 Hermes 生态中最结构化的记忆单元设计。

三层之间存在明确的转化路径：working memory 中的高价值信息经压缩成为 episodic memory，多次 episodic memory 的模式抽象后升格为 semantic memory。Honcho 的 Dream 周期和 Hindsight 的 Reflect 操作都是这种跨层转化的具体实现。

## 语义/图/时间三维检索

记忆存储只是基础，高质量检索才是记忆系统的真正价值所在。Hermes 生态中的记忆项目在检索策略上展现了惊人的趋同——**hybrid retrieval 已成为共识**，但各项目的具体实现各有侧重。

Hindsight 提供了最完整的检索维度：**semantic vector search + keyword BM25 + graph-based entity relationships + temporal filtering** 四种策略并行执行。图检索（graph-based）是 Hindsight 的独特优势——通过实体关系图谱发现语义向量搜索可能遗漏的关联信息。当用户问"上次那个项目"时，图结构能通过实体关系链条定位到具体记忆，而 vector search 可能因为语义模糊而失准。这种多维并行策略使其在 LongMemEval 基准上达到 SOTA，经 Virginia Tech 和 Washington Post 独立验证。

PLUR 在纯本地环境中实现了 **BM25 full-text + BGE embeddings + Reciprocal Rank Fusion**，以 86.7% LongMemEval 得分证明了本地方案可以不输云端。更重要的是其零查询成本——全 YAML 存储，零 API 依赖。FlowState-QMD 则在文档知识维度采用了类似的 hybrid search（BM25 + vector similarity + reciprocal rank fusion + 可选 LLM reranking），并设计了精巧的工具使用优先级：anticipatory context first → queries → exact document retrieval。

**关键洞察**：单一检索策略无法覆盖所有查询类型。语义检索擅长模糊匹配，BM25 擅长精确关键词，graph 检索擅长关系推理，temporal 检索擅长时间定位。三个项目形成了清晰的互补矩阵：Hindsight 擅长长期学习型记忆（深度最优），PLUR 擅长跨工具共享记忆（广度最优），FlowState-QMD 擅长项目文档知识（即时性最优）。

## 共享记忆层与 Engram 格式

当 agent 跨越多个工具运行（Claude Code、Cursor、Windsurf 等），记忆碎片化成为核心痛点。PLUR 直面这个问题，提出了 **local-first 的跨工具持久化记忆层**。

PLUR 的 engram 格式值得深入分析。每个 engram 不仅是一条信息记录，而是一个具有认知语义的 **typed assertion**：

- **Activation Strength**：基于 ACT-R 认知模型的衰减函数，未使用的记忆自然降低优先级，避免 memory 膨胀——这是目前 agent memory 领域最优雅的"遗忘"机制
- **Polarity Classification**：区分 directive（"应该做什么"）和 constraint（"不应该做什么"），让检索时可以精确匹配意图，减少指令冲突
- **Hierarchical Scope**：global/project/service 三级作用域，实现记忆的层级隔离与共享
- **Feedback Ratings + Associations**：基于使用反馈的强化/弱化机制，加上记忆间的显式关联关系，支持图式检索

ACT-R natural decay 是核心创新——它从认知科学借鉴了记忆衰减理论，让 agent memory 自然"遗忘"不再使用的知识，从根本上解决了 memory 膨胀问题，无需人工清理。

这种设计哲学与 harness-learning 中 context engineering 关于 CLAUDE.md 的讨论形成有趣对比。Context engineering 将 agent 配置分为 Instructions（指令）、Guidance（规范）和 Context Interfaces（上下文接口）三类；PLUR 的 engram 则在记忆粒度上做了类似的结构化分类（directive vs constraint，global vs project vs service）。两者共同揭示了一个趋势：**agent 的信息管理正在从"扁平文本"走向"结构化语义单元"**。

## 自我进化机制：从性能监控到 Skill 蒸馏

记忆系统解决了"如何记住"和"如何想起"，而自我进化解决的是"如何变得更好"。Hermes 生态在这个方向上展现了三个递进层次，构成完整的闭环。

### 第一层：Performance Monitoring → Weakness Identification

Hermes Dojo 实现了最直接的自我改进闭环：读取 session log → 识别 tool errors、retry loops 和 user corrections → 计算 per-skill success metrics → 针对性修复弱项或创建缺失 skill。其 **"measure → identify weakness → evolve → measure again → report"** 闭环将自我进化从理论概念变为可度量的实践。最有想象力的设计是 **overnight autonomous cycles**——agent 白天服务用户，夜间通过 cron scheduling 自动优化。增强措施包括 targeted error handling 修复、新 skill 创建和 GEPA optimization。

### 第二层：Evolutionary Algorithm → Targeted Mutation

Hermes Self-Evolution 将自我改进提升到算法层面，核心是 **GEPA（Guided Evolution with Precision Analysis）**。与传统遗传算法的随机变异不同，GEPA 的关键创新是"精准分析"——读取 execution trace → 分析失败原因 → 提出 targeted mutation。这种"理解为什么错了再改"的方法比暴力搜索效率高得多。四重安全约束（test suite 全通过、文件大小限制、caching 兼容性、语义一致性）+ Human Review Gate 确保进化不引入退化。整个过程无需 GPU，纯 API 调用，每周期成本仅 $2-10。五阶段路线图从优化 SKILL.md 文件（Phase 1，已完成）逐步扩展到 tool description、system prompt、tool 实现代码和全自动持续优化 pipeline。

Dojo 和 Self-Evolution 的关系是互补的：**Dojo 发现问题（what is broken），Self-Evolution 深度优化（how to fix it better）**。

### 第三层：Real-World Trajectory → Training Data Distillation

Hermes Skill Distillation 将进化闭环延伸到模型训练层面。核心洞察是 **"real-world grounded trajectories beat synthetic benchmarks"**——从真实 Hermes agent 任务执行中提取训练数据，而非依赖合成基准。`RealWorldTaskEnv` 覆盖 30 个横跨 coding / web research / file operations / data analysis / system administration 的多样化任务。多维奖励函数设计精妙：Completion 60%（ToolContext 验证）+ Efficiency 20%（惩罚过多 tool 调用）+ Recovery 20%（评判错误恢复能力）。ToolContext 验证提供了客观的完成度评估，避免了纯 LLM 评判的不稳定性。输出直接兼容 Atropos RLHF pipeline（JSONL 格式 SFT 数据 + GRPO live RL 训练），形成"真实任务 → trajectory → 奖励评分 → fine-tuning → 更好的 agent → 更好的 trajectory"的飞轮。

三层机制的组合构成了完整的自我进化 pipeline：**Dojo 发现问题 → Self-Evolution 优化 skill prompt 和配置 → Skill Distillation 生成训练数据反哺基础模型**。这是一个从"配置层改进"到"模型层改进"的递进路径。

## USER.md / MEMORY.md 策展最佳实践

从多个项目中可以提炼出 agent 记忆文件的策展原则：

**精简是第一原则**。与 harness-learning 中 CLAUDE.md 的 "60 行核心内容、300 行上限"标准一致，MEMORY.md 也应严格控制信息密度。Gladiator 实验中 MEMORY.md 的快照追踪表明，随着 session 积累，记忆文件会自然膨胀——需要主动策展而非放任增长。

**分层组织优于扁平堆积**。PLUR 的 global/project/service 三级 scope 提供了参考模型。全局记忆放用户偏好和通用约束，项目级放技术栈和架构决策，服务级放特定组件的实现细节。SKILL.md 和 MEMORY.md 的分离存储（技能知识 vs 事实记忆）也是重要的结构化原则。

**Directive 与 Constraint 分离**。PLUR 的 polarity classification 提示我们，MEMORY.md 中应明确区分"推荐做法"和"禁止事项"，减少 agent 的解释歧义。

**自然衰减优于手动清理**。PLUR 的 ACT-R 衰减模型是最优解——未使用的记忆自动降低优先级，无需人工判断"哪条记忆该删除"。Honcho 的 Dream 周期（约每 8 小时合并记忆）也是一种自动化的记忆精炼机制。对于手动维护的文件，应建立定期审查节奏。

**Anticipatory 优于 Reactive**。FlowState-QMD 的预见性 memory 模式启示我们，将高频使用的知识预加载到 agent context 中，比让 agent 每次主动搜索更高效。这与 context engineering 的 progressive disclosure 原则（在 CLAUDE.md 中用指针引用详细文档）形成呼应。

**保留失败证据**。这与 Manus context engineering 中"保留失败轨迹帮助模型建立'什么不管用'的知识"的原则一致。Hermes Dojo 的 session log 分析正是建立在对失败模式的系统性捕获之上。

## 与 Context Engineering 的对比与融合

Hermes 生态的记忆系统与 harness-learning 中 context engineering 的讨论存在深层互补关系。

| 维度 | Context Engineering | Hermes Memory System |
|------|-------------------|---------------------|
| 时间跨度 | 单 session 内 | 跨 session / 跨工具 |
| 核心挑战 | Token 预算优化 | 知识积累与检索 |
| 优化目标 | 最小高信号 token 集合 | 最大化知识复用 |
| 关键技术 | Backpressure, condensation, KV-cache | Multi-dimensional retrieval, ACT-R decay, Reflect |
| 信息流向 | 压缩和丢弃 | 积累和反思 |
| 控制哲学 | 确定性优先（logits masking, deterministic serialization） | 接受概率性（衰减模型、反思质量不确定） |

**时间尺度互补**：Context engineering 主要解决单个 session 内的信息管理（context window 利用率、KV-cache 优化、backpressure）；Hermes 记忆系统解决跨 session、跨工具的长期信息持久化。两者共同覆盖了从"秒级"到"周级"的完整时间谱。

**抽象层次互补**：Context engineering 在 token 层面操作（压缩、精简、缓存），核心指标是 HumanLayer 提出的"Smart Zone"（75K token 以内保持最佳推理）；记忆系统在语义层面操作（engram、反思、学习），核心指标是 LongMemEval 得分和知识召回精度。

**融合点在于 memory-to-context 的注入策略**。哪些长期记忆值得占用当前 session 的宝贵 context 空间？这是 agent 系统设计中杠杆率最高的决策之一。FlowState-QMD 的 anticipatory prefetching 和 Hindsight 的 multi-dimensional recall 都在尝试回答这个问题。理想的 agent 架构应该在 context window 内运用 context engineering 原则管理即时信息（backpressure 控制输入、condensation 压缩历史），在 context window 之外运用 memory system 管理持久知识（multi-dimensional retrieval、natural decay），两者通过 Just-in-Time retrieval 和 anticipatory prefetching 动态桥接。

Manus 将文件系统视为"无限持久的外化记忆"，OpenHands 的 condensation 本质上是一种记忆压缩——这些正是两个体系的交汇区域，也暗示着未来的 agent 框架需要将 context management 和 memory management 统一为一个连贯的信息生命周期。

## 对技术管理者的建议

1. **按需选择记忆基础设施**：简单场景用 MEMORY.md 手动策展即可；需要跨 session 对话连续性选 Honcho（四层 pipeline + 双 provider failover）；需要长期学习能力选 Hindsight（四维检索 + Reflect）；需要跨工具共享选 PLUR（engram 格式 + ACT-R decay）；需要项目文档知识选 FlowState-QMD（anticipatory prefetching）。它们可以组合使用，互不冲突。

2. **将记忆策展视为工程纪律**：像管理 CLAUDE.md 一样管理 MEMORY.md——精简（参照 60 行核心内容标准）、分层（global/project/service）、分类（directive vs constraint）、定期审查。利用自然衰减机制减少人工维护负担。

3. **分阶段引入自我进化能力**：从 Dojo 的 session log 分析开始（低风险、高可见性、夜间自动运行），验证有效后引入 Self-Evolution 的 GEPA 优化（中风险、$2-10/cycle），最后考虑 Skill Distillation 的训练数据生成（高投入、需要 Atropos 基础设施）。每一步都应设置 Human Review Gate。

4. **关注记忆与 context engineering 的交汇**：确保记忆检索的结果能高效注入 context window。预取策略（FlowState-QMD）和渐进式披露（CLAUDE.md progressive disclosure）是两个立即可用的杠杆点。同时注意 memory 检索结果的 token 成本——超过 Smart Zone 的信息注入反而会降低推理质量。

5. **对自我进化保持审慎乐观**：Human Review Gate 不是可选项，而是必要的安全机制。Self-Evolution 的 AGPL v3 license（Darwinian Evolver 组件）需要在部署前确认合规。进化优化的长期漂移风险仍是开放问题——建议建立 baseline 性能监控，确保进化方向持续正确。

6. **关注 memory 互操作标准的演进**：Hindsight、Honcho、PLUR 各有格式，缺乏统一的互操作标准。PLUR 的 engram 格式最结构化，可能成为标准化参考。在选型时优先考虑通过 MCP 协议暴露 memory 能力的方案，降低未来迁移成本。

## 引用来源

- [Hindsight: 仿生学 Agent Memory 系统](../notes/04-integrations/03-hindsight.md)
- [Honcho Self-Hosted: 自托管对话 Memory 基础设施](../notes/04-integrations/04-honcho-self-hosted.md)
- [PLUR: 跨工具 Agent 持久化记忆层](../notes/02-skills/22-plur.md)
- [FlowState-QMD: 预见性文档 Memory 层](../notes/03-tools/11-flowstate-qmd.md)
- [Hermes Dojo: 持续监控驱动的自我改进](../notes/02-skills/08-hermes-dojo.md)
- [Hermes Self-Evolution: DSPy/GEPA 自动优化管线](../notes/01-core/04-hermes-self-evolution.md)
- [Hermes Skill Distillation: 真实任务 Trajectory 蒸馏](../notes/07-forks-guides/04-hermes-skill-distillation.md)
- [harness-learning Context Engineering 综合分析](../../insights/02-context-engineering.md)
