Memory Synthesis from Execution Logs

Nikola Balic (@nibzard)· emerging

问题

单个任务执行记录包含宝贵的经验,但存在以下问题:

  • 过于具体:“把这个按钮改成粉色”这类内容无法作为通用指导
  • 关联性不明:难以预判哪些经验可应用于未来任务
  • 知识分散:有价值的见解散落在数百条对话日志中
  • 抽象化难题:难以把握合适的通用程度

全盘记忆会产生冗余信息;全盘忽视则会错失宝贵的规律。

方案

实现一个双层记忆系统

  1. 任务日志:Agent为每个任务撰写结构化日志(记录尝试内容、失败点及原因)
  2. 合成Agent:定期审阅多份任务日志,提取可复用模式

合成步骤会识别日志中的重复主题,挖掘出从单次执行中无法直接发现的洞察。

graph TD
    A[任务1:日志条目] --> D[合成Agent]
    B[任务2:日志条目] --> D
    C[任务3:日志条目] --> D
    D --> E[提取模式]
    E --> F[更新系统提示词]
    E --> G[创建斜杠命令]
    E --> H[生成观察结论]

示例日志条目格式

如何使用

实施方案

第一阶段:结构化日志

配置Agent以统一格式撰写任务日志,内容涵盖:

  • 尝试的内容及实施原因
  • 失败的内容及对应错误信息
  • 成功的内容及奏效逻辑
  • 发现的边缘案例
  • 可推广复用的模式

第二阶段:定期综合分析

针对近期日志运行综合分析Agent(可按每周一次、完成N项任务后等频率执行):

synthesis_agent.prompt = """
请审阅这50份任务日志。
识别出在3项及以上任务中出现的重复模式。
针对每种模式,分别给出以下建议:

- 一条可补充至CLAUDE.md的通用规则
- 一个潜在的斜杠命令
- 一个用于防止功能回归的测试用例
"""

第三阶段:知识整合

将综合分析得到的洞察反馈至以下系统模块:

  • 系统提示词(CLAUDE.md)
  • 可复用命令库
  • 自动化检查/钩子机制
  • 测试套件

Anthropic的实际应用场景(来自访谈记录):

“在Anthropic,部分员工会要求Claude Code以特定格式撰写每项任务的日志条目……他们甚至部署了专门的Agent,负责回溯过往记录并将其综合提炼为可落地的观察结论。”

权衡

优点:

  • 模式检测:发现人类可能遗漏的重复出现的问题
  • 合适的抽象层级:跨多任务综合分析可揭示通用规律
  • 自动知识抽取:无需依赖人工主动记录文档
  • 可演进的记忆:系统随时间推移学习并持续优化
  • 基于证据:模式由多次实例支撑,而非主观推测

缺点:

  • 存储开销:必须持久化存储所有任务日志
  • 综合分析复杂度:需要复杂的Agent来提取优质模式
  • 虚假模式:可能识别出巧合性关联
  • 维护负担:已综合生成的规则需要定期审核
  • 隐私顾虑:日志可能包含敏感信息
  • Token成本:针对大量日志的综合分析开销高昂

待解决问题:

  • 多少次实例可验证一个模式的有效性?
  • 如何清理过时或错误的模式?
  • 合适的综合分析频率是多少?
  • 如何处理跨日志的冲突模式?

参考文献

关键词

介绍Anthropic员工对Claude Code的两类实践:一是要求其按特定格式记录任务的尝试过程与失败原因;二是借助智能体整合过往记忆生成观测结果。同时提及记忆合成在规律识别及避免指令过度泛化方面的作用。

  • 凯特·吴(Cat Wu):“Anthropic公司的一些员工在完成每项任务时,都会让Claude Code按照特定格式撰写一篇日志。内容包括尝试了什么方法?为什么没有奏效?他们甚至还会用智能体查看过往记忆,并将其整合为观测结果。”
  • 鲍里斯·切尔尼(Boris Cherny):“从大量日志中合成记忆,是更稳定地发现规律的一种方式……比如我要求把这个按钮改成粉色,我不希望你以后记住要把所有按钮都改成粉色。”
  • 【《AI与我》播客:像开发者那样使用Claude Code】(https://every.to/podcast/transcript-how-to-use-claude-code-like-the-people-who-built-it)

来源摘要

正在获取来源并生成中文摘要…

来源: https://every.to/podcast/transcript-how-to-use-claude-code-like-the-people-who-built-it

← 返回社区