# 程序记忆策略
#### 原理
从会话记录中提取操作流程、行动步骤和关键提示等信息，形成可复用的任务执行指南。程序性记忆定位为Agent的"流程与经验库"，解决 Agent 每次面对相似任务都从零推理、重复探索、浪费token的问题，同时约束LLM推理边界，提供前置条件检查、步骤拆解、检查点机制和回滚预案等结构化执行纲要。
程序性记忆采用自然语言分条目格式组织，包含以下核心字段：
- 标题（Title）：简洁描述性标题，标识该程序性记忆的主题。
- 适用场景（Use Cases）：触发条件、适用场景和目标类型，描述"什么时候用"。
- 操作步骤（Action Steps）：编号步骤序列，描述"具体做什么"。
- 关键提示（Key Hints）：工具使用模式、决策标准、什么有效、什么该避免。
- 失败模式（Failure Modes）：已知失败场景及恢复策略（可选）。
根据输入信息的质量，程序性记忆支持三个级别的结构化程度：
- Level 1 纯文本摘要：简单经验总结，包含标题、适用场景和关键提示。
- Level 2 自然语言经验：常见操作流程，增加操作步骤和失败模式。
- Level 3 结构化文档：完整的结构化执行纲要，包含全部字段。
 
#### 适用场景
- Agent 需要固化成功操作流程，避免面对相似任务时重复推理
- 编码智能体需要固化代码仓认知流程、代码审查流程等
- 运维智能体需要结构化执行纲要（前置条件检查、步骤拆解、失败模式处理）
- 需要约束 LLM 推理边界，提供检查点和回滚预案的复杂任务场景
 
#### 提取内容举例
让Agent探索一个新代码仓并完成功能开发。Agent首次探索后，将认知流程提取为程序性记忆：
提取为程序性记忆：
**标题**：代码仓探索流程
**适用场景**：当需要在新代码仓中定位和修改代码时，检测到代码探索意图
**操作步骤**：
- 先查看README和目录结构，了解项目全貌
- 重点关注src/和tests/目录
- 查找入口文件和配置文件，理解架构设计
- 使用语义搜索定位相关代码
  - 关键提示：先理解整体架构再深入细节；应避免不要在未理解项目结构时直接修改代码
  
  - 失败模式：目录结构异常 → 检查是否为monorepo，切换到子项目目录
   
后续遇到相似任务时，Agent直接检索加载该程序性记忆，避免重复推理。
