Hotdry.

Article

编码代理的持续记忆架构:从会话捕获到经验回放

解析 komi-learn 与 claude-memory-compiler 的实现机制,提供 Hook 配置、知识编译触发条件与规模阈值等可落地参数。

2026-05-31ai-systems

编码代理的 "失忆" 问题是当前 AI 辅助开发的核心痛点。每次开启新会话,代理对代码库的上下文理解、用户的工作偏好、过往的经验教训都归零重建。这种 "一夜情" 式的交互模式严重限制了长期协作的可能性。komi-learn 与 claude-memory-compiler 等项目正在探索一种持续记忆架构,通过自我改进反馈循环和经验回放机制,让代理从交互中学习并优化策略。

三层架构设计

持续记忆系统的核心在于将会话数据转化为可检索、可复用的结构化知识。claude-memory-compiler 采用的架构可分为三层:会话捕获层、知识提取层、经验回放层。

会话捕获层通过 Claude Code 的 Hooks 机制实现自动化。在 .claude/settings.json 中配置 SessionEndPreCompact 两个触发点,确保会话结束或压缩前自动捕获完整对话记录。这种设计避免了人工标记的遗漏,捕获的原始数据以时间戳命名存入 daily/YYYY-MM-DD.md 格式。

知识提取层调用 Claude Agent SDK 对原始会话进行语义分析。不同于简单的日志存储,该层会提取关键决策、经验教训、代码模式、潜在陷阱等结构化信息。Anthropic 已明确个人使用 Claude Agent SDK 包含在现有订阅中,无需额外 API 计费。

经验回放层负责将分散的每日日志编译为可交叉引用的知识文章。compile.py 脚本将日志按概念分类存入 knowledge/concepts/connections/qa/ 目录,并生成 index.md 索引文件。SessionStart Hook 自动将该索引注入新会话上下文,形成记忆闭环。

可落地的配置参数

实现这一架构需要关注以下关键参数:

Hook 触发时机SessionEnd 在会话正常结束时触发,PreCompact 作为安全网在上下文压缩前触发。建议同时配置两者,确保高价值会话不被遗漏。

编译触发条件:默认设置为本地时间 18:00 后首次会话结束时自动触发。可通过 uv run python scripts/compile.py 手动执行,适合需要即时归档的场景。

知识库规模阈值:claude-memory-compiler 明确建议,个人规模(50-500 篇文章)下使用结构化索引而非 RAG。当文章数量超过 2000 篇、索引超出上下文窗口时,才需要考虑向量检索方案。

检索策略:采用 query.py 进行索引引导检索,无需向量数据库或嵌入计算。这种方式在个人知识库场景下,利用 LLM 的语义理解能力优于简单的余弦相似度匹配。

自改进循环的工程实践

Hermes Agent 提供了另一种实现思路,通过 FTS5 全文搜索 + LLM 摘要、Honcho 用户建模、自主技能创建三个机制实现持续学习。这种架构让代理不仅能回忆过往会话,还能基于重复模式自动生成可复用的技能函数。

在实际部署中,建议设置以下监控点:

  • 健康检查:定期运行 lint.py 检测断链、孤立条目、矛盾信息和过时内容。结构性检查不消耗 API 额度。
  • 存储管理:每日日志按日期归档,编译后的知识文章定期备份。建议设置 90 天的滚动清理策略,避免存储膨胀。
  • 版本控制:将 .claude/ 目录和知识库纳入 Git 管理,使记忆、提示词和经验教训像代码一样版本化。

局限与权衡

这种架构需要明确的技术投入。与即插即用的 SaaS 方案不同,开发者需要自行管理持久化存储、处理状态同步、应对 API 演进。此外,当前实现主要针对个人使用场景,团队协作时的并发写入和知识合并仍需额外设计。

对于追求长期 AI 协作的开发者而言,这种 trade-off 是值得的。编码代理从 Stateless 工具进化为具备持续学习能力的协作伙伴,标志着 AI 辅助开发进入新阶段。


参考来源

ai-systems

内容声明:本文无广告投放、无付费植入。

如有事实性问题,欢迎发送勘误至 i@hotdrydog.com