Agent 如何把经历变成能力:从情景记忆、语义记忆到可演化的 Skill

程序记忆关注经验能否持续改变 Agent 下一次面对相似任务时的行动方式。历史只有经过归因、抽象和验证,才会成为可复用的能力。
假设一个 Agent 在制作行业分析报告时遇到这样一件事:它发现两组数据口径不同,仍然直接进行了合并,最终得到了一张看似完整、实际却具有误导性的图表。用户指出问题后,Agent 重新核对统计范围,统一口径,并在报告中补充了必要说明。
这次纠正值得保留,保存方式却有多种选择。系统可以记录“某次行业报告因为合并了统计口径不同的数据而出现问题”,这是一段情景记忆;也可以提取“数据源 A 按自然年统计,数据源 B 按财年统计”,这是一条语义记忆。它们分别帮助 Agent 回忆过去和理解事实,仍然没有直接说明下次遇到类似情况时该采取什么行动。
如果继续向前抽象,内容会变成一套可执行的方法:合并多个来源的数据之前,先检查时间范围、统计对象、计算方法和单位;口径无法统一时,分别展示结果并标注差异。这段内容已经脱离了原任务和具体数据源,可以在未来相似任务中重复调用。它给出了触发条件、检查动作和处理方式,性质由一次经历转向了程序记忆。
同一段经验往往会同时产生三类记忆。具体事件进入情景记忆,为复盘和追溯提供证据;稳定事实进入语义记忆,为判断提供依据;经过抽象、能够指导后续行动的方法,进入程序记忆。真正值得讨论的问题随之清晰起来:一段信息的价值,究竟在于帮助 Agent 回忆过去、补充事实,还是改变它下一次面对相似问题时的做法?只有最后一种价值,才需要进一步沉淀成 Skill。
大模型具备很强的即时推理能力。Agent 可以理解任务、制定计划、调用工具,再根据执行结果调整路径。然而任务结束后,刚才形成的方法通常跟随上下文一起消失。下一次遇到相似问题,Agent仍要重新理解、重新规划和重新试错,甚至再次掉进已经出现过的陷阱。
长期工作的 Agent 不能只积累越来越多的对话和任务日志。日志能够证明它做过什么,却无法自然带来更稳定的行为。程序记忆承担的是经验压缩:把多次执行中真正有效的动作、决策规则和异常处理方式提取出来,让 Agent 在相似情境中优先复用成熟路径。
这种复用直接影响成本和可靠性。缺少程序记忆时,复杂任务的推理链条每次都要重新生成,相似任务之间容易出现明显差异,用户的纠正也难以产生长期效果。有了可调用的程序记忆,Agent可以减少重复探索,把注意力留给任务中的新变量,并让组织要求在不同会话和不同 Agent 之间保持一致。

情景记忆最接近原始经验,通常包含任务目标、环境状态、操作轨迹、工具返回和最终结果。它保留了丰富上下文,适合复盘、归因和重新分析,代价是体量大、噪声多,难以直接复用。
语义记忆从事件和外部资料中抽取相对稳定的事实、概念与关系,例如某个系统的默认端口、公司的审批规则或用户长期偏好。它能够为推理提供依据,却不会自动给出完整的行动顺序。
程序记忆进一步回答“面对某类情况应该如何推进”。它包含操作步骤,也可能包含条件判断、工具组合、失败分支、停止条件和结果检查。三类记忆由此构成一条加工链:情景记忆提供材料,语义记忆补充环境认知,程序记忆把反复验证过的经验转化为可执行能力。
程序知识可以存在于模型参数、系统提示词、Agent 代码和固定工作流中。对需要持续积累和迭代能力的 Agent 来说,外部 Skill 提供了一种更容易管理的显式形态。
Skill 可以表达一个有边界的行动单元。完整的 Skill 会说明适用场景、所需输入、前置条件、执行步骤、依赖工具、异常处理、终止条件和输出要求。知识文档主要提供参考信息,Skill 则能够直接参与规划和执行。
同一个 Skill 还能同时容纳自然语言和确定性程序。需要判断的部分由操作说明、示例和反例表达,要求稳定的部分可以交给脚本、模板或检查程序。这种结构保留了模型的灵活性,也能把关键动作固定下来。
更重要的是,Skill 位于模型参数之外,可以被查看、审阅、分享、授权、版本化和回滚。一个团队形成的报告制作规范、代码审查流程或客户服务方法,可以由多个 Agent 共同使用,也可以随着组织流程变化而独立更新。
当前的 Agent Skills 开放规范已经定义了以 SKILL.md 为核心的目录结构,并允许附带脚本、参考资料和模板。Agent 启动时只读取名称和描述,任务匹配后再加载完整说明,执行过程中按需读取其他资源。这种渐进式加载让 Agent 可以拥有较大的 Skill 库,同时控制上下文成本。
因此,Skill 可以看作程序记忆的外部能力单元。它为方法提供了可调用、可迁移、可维护的载体。一个装满文件的 Skill 目录仍然算不上完整的程序记忆系统,后续还需要经验筛选、效果验证和生命周期治理。
如果每次成功或失败都产生一个 Skill,系统很快会积累大量重复、狭窄甚至互相冲突的规则。程序记忆建设的第一道门槛,是判断经验是否具有沉淀价值。
适合沉淀的经验通常具备几项特征。它会在未来相似任务中再次出现,能够转化为具体动作或决策规则,包含模型难以凭常识稳定推断的差异性信息,同时具有相对清楚的适用边界。更理想的情况是,使用效果可以通过任务结果、用户反馈或自动指标进行验证。
典型例子包括特定系统容易出错的操作顺序、多个工具之间的正确组合、反复出现的失败模式、组织稳定的交付规范,以及具有明确结果判定的安全检查。这些内容在不同任务中都能影响行动路径,保存为 Skill 后会产生持续收益。
一次性事件和单纯事实更适合留在情景记忆或语义记忆中。价格、人员、接口状态等高频变化的信息也不宜写死在 Skill 里,Skill 可以规定查询方式和处理原则,具体数值仍从最新数据源获取。原始轨迹同样只适合作为证据,其中包含大量试错、环境偶发信息和无关步骤,直接复用容易把噪声带入新的任务。
判断时可以使用一个简单问题:这段内容是否主要回答“以后遇到某类情况,应根据什么条件采取哪些行动”?答案明确时,它才接近一项可沉淀的程序记忆。
任务结束后的自动总结通常只能压缩历史,难以直接形成可靠能力。从情景记忆走向 Skill,需要经历去情景化、结果归因、抽象、边界补充和证据保留等处理。
去情景化用于移除只属于当前任务的信息,例如临时路径、具体用户名和偶发网络错误;结果归因用于识别真正改变结果的动作,避免把碰巧出现的步骤当成成功原因;抽象则决定 Skill 的颗粒度,一次财报分析可以沉淀为完整流程,也可以形成“如何处理非经常性损益”这样的局部能力。
颗粒度过细会限制复用范围,过宽又容易生成“充分检查数据”之类缺少执行价值的原则。合适的 Skill 通常对应一个目标明确、边界可描述、结果可判断的能力单元。形成候选 Skill 后,还要补充触发条件、不适用条件、前置检查、异常分支和终止标准。
来源和证据同样需要保留。系统应当知道一个 Skill 来自哪些任务,由人工制定还是由 Agent 归纳,经过多少次成功和失败验证,最近在哪种模型、工具和环境中运行。未来出现冲突时,这些信息会成为合并、升级和淘汰的依据。

完整流程从轨迹采集开始。除了对话文本,还要记录任务目标、环境状态、关键决策、工具调用、执行结果、用户纠正和评估信号。随后根据高价值事件触发沉淀,例如首次完成复杂任务、同一错误多次出现、用户明确纠正执行方式,或现有 Skill 在真实任务中失效。
可靠的归纳通常依赖多条相似轨迹。系统需要比较成功任务的共同步骤,也要分析成功与失败之间的关键差异,从跨经历的稳定模式中生成候选 Skill。候选版本应附带形成依据、适用范围、与已有 Skill 的关系、置信度和待验证风险。
发布之前,候选 Skill 还要经过历史任务回放、未见任务测试、异常条件测试和安全检查,并与无 Skill 或旧版本的执行表现比较。Voyager 在 Minecraft 环境中利用环境反馈反复修改可执行代码,通过验证后再写入 Skill Library;MemP 进一步研究了程序记忆的构建、检索和更新;ProcMEM 则把 Skill 表达为激活、执行与终止条件,并利用反馈生成候选版本和维护 Skill 池。
这些实践共同说明,Skill 生成只是生命周期中的一个环节。线上执行适合记录效果、收集纠正并提出修改建议,正式更新则应进入离线流程,聚合多次证据,生成局部补丁,运行回归测试,再发布新版本。让 Agent 在每次任务结束后直接覆盖正式 Skill,容易把偶然现象放大为长期规则。
程序记忆增长到一定规模后,问题会从内容不足转向内容重复和冲突。多个 Skill 可能表达相似方法,旧版本可能随着工具和业务变化而失效,范围过大的 Skill 也可能在反复修补后变得难以触发和维护。
整合时需要同时比较目标、触发条件、主要步骤和适用环境。内容高度相似时可以合并;步骤冲突时,应结合来源可信度、真实成功率、最近验证时间和组织权限判断;表面冲突但适用环境不同的情况,则应补充边界并保留多个版本。
结构上可以区分原子 Skill、组合 Skill 和领域规范。原子 Skill 完成一个明确动作,组合 Skill 编排多个能力,领域规范提供高层约束。这样的层次既有利于复用,也能避免把所有细节堆进一个巨大的说明文件。
长期无人使用、调用后没有带来收益、依赖已经失效或被更可靠能力覆盖的 Skill,应进入降级和废弃流程。遗忘能够清理过期路径,维持检索质量,是程序记忆长期可用的必要条件。
今天的 Agent Skills 已经在文件结构、元数据和加载方式上形成初步共识,解决了程序知识如何被包装和调用的问题。轨迹如何表示、候选 Skill 如何生成、质量如何评估、冲突如何处理、版本何时升级以及内容何时淘汰,仍然缺少成熟的通用标准。
未来值得关注的基础设施,可能会围绕整条程序记忆生命周期展开:采集执行轨迹,从经验和知识中编译 Skill,对候选版本进行回放和评估,管理作用域、权限与版本,再根据真实使用效果持续更新、合并和淘汰。
判断一个 Agent 是否真正从经验中学习,不能只看它保存了多少历史。更有意义的指标是,相似任务的成功率是否提高,执行成本是否下降,用户纠正是否减少,方法能否迁移到新的任务和新的 Agent。情景记忆让过去可以被找回,语义记忆让事实可以被理解,程序记忆则让经验持续塑造未来。
参考文献
Agent Skills Specification Voyager: An Open-Ended Embodied Agent with Large Language Models MemP: Exploring Agent Procedural Memory ProcMEM / Skill-Pro: Learning Reusable Procedural Memory from Experience LangChain Deep Agents Memory








