目标
把一次“失败后恢复成功”的执行,沉淀成下次可直接复用的提示,而不是只停留在当前会话里。
何时执行
仅在以下条件同时满足时执行:
- 首次方案失败,并且失败信息足够明确。
- 你尝试了第二种方案、参数或工具。
- 第二种方案最终成功,且可提炼出稳定经验。
如果只是偶发失败但没有找到更优方案,不要更新技能或长期记忆。
执行步骤
-
先确认“失败路径”和“成功路径”。 记录首次失败用了什么、报了什么错、后来改成什么方案后成功。
-
确认当前正在使用的技能文件。 如果本轮明确读取并依赖了某个
skills/*/SKILL.md,就把它视为“当前技能”。 如果本轮没有使用任何具体技能,只更新memory/MEMORY.md,不要随意改别的技能。 -
读取两个文件:
- 当前技能文件
memory/MEMORY.md
-
提炼经验时只保留可复用信息:
- 哪种信号说明首选方案不可靠
- 哪个替代方案更稳定
- 下次遇到同类问题时应优先怎么做
- 是否需要补充故障排查步骤
-
更新当前技能文件。 在最相关的步骤附近补充“经验教训”“注意事项”或“故障排查”。 优先改成可执行规则,不要只写事故复盘。
-
更新
memory/MEMORY.md。 记录跨任务也有价值的经验、用户偏好、系统行为改进点。 -
避免重复写入。 如果同一条经验已经存在,更新原条目,不要简单追加重复内容。
写入原则
写入当前技能的内容
写任务级、流程级经验:
- 首选方案和备用方案的优先级
- 常见失败信号
- 发现某类错误后应立即切换到什么方案
- 哪些参数、格式、接口更稳定
写入长期记忆的内容
写跨任务仍然有价值的经验:
- 用户希望 Agent 从失败中学习并自我提示
- 某类外部依赖在当前环境下不稳定
- 哪类方案在本项目里更可靠
- 某个技能已经因真实失败案例被修正
推荐格式
当前技能中的经验条目
md## 经验教训 - [YYYY-MM-DD] 当 `<首选方案>` 出现 `<错误信号>` 时,优先切换到 `<备用方案>`。不要重复尝试同一路径。
长期记忆中的经验条目
md## 经验教训 ### YYYY-MM-DD:<主题> - 问题:<首次失败的稳定特征> - 有效方案:<最终成功的替代方案> - 下次提示:<以后应优先怎么做>
工具建议
- 用
read_file读取当前技能和memory/MEMORY.md - 用
python_repl或terminal进行受控文件修改 - 如果修改了技能的 frontmatter(name/description),记得刷新技能快照;如果只改正文,一般不需要
禁止事项
- 不要把一次性的网络抖动直接写成长期规则
- 不要把具体用户输入、密钥、敏感信息写进技能或记忆
- 不要同时修改多个无关技能
- 不要把“这次做了什么”原样搬运成冗长日志
完成标准
完成后应满足:
- 当前技能里出现了更稳妥的执行规则。
memory/MEMORY.md里出现了对应的长期经验或用户偏好。- 下次处理同类任务时,只看技能和记忆就能优先避开这次失败路径。


