Day 9|让智能体具备“可持续学习能力”

116 阅读5分钟

记忆系统、知识库、向量库、反馈循环的全套实现

真正有生产力的智能体,一定能做到两件事:

记住 → 改进

能够从历史任务里学习,能够从文档里查知识,能够从错误中提高。

这篇文章,我们把智能体“学习系统”的所有组成部分,一次讲清楚:

  • 三类记忆(短期 / 长期 / 程序性记忆)
  • 文档知识库(RAG + 结构化检索)
  • 向量库(embedding)
  • 反馈自我改进循环(RLHF-lite)
  • 如何让智能体越用越聪明
  • 企业级智能体的最佳实践架构

阅读后,你将具备设计“会学习的智能体系统”的完整能力。

⭐ Part 1:可持续学习的核心:智能体不是模型,而是系统

大多数人对“智能体学习”的误解:

模型会自己变聪明。

其实不可能,模型是固定的。真正会“学习”的,是 智能体系统本身

记忆  →  知识  →  行为反馈  →  改进策略  →  工具选择  → 下一轮执行表现提升

这套能力由你搭建。

⭐ Part 2:智能体的三类记忆(Memory)

智能体和人一样,需要三种不同的“记忆”:

① 短期记忆(Short-Term Memory)

👉 用于当前任务的上下文

例如:

  • 用户本次对话内容
  • 中间步骤的工具调用
  • 当前任务的执行状态

一般以内存结构存储:

task_memory = {"steps": [...],"intermediate_results": [...],"user_intent": "...",
}

短期记忆 任务结束就会消失

实现方式:

  • 内存变量
  • 临时 Redis Key
  • 临时向量库(TTL)
  • 会话上下文缓存

② 长期记忆(Long-Term Memory)

👉 用于长期积累的“用户偏好、规律、风格”**

例如:

  • 用户喜欢用 markdown 输出
  • 用户做日报时偏好表格形式
  • 某个操作系统的内部流程
  • 某客户的历史订单偏好

典型实现:

  • 向量库(长文本)
  • KV 数据库(结构化偏好)
  • Memory Embedding

示例:

{
  "user_preferences": {
    "tone": "简洁",
    "report_format": "table",
    "langs": ["Chinese", "English"],
    "style": "B型"
  }
}

模型在生成 Prompt 前会自动注入这些记忆:

根据用户长期偏好:请使用简洁风格、Markdown 表格输出。

③ 程序性记忆

👉 属于 Agent 自己的“技能”

例如:

  • 如何正确调用飞书 API
  • 自动化工作流的步骤
  • 如何解析一个 Excel
  • 如何生成结构化 YAML
  • 如何选择最合适的工具

程序性记忆不是知识,而是技巧。

存储方式:

  • 本地规则库(JSON)
  • 智能体自己的 Notes
  • 任务成功案例(成功的 Tool Call 轨迹)
  • Tool 使用权重

示例:

{
  "best_practices": [
    "解析 Excel 时优先使用 extract_table 工具",
    "发布草稿前一定要检查封面是否绑定"
  ]
}

这些经验会影响下一次任务的策略。

⭐ Part 3:知识库

👉 智能体的“外部大脑”

知识库用于长期文档的存储:

  • 产品说明文档
  • 流程 SOP
  • FAQ
  • API 文档
  • 操作手册
  • 内部规章制度
  • 技术文档
  • Excel / PDF / Word

知识库不是记忆(Memory),而是外部知识(Knowledge)。

知识库的关键能力

✔ 文档解析

上传后,自动拆分:

  • PDF → 文本
  • Word → Markdown
  • Excel → Table
  • 网页 → HTML → Markdown
✔ 向量化(Embedding)

把文档划成 chunks:

chunk 1
chunk 2
chunk 3
...

并写入向量库。

✔ 检索(RAG)

在任务执行前/中:

根据用户意图 → 自动检索相关文档 → 注入 Prompt

示例 Prompt:

以下是与任务相关的知识(来自知识库),请参考执行:
<doc> ...内容... </doc>

让模型: 从知识中得答案,而不是凭空猜。

⭐ Part 4:向量库

👉 为智能体提供“可检索的长期知识”

向量库负责两件事:

① 存储记忆

(长期偏好 / 历史流程 / 任务轨迹)

② 存储文档知识

(知识库的所有文档)

框架:

  • Milvus
  • Weaviate
  • ChromaDB
  • Qdrant
  • Elastic vector 插件

企业常用:Milvus + PostgreSQL。

示例结构:

| id | embedding | text | type | metadata |
--------------------------------------------
| 1  | 1536维   | "如何使用飞书API" | doc | ... |
| 2  | 1536维   | "用户偏好:喜欢表格" | memory | ... |
| 3  | 1536维   | "任务模板:日报自动生成" | pattern | ... |

向量召回:

相似度 > 0.75 → 返回

⭐ Part 5:反馈自我改进循环(Self-Improve Loop)

这是智能体“越用越聪明”的关键。

核心流程是:

任务执行 → 用户评价/系统检测 → 生成反馈 → 存入记忆/规则 → 更新 Agent 策略

改进机制包含三层:

① 用户反馈机制

用户:

“这个日报格式不对,标题应该大一些。”

系统:

→ 记录反馈  
→ 生成矫正规则  
→ 写入长期记忆  

下次自动应用:

根据用户反馈:日报标题要大。请用 H2 输出标题。

② 技术反馈机制(自动评估)

自动检测:

  • API 是否调用失败
  • 输出格式是否正确 JSON
  • 工具使用是否合理
  • 有没有 Hallucination
  • 有没有越界调用
  • 是否违反安全规则

失败时写入程序性记忆:

错误:调用 publish_article 时必须传入 cover_image  
纠正:在缺失封面的情况下自动补默认封面
③ 行为轨迹学习(成功经验记忆)

每次成功任务都被自动摘要:

Task: 发布 CMS 文章  
Tool Trace:
  - draft.create
  - draft.upload_cover
  - draft.submit
Conclusion: 步骤顺序正确

系统从成功案例中学习“高概率成功策略”。

⭐ Part 6:五条落地建议

✔ 1. 不要把记忆全部丢进向量库

记忆需要结构化(KV / JSON),向量库只适合“模糊检索”。

✔ 2. 文档知识库一定要分 chunk

否则检索不准。

✔ 3. 反馈一定要区分 3 类

“用户偏好 / 任务技巧 / 文档知识” 不能混在一起。

✔ 4. 短期 & 长期记忆不能搞混

短期记忆是任务级,长期记忆是用户级。

✔ 5. 智能体改进要可审计

所有反馈 → 都要有日志。

今天我们构建了一个完整的“会学习的智能体系统”:

  • 三类记忆(短期 / 长期 / 程序性)
  • 文档知识库
  • 向量库
  • 反馈引擎
  • 自我改进循环

智能体不再只是一个“问答模型”

能积累经验 → 能学习 → 能成长

的可持续智能系统。

企业要落地智能体,这套系统必不可少。