Memory Synthesis from Execution Logs
Nikola Balic (@nibzard)· emerging
问题
单个任务执行记录包含宝贵的经验,但存在以下问题:
- 过于具体:“把这个按钮改成粉色”这类内容无法作为通用指导
- 关联性不明:难以预判哪些经验可应用于未来任务
- 知识分散:有价值的见解散落在数百条对话日志中
- 抽象化难题:难以把握合适的通用程度
全盘记忆会产生冗余信息;全盘忽视则会错失宝贵的规律。
方案
实现一个双层记忆系统:
- 任务日志:Agent为每个任务撰写结构化日志(记录尝试内容、失败点及原因)
- 合成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