Agent Runtime 如何用 Session、Memory、User Profile 和 Skill 实现外部学习
Agent 的自我学习多发生在模型外部,通过 Memory、Session 和 Skill 沉淀经验并在后续任务复用。
导语
“越用越聪明”的 Agent 很容易被误解。
很多人听到自我学习,会以为系统在训练一个新模型,或者底层大模型参数会随着使用自动更新。实际工程里,大多数 Agent 的“学习”并不发生在模型权重里,而发生在模型外部的状态资产里。
更准确地说,它会把任务执行轨迹、用户偏好、环境事实和可复用流程沉淀为 Session、Memory、User Profile 或 Skill。下次遇到相似任务时,再把这些内容检索出来,注入上下文或按需加载,影响模型的后续行为。
所以,Agent 的自我学习不是“模型自己变强了”,而是“运行时把有价值的外部知识保存下来,并在未来重新提供给模型”。

图:任务轨迹被复盘、沉淀,并在后续任务中重新加载
这件事很有价值,但也很危险。没有评测、审批、版本管理和回滚,外部记忆既可能让系统越用越稳,也可能让系统越学越偏。
三层角色
要理解这类系统,先要把三个角色分清。
第一层是大模型。它负责理解任务、规划步骤、选择工具、分析工具结果和生成内容。Agent Runtime 通常不包含模型权重,而是通过 provider 调用外部模型。
第二层是 Runtime,也可以理解为 Agent Harness。它负责组装上下文、调用模型、维护模型和工具之间的循环、保存会话轨迹、管理 Memory 与 Skill,并在合适的时机触发复盘。
第三层是网关。很多产品会在 Runtime 外面再包一层,用来做请求鉴权、用户隔离、线程隔离、进程启动、环境变量注入、沙箱和协议转换。

图:模型、Runtime 和网关的三层分工
网关不会学习。底层模型通常也不会因为一次任务被训练。学习链路如果启用,主要发生在 Runtime:它读取任务轨迹,调用模型复盘,再把值得保留的内容写入外部状态。
普通任务循环
不包含学习阶段时,一个 Agent 的基础循环大致如下:

图:不含学习阶段的普通 Agent 任务循环
这个循环里,大模型负责理解和决策,Runtime 负责执行与管理。
如果没有 LLM,Runtime 只剩下确定性的流程、存储和工具代码,不具备自主理解任务的能力。如果没有 Runtime,大模型也很难稳定调用工具、管理状态、保存历史和控制权限。
Agent 的能力来自这两者的组合。
学习闭环
学习闭环是在普通任务循环之后,增加“复盘与沉淀”阶段。
任务完成后,系统读取压缩后的对话、工具调用、错误输出和最终结果,判断哪些内容值得保存。保存后的内容会在未来任务中被检索、注入或按需加载。

图:外部记忆学习闭环的复盘与沉淀过程
一句话概括:执行产生经验,复盘提炼经验,持久化保存经验,后续任务复用经验。
这条链路看起来像“Agent 学会了东西”。但它的技术本质不是参数更新,而是外部知识资产更新。
到底学了什么
外部状态通常分成四类。
| 类型 | 保存内容 | 使用方式 | 类比 |
|---|---|---|---|
| Session | 完整对话、工具调用、错误输出、执行轨迹 | 按需搜索 | 工作日志 |
| Memory | 环境事实、项目规则、经验教训 | 注入上下文 | 便签 |
| User Profile | 用户偏好、常用方式、表达习惯 | 注入上下文 | 用户画像 |
| Skill | 可复用操作流程、脚本、模板、参考资料 | 相似任务按需加载 | 标准操作手册 |
Session 容量大,但不会每轮全部塞进 prompt。它更适合回答“之前讨论过什么”“当时执行了哪些命令”“为什么选择这个方案”。
Memory 保存少量高价值事实。例如项目只能使用 pnpm,部署后必须跑健康检查,某个工具在特定版本下有兼容问题。它回答的是“是什么”。
User Profile 保存用户偏好。例如偏好简洁回答、默认使用 TypeScript、报告先给结论、常用时区等。它让交互方式逐渐适应用户。
Skill 保存“怎么做”。一次复杂任务成功后,可以沉淀为一份可复用流程:
# deploy-staging
1. 使用 pnpm install --frozen-lockfile 安装依赖
2. 运行测试和类型检查
3. 构建产物
4. 发布到 staging
5. 调用健康检查接口
6. 检查错误日志,失败时回滚
下一次遇到类似部署任务,Agent 不必重新探索。它可以加载这份 Skill,按固定步骤执行,再根据当前环境做局部调整。
这就是“能力积累”的主要来源。
一个部署例子
假设第一次部署某个项目时,系统经历了这些事实:
npm install 失败
pnpm install --frozen-lockfile 成功
部署后必须额外执行 health-check
一个学习闭环可能这样工作:
- 保存本轮命令、错误输出和最终成功路径。
- 复盘模型判断这些信息可以复用。
- 把“该项目使用 pnpm”写入 Memory。
- 把完整部署步骤写成
deploy-stagingSkill。 - 下一次部署时加载该 Skill。
- 按流程执行,并通过测试和健康检查验证。
- 如果流程变化,再更新 Skill。
从使用者角度看,Agent 像是“学会了部署”。从系统角度看,是 LLM 总结了一份更好的外部操作手册,Runtime 在未来把它重新提供给 LLM。
经验复用不等于持续变好
这里必须区分两种闭环。
| 维度 | 经验复用闭环 | 效果改进闭环 |
|---|---|---|
| 路径 | 执行 → 复盘 → 持久化 → 后续复用 | 执行 → 反馈 → 生成候选 → 评测对比 → 门禁发布 → 在线观察 |
| 能证明什么 | 过去经验影响了未来行为 | 新版本在指标上优于旧版本 |
| 是否保证变好 | 不保证 | 仍不绝对保证,但有证据控制风险 |
| 风险 | 错误经验被长期保存 | 评测不充分时仍可能过拟合 |
默认的后台复盘通常属于经验复用闭环。它能把过去的经验带到未来,但不自动证明这次写入一定提升效果。
如果候选内容只由 LLM 自己判断,没有独立验证,就可能把偶发故障、错误归因、过时结论或恶意输入写入长期记忆。
要证明“真的变好”,还需要质量反馈和治理机制。
反馈与治理
质量反馈回答“效果如何”。
它可以来自用户明确纠正、命令退出码、测试结果、健康检查、业务指标、A/B 对比、正确率、成功率、成本和延迟变化。
治理机制回答“能否写入和发布”。
它包括来源、时间、置信度、适用范围、安全扫描、敏感信息检测、人工审批、自动质量门禁、版本管理、变更 Diff、灰度发布、监控和回滚。
两者不能互相替代。
人工审批只能证明“有人允许这次变更”,不能证明“这次变更让系统更好”。测试通过也不能证明“适用范围永远正确”。可靠系统需要同时具备反馈和治理。
一个更稳的流程如下:

图:反馈治理决定记忆能否越用越稳
只有观察结果重新进入下一轮候选生成,才算形成可验证的质量闭环。
这不是强化学习
有反馈、有筛选,并不等于强化学习。
这类 Agent 学习更准确的说法是:基于评测门禁的外部知识或策略资产优化。
| 方式 | 优化对象 | 是否修改模型权重 | 质量依据 |
|---|---|---|---|
| 后台复盘 | Memory、User Profile、Skill | 否 | LLM 判断,可加审批 |
| 评测驱动 Prompt/Skill 优化 | Prompt、Skill 等外部文本资产 | 否 | 评测集、基线对比、回归门禁 |
| 典型 RLHF / RLAIF | 模型或策略参数 | 通常是 | 奖励信号、训练过程和独立评测 |
外部记忆更新改变的是模型下一次看到什么,不是模型本身的参数。
这也是它和典型强化学习的核心区别。
风险
外部记忆让 Agent 能持续积累,也会引入新的风险。
| 风险 | 典型问题 | 治理方式 |
|---|---|---|
| 错误记忆 | 偶发故障被写成永久规则 | 标记来源、时间、适用范围和置信度 |
| Skill 漂移 | 多次修改后偏离原始目标 | 版本控制、Diff、回归测试、一键回滚 |
| Prompt Injection 持久化 | 恶意网页或工具输出写入长期记忆 | 写入前扫描、来源标记、权限隔离 |
| 隐私污染 | 一个用户信息进入另一个用户上下文 | 按用户、租户和项目隔离状态 |
| 成本延迟 | 每轮后台复盘带来额外模型调用 | 降低频率、只在高价值事件触发、先压缩再复盘 |
| 黑盒学习 | 用户不知道系统保存了什么 | 支持查看、编辑、审批和撤销 |
外部状态越有用,越需要治理。否则系统“记性好”本身就会变成风险。
什么时候值得用
这种学习闭环适合重复发生、步骤复杂、历史经验有价值的任务。
例如部署、数据处理、长期项目维护、团队约定较多的研发任务、多工具协作任务。它们的共同点是:过去的成功路径能降低未来探索成本,并且结果可以通过测试或指标验证。
不适合的场景也很清楚:
· 一次性问答。
· 输入已经完整,只需要生成一段普通文案。
· 数值计算可以用确定性代码直接完成。
· 业务不允许保存用户历史。
· 缺少评测、审批和回滚机制。
如果只是输入一组指标,让模型生成一次解读报告,通常不需要学习闭环。用确定性程序完成计算和校验,再让模型生成结构化报告就够了。
只有当系统需要自主查询多个数据源、反复调用工具、沉淀分析流程,并在未来复用时,才值得引入这类外部记忆机制。
结语
Agent 的自我学习可以拆成四句话。
智能来自 LLM。Runtime 不会凭空产生理解能力。
学习发生在外部状态。经验被保存为 Session、Memory、User Profile 和 Skill。
成长依赖下一次复用。持久化知识必须被检索、注入或加载,才会影响未来行为。
优化必须有反馈和治理。没有测试、评测、审批、版本管理和回滚,“自我改进”可能是正向积累,也可能是负优化。
所以,“越用越聪明”的严谨表达不是模型自己训练了自己,而是 Agent Runtime 把任务经验沉淀为可复用的外部知识,并在后续任务中受控地使用它。
真正可靠的系统,不只要会记住,还要知道什么该记、怎么验证、何时撤销。

推荐阅读
Brainstorming 与 grill-me 在 AI 产品设计和工程决策中的分工边界
原文地址: https://www.cveoy.top/t/topic/qHhB 著作权归作者所有。请勿转载和采集!