Skip to Content
Agent Memory 工程实战第 18 章:前沿探索

RAD (Real-Time Agent Data) 开放标准

claude-mem 团队正在推动 RAD(Real-Time Agent Data)——一个 AI Agent 工作记忆的开放标准。

核心理念

RAD 定义了 Agent 如何捕获、存储和检索工作记忆的标准协议,不绑定特定的 IDE 或 Agent 框架。目标是让不同的 Memory 系统可以互操作。

关键设计元素

  • Hook-Based Architecture:基于事件的非侵入式捕获
  • Intelligent Compression:语义压缩而非全量存储
  • Temporal Awareness:时间维度是一等公民
  • Progressive Disclosure:分层检索而非全量注入

对生态的意义

如果 RAD 成为广泛采用的标准:

  • 用户可以在不同 IDE/Agent 之间迁移记忆
  • 第三方可以构建兼容的 Memory Provider
  • Agent Framework(LangChain、CrewAI 等)可以标准化记忆接口

Agent Memory 与 Agent-to-Agent 协作

当多个 Agent 协同工作时,Memory 需要从”个人记忆”扩展为”共享认知”。

场景

Agent A(代码审查):发现了一个潜在的竞态条件 ↓ 共享观察 Agent B(代码生成):写新代码时自动避免类似问题 ↓ 反馈 Agent C(测试生成):针对竞态条件场景生成测试用例

共享记忆架构

interface SharedMemorySpace { // Agent 写入观察 contribute(agentId: string, observation: Observation): Promise<void>; // Agent 读取相关记忆(过滤为与自己任务相关的) retrieve(agentId: string, context: TaskContext): Promise<Observation[]>; // 冲突检测:两个 Agent 做出矛盾的决策 detectConflicts(obs: Observation): Promise<Conflict[]>; }

关键挑战:

  • 信息过载:10 个 Agent 各自产生大量 Observation,如何筛选每个 Agent 需要的子集
  • 一致性:Agent A 修改了文件,Agent B 的缓存记忆是否还有效
  • 优先级:多个 Agent 给出矛盾建议时,谁的记忆更权威

长期记忆的遗忘曲线

人类大脑有遗忘机制——不是设计缺陷,而是功能特性。Agent Memory 也需要”遗忘”。

为什么需要遗忘

  • 旧决策可能已被新决策覆盖
  • 过时的代码知识误导当前工作
  • 存储无限增长的运维成本
  • 索引中过多条目降低 Agent 的筛选效率

遗忘算法设计

借鉴 Ebbinghaus 遗忘曲线的思路,为每条 Observation 维护一个”存活权重”:

interface ObservationWeight { observationId: number; baseImportance: number; // 初始重要性(由 type 决定) accessCount: number; // 被检索次数 lastAccessedAt: number; // 最后访问时间 createdAt: number; } function calculateRetentionScore(weight: ObservationWeight, now: number): number { const ageInDays = (now - weight.createdAt) / 86400; const recencyBonus = weight.lastAccessedAt ? Math.max(0, 1 - (now - weight.lastAccessedAt) / (30 * 86400)) // 30天内访问有加分 : 0; // 基础权重 × 访问频率加成 × 时间衰减 × 近期访问加成 const score = weight.baseImportance * (1 + Math.log2(1 + weight.accessCount)) // 对数增长,防止高频刷分 * Math.exp(-ageInDays / 180) // 180 天半衰期 * (1 + recencyBonus); return score; } // type 对应的基础重要性 const typeImportance: Record<string, number> = { 'decision': 10, // 决策最重要,衰减最慢 'gotcha': 8, // 陷阱长期有效 'trade-off': 7, 'problem-solution': 5, 'what-changed': 3, 'how-it-works': 2, 'discovery': 2, };

遗忘策略

不是物理删除,而是从索引中移除:

Score > 5.0 → 始终出现在索引中 Score 2.0-5.0 → 仅在搜索时出现 Score < 2.0 → 归档(不参与搜索,可手动恢复) Score < 0.5 → 标记为可删除

多模态记忆

代码不是 Agent 工作的全部。设计稿、架构图、会议记录、用户反馈——这些非代码信息也应该成为记忆的一部分。

扩展 Observation 类型

interface MultiModalObservation extends Observation { modality: 'code' | 'design' | 'diagram' | 'meeting' | 'document'; // 代码模态(当前已有) files?: string[]; codeSnippets?: string[]; // 设计模态 designAssets?: { url: string; description: string }[]; // 图表模态 diagrams?: { type: 'mermaid' | 'image'; content: string }[]; // 会议模态 meetingNotes?: { participants: string[]; decisions: string[]; actions: string[] }; }

跨模态关联

设计稿中的 UI 组件 → 对应的代码实现 → 相关的 Bug 记录 → 修复的 PR。这些跨模态的关联关系是知识图谱的自然应用场景。

Design("登录页") ──实现为──→ Code("src/pages/login.tsx") 包含Bug→ Observation("密码框自动填充冲突") 修复于→ Observation("使用 autocomplete=new-password")

Memory 驱动的 Agent 自我进化

以下内容属于开放研究方向,目前尚无成熟的生产级实现。代码示例为概念验证(PoC),不保证在所有场景下有效。

最前沿的方向:Agent 通过分析自己的 Memory 来改善自己的行为模式。

反思机制

// 定期分析自身记忆模式 async function selfReflect(observations: Observation[]): Promise<Insight[]> { // 分析过去 30 天的决策模式 const decisions = observations.filter(o => o.type === 'decision'); const bugfixes = observations.filter(o => o.type === 'problem-solution'); // 检测:哪些决策后来导致了 Bug? const regretableDecisions = findDecisionsLeadingToBugs(decisions, bugfixes); // 生成洞察 return regretableDecisions.map(d => ({ type: 'self-improvement', title: `决策 "${d.title}" 后来引发了问题`, suggestion: `下次面临类似选择时考虑...`, })); }

行为模式学习

通过统计 Observation 类型的时间分布,Agent 可以学习:

  • “周一上午通常在修 Bug”→ 主动检查 CI 状态
  • “这个模块的改动频率很高”→ 增加测试覆盖
  • “这类决策之后总是要返工”→ 建议多花时间调研

这不是科幻——它只需要一个定时的分析任务,基于结构化的 Observation 数据做统计和 LLM 总结。Memory 系统的数据基础已经具备,缺的只是上层的分析逻辑。



思考题

  1. 遗忘算法的”180 天半衰期”是一个经验值。如果你做的是一个 3 个月短期项目 vs 一个维护 5 年的基础设施,半衰期应该怎么调?
  2. Agent-to-Agent 共享记忆中的”冲突检测”——两个 Agent 做了矛盾的决策,你会怎么设计仲裁机制?
  3. “Memory 驱动的自我进化”在伦理上有什么风险?Agent 学到了错误的模式并强化了它,如何检测和纠正?

至此,全书 18 章内容完成。从 Agent Memory 的基础认知,到 claude-mem 的源码深度解析,到动手构建 mini-mem Plugin,再到企业级平台的架构设计和前沿探索——希望这本书能帮助你建立完整的 Agent Memory 工程知识体系,并在实践中创造价值。

继续交流inferloop.dev

遗忘算法的完整可运行 Demo 见 examples/ch18-frontier/

Last updated on