> For the complete documentation index, see [llms.txt](https://yeasy.gitbook.io/agentic_ai_guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yeasy.gitbook.io/agentic_ai_guide/di-er-bu-fen-qun-ti-zhi-neng-yu-jin-hua/07_evolution/7.4_continuous_learning.md).

# 7.4 持续学习与知识更新

目前的许多 AI 系统是静态的：训练 -> 部署 -> 冻结。一旦部署，它就不会变了，直到下一次版本更新。但真正的 **智能体** 应该是动态的，能够在与环境和用户的交互中不断学习，越用越聪明。

本节探讨智能体持续进化的三种主要机制：**运行时适配**、**配置层优化** 与 **权重层持续学习**。这三者都会让系统表现发生变化，但严格来说，并不都是“模型学会了新东西”。

## 7.4.1 持续进化的三条路径

实现智能体持续进化主要有三条路径，成本由低到高，周期由短到长：

1. **运行时适配（Runtime Adaptation）**：通过检索、记忆、路由和上下文拼接改变当前这一轮的行为，但**不修改模型权重**。
2. **配置层优化（Configuration Updates）**：动态修改系统提示词、工具策略或工作流配置，改变系统行为，但通常仍**不属于参数学习**。
3. **权重层持续学习（Parametric Continual Learning）**：通过持续预训练、SFT、DPO、RL 等方式真正更新模型参数，让能力写入权重。

这一区分很重要：**RAG、记忆检索、Prompt 改写** 常常能让系统“下一次做得更好”，但更准确地说，那是**运行时适配**或**系统配置改进**，而不是狭义上的“模型持续学习”。

## 7.4.2 经验回放与非参数记忆

通过 RAG 或记忆库复用历史经验，是最常见、最实用的运行时适配方案。其核心思想是：当智能体成功解决一个难题（例如修复罕见的 SQL 错误）后，不应只保留最终答案，而应把成功轨迹压缩成可检索的 **经验**，写入外部记忆。

1. **经验提取**： 当任务成功完成时，触发提取器：

   ```python
   prompt = """
   任务：{task}
   执行轨迹：{trajectory}

   请总结这次成功的关键经验。这不仅是针对这个具体任务，而是针对这类问题的方法论。
   """
   ```
2. **存储**： 将 `(Task_Embedding, Key_Insight)` 存入专门的 “经验向量库”。
3. **回放（Retrieval）**： 当下次遇到新任务时，先检索是否存在类似经验。

   ```python
   experience = experience_db.query(new_task)

   system_prompt += f"""
   参考经验：
   在处理类似任务时，之前的成功经验是：{experience}
   请参考这个思路来解决当前问题。
   """
   ```

**效果**：这种机制可以让系统在**不更新权重**的情况下快速改善后续任务表现。更准确地说，它利用的是 **非参数记忆（external / non-parametric memory）**，而不是把新知识写入模型参数。

智能体不仅可以优化答案，还可以优化自己的“源代码”——系统提示词。

## 7.4.3 自动提示词优化

当智能体上线后，收集失败案例。

1. **诊断**：让另一个高级智能体分析失败原因。
   * “失败原因：智能体忘记了在搜索前先检查本地缓存。”
2. **建议**：提出系统提示词修改建议。
   * “建议：在系统提示词的工具使用规范中，添加一条：'优先检查 Cache'。”
3. **更新**：自动或半自动地更新线上的 Prompt 配置。

这里也要区分概念：**Prompt change** 会改变系统行为，但通常仍属于**配置层优化**，不等于模型在权重层完成了持续学习。它更接近“改策略”而不是“改大脑”。

## 7.4.4 自动提示词优化框架（思路）

一些框架把 Prompt 当成可优化的参数：你提供 Metric（评估标准）与少量训练样例，系统自动搜索更优的指令、示例与结构化输出模板。

工程上要特别注意：

* **防回归**：优化某个指标时不要牺牲其他关键能力。
* **可审计**：Prompt 的每次变更要可回放、可对比。
* **边界控制**：避免自动优化写入高风险指令或越权工具。

同样的思想也适用于 Skill 优化。SkillOpt 一类方法把 Skill 文档看作配置层的可训练状态：先收集 scored rollout，再让优化器提出小步文本编辑，最后用 held-out 验证集决定是否接受。它比普通自动提示词改写更强调三件事：编辑幅度受限，避免破坏已有有效规则；拒绝编辑会被记录，避免重复犯同类错误；最终部署只加载被选中的 Skill 文件，不把优化器和训练轨迹带到线上。

对于企业级智能体，真正把经验沉淀进模型参数的，通常是后面的 **数据飞轮 + 权重更新**。

## 7.4.5 数据飞轮与权重层持续学习

1. **冷启动**：用通用的高能力模型部署 V1 版本智能体。即使成本更高，也要保证初始体验与数据质量。
2. **收集数据**：记录所有用户交互。重点收集以下两类数据：
   * **正样本**：用户点了赞，或任务成功完成的轨迹。
   * **负样本**：用户点了踩，或经过人工修正后的正确轨迹。
3. **构建数据集**：将 `[User Input]` 和 `[Corrected Action]` 配对，清洗出高质量的 SFT 数据集。
4. **微调 / 持续训练**：
   * 使用这些私有领域数据，对模型做持续预训练、SFT、DPO 或 RL 等权重更新。
   * 目标：把反复出现的领域模式、输出格式和策略偏好真正写入模型参数，而不是每次都依赖检索或长提示词。
5. **迭代**：部署微调后的 V2 版本。V2 通常能显著降低成本并提升速度。
6. **循环**：V2 继续收集数据，训练 V3...

这是更严格意义上的“持续学习”，但代价也更高：需要数据治理、评测门禁、回归测试，以及对**灾难性遗忘（catastrophic forgetting）** 的控制。

## 7.4.6 什么时候需要权重更新？

不要上来就做权重更新。遵循以下原则：

* **Runtime Adaptation First**：如果问题是“需要最新知识”或“需要复用历史经验”，优先用检索、记忆和路由。
* **Prompt / Workflow Second**：如果问题是工具调用顺序、约束说明、输出模板不稳定，优先改 Prompt 或工作流。
* **Parametric Update Last**：如果问题高频、模式稳定、对延迟敏感，或者希望把领域习惯固化到模型里，再考虑持续预训练或微调。

## 7.4.7 记忆的维护：遗忘与整理

如果只学不忘，智能体的记忆库很快会被噪声填满，检索准确率下降。

### 记忆整理

类似于人类睡眠时的记忆整理，智能体需要后台维护进程：

* **合成**：将 10 条零散的对话记录合并为一条事实：“用户偏好 Python 语言，不喜欢写注释。”
* **冲突解决**：如果前天记“用户喜欢红色”，今天记“用户讨厌红色”，以最新的为准，删除旧记忆。

### 遗忘机制

* **生存时间（TTL）**：为短期记忆设置过期时间。
* **最近最少使用（LRU）**：长期不被检索的记忆，逐渐降低权重或归档。

## 7.4.8 小结

持续进化让智能体具有了“生命力”。

* **经验回放 / 外部记忆** 让系统在运行时利用非参数记忆改善当前决策。
* **Prompt 优化** 让系统在配置层持续调整行为准则。
* **数据飞轮 + 权重更新** 才是真正把经验沉淀进模型参数的持续学习路径。

一个好的智能体架构，不仅要有聪明的“大脑”（LLM），还要有完善的“成长机制”。

下一节将探讨推理能力的提升路径。

***

**下一节**: [7.5 推理能力的提升](/agentic_ai_guide/di-er-bu-fen-qun-ti-zhi-neng-yu-jin-hua/07_evolution/7.5_reasoning.md)
