智能体面试准备(三十三):智能体自我改进与在线学习——从“一次性聪明“到“越用越聪明“

智能体面试准备(三十三):智能体自我改进与在线学习------从"一次性聪明"到"越用越聪明"

本篇是 B 系列第 33 篇(B11--B32 已覆盖评估、ReAct、记忆、MCP、多智能体、安全、HTN、Function Calling、RAG评估、可观测、多租户、长时任务、灰度、GUI、多模态、成本、人机、编程、框架、生产化、评测深化、安全对抗)。B13 讲过持久化记忆的"存",本文讲更高级的"用":智能体如何沉淀经验、反思失败、自我改进,甚至闭环微调。这是 Agent 从"能跑"走向"能进化"的分水岭。B31 讲的评测体系,本文会反复用到------没有评测,自我改进就是玄学。

一、为什么"记忆"不够,还要"自我改进"

B13 的持久化记忆解决了"记住用户偏好、历史对话",但那是静态存档------Agent 下次遇到同类问题,还是用同样的方式去撞,不会"吃一堑长一智"。真正的自我改进包含三个递进层次:

复制代码
层级1: 记忆(Memory)      ------ 存下事实/偏好, 下次能检索  [B13 已覆盖]
层级2: 经验(Experience)  ------ 存下"怎么做成功/失败", 下次主动规避/复用
层级3: 演进(Evolution)   ------ 从经验中提取规律, 改自己的提示词/工具/甚至权重

面试里能区分这三者,说明你理解的不是"加个数据库",而是"Agent 的学习闭环"。很多简历写"Agent 有记忆",一问"它怎么从错误里变聪明"就卡壳------本文就是补这个缺口。

二、反思(Reflection):让 Agent 自己给自己的输出打分

最经典的机制(源自 Reflexion 论文):Agent 执行后,不直接交差,而是先"照镜子"------用一次额外的 LLM 调用评估自己的结果,产出"反思轨迹",存进记忆,供下次参考。

复制代码
        ┌─────────────┐
任务 ──>│ Agent 执行   │──> 结果
        └─────────────┘       │
                              ▼
                       ┌─────────────┐
                       │ 自我反思     │ LLM 评估: 对不对? 错在哪? 下次怎么改?
                       │ (反思轨迹)  │ 例: "我上次忘了校验日期格式, 导致解析失败"
                       └─────────────┘
                              │
                              ▼
                       ┌─────────────┐
                       │ 经验记忆库  │ 存 (任务类型 -> 反思 -> 改进建议)
                       └─────────────┘
                              │ 下次同类型任务前先读
                              ▼
                       改进后的执行 (更少犯错)

def reflect(task, trajectory, result, llm):
    prompt = f"""
你刚完成了任务:\n{task}
你的执行轨迹:\n{trajectory}
最终结果: {result}
请反思:
1. 结果是否正确? 若否, 根本原因是什么?
2. 哪一步本可以做得更好?
3. 下次遇到同类任务, 给出 1 条具体改进建议。
"""
    return llm(prompt)   # 产出结构化反思, 存入经验库

反思的关键是把"失败"变成"可检索的经验"。没有反思,错误随风而去;有反思,错误沉淀为资产。这是自我改进最便宜、最先该做的一层。

三、经验库(Experience Bank):结构化的"踩坑本"

反思产出的是自然语言,直接塞进向量库会噪声很大。工程上要做结构化经验

复制代码
经验条目 schema:
{
  "trigger": "当任务是 X 类型时",        # 检索键
  "context": "在 Y 条件下",
  "failure_mode": "曾因 Z 失败",         # 失败模式
  "fix": "应当先做 W 再执行",            # 改进动作
  "confidence": 0.8,                     # 该经验可信度
  "usage_count": 3,                      # 被复用次数
  "success_after": 3,                    # 复用后成功次数
}

检索时按"当前任务特征"匹配 trigger/context,命中就把 fix 前置成 system 提示或前置步骤 。经验库要能自我加权:复用后成功的经验置信度升、反复失效的经验降级甚至淘汰------避免"一条错误经验被奉为圭臬"反而带偏。这其实是把 B13 的记忆从"事实库"升级成"策略库"。

复制代码
┌──────────────┬──────────────────┬────────────────────────┐
│ 机制          │ 存什么           │ 检索后怎么用           │
├──────────────┼──────────────────┼────────────────────────┤
│ 记忆(B13)     │ 事实/偏好/状态   │ 拼进上下文当背景知识  │
│ 反思          │ 对单次结果的评价 │ 下次规避同类错误      │
│ 经验库        │ 结构化策略条目  │ 命中则前置改进动作    │
└──────────────┴──────────────────┴────────────────────────┘

四、从失败中学习:错误分类与纠正回路

自我改进要"可运营",先得把错误分类,不同类走不同回路:

复制代码
错误类型              -> 纠正回路
─────────────────────────────────────────────
工具调用参数错        -> 经验库记录正确参数模板, 下次预填
检索不到/检索错       -> 反思 query 构造, 改进重写策略
推理逻辑错           -> 触发 self-consistency / 外部校验
幻觉/事实错          -> 强制引用溯源, 接事实核查工具
规划失败(卡死循环)   -> 记录死循环模式, 加步数上限+回溯

一个常被忽视的设计:失败也要落库并归因 ,而不是只记录成功。很多团队的 Agent 日志只存"成功轨迹",等于只学了一半。要建"错误样本集",定期让 Agent 在错误样本上"重做并对比",看改进是否真的生效------这就是经验的回归测试

五、提示词自我演化:让 Agent 改自己的 system prompt

比经验库更激进的是让 LLM 直接改写自己的提示词。典型流程:

复制代码
初始 system prompt
   │
   ▼
跑一批任务, 收集 (成功/失败) 轨迹
   │
   ▼
元提示(Meta-prompt): "基于以下成败, 重写 system prompt 使其更鲁棒"
   │
   ▼
新 prompt ──> 在验证集上评测 ──> 优于旧版则采纳, 否则回滚

这本质上是提示词层面的"变异-选择"进化 。要点:

  • 必须有验证集 + 自动评测 ,否则 prompt 会被改得越来越长、越来越啰嗦(prompt 膨胀)。

  • 版本化 提示词,可灰度、可回滚(呼应 B23 灰度)。

  • 元提示本身要约束"不要无限加规则",防止正反馈式的复杂度爆炸。

    def evolve_prompt(old_prompt, trajectories, eval_fn):
    critique = summarize(trajectories) # 成败归纳
    new_prompt = meta_llm(f"""
    当前 prompt:\n{old_prompt}
    近期成败:\n{critique}
    请重写 prompt 以修复失败模式, 但保持简洁, 不超过原长度 1.2 倍。
    """)
    score_new = eval_fn(new_prompt)
    score_old = eval_fn(old_prompt)
    return new_prompt if score_new > score_old else old_prompt # 劣化则回滚

六、闭环微调(Fine-tuning Loop):把经验变成权重

提示词演化有天花板(上下文有限、长 prompt 反而干扰)。更高阶的是把高质量轨迹变成训练数据,微调底座

复制代码
线上 Agent 运行
   │ 收集 (任务, 轨迹, 结果, 人类反馈/自动评分)
   ▼
筛选高质量轨迹 (成功 + 人类赞 + 评测高分)
   │
   ▼
SFT 微调 或 DPO (以高分轨迹为正, 低分为负)
   │
   ▼
新模型上灰度 (B23) ──> 评测优于旧版? ──> 全量, 否则回滚
   │
   ▼
下一轮继续收集 (持续学习闭环)

这条路的收益是推理成本下降 (好能力固化进权重,不再依赖长 prompt / 多次采样),但代价是训练管线复杂、有灾难性遗忘风险、需严格护栏。所以它是"成熟业务、量大、已验证提示词方案有效"之后的进阶选项,不是起手式。和 A27 讲的模型融合/蒸馏一样,微调进的是"能力固化"这条线。

复制代码
经验沉淀的三条技术路线对比:
  路线            成本      收益        适用阶段
  ──────────────────────────────────────────────
  经验库/反思      极低      中(避坑)    任何阶段先上
  提示词演化       低       中高        有验证集后
  闭环微调        高       高(降本)    规模化且方案稳定后

七、在线学习与人类反馈:把人请回闭环

自我改进不能只靠 Agent 自己反思,否则会强化自己的偏见(自己觉得对就一直错)。必须接入人类反馈:

  • 显式反馈:用户对结果点赞/点踩、编辑修正------这是最珍贵的信号,直接入经验库与微调集。

  • 隐式反馈:用户是否可以继续对话、是否中途放弃、是否重复提问------负向信号。

  • 人类在环审核(呼应 B27):高风险动作的改进建议,先让人确认再固化。

  • 反馈偏见校正:避免"爱点赞的甜言蜜语"被过度学习,要对反馈做去偏与抽样。

    人类反馈 ──> 经验库(可解释) + 微调训练集(权重级)
    │ │
    │ └─> 透明、可审计、可逆
    └─> 权重级改进需严格灰度+回滚护栏

八、自我改进的陷阱与护栏

  1. 错误经验自我强化:一条错的经验被反复复用,越改越错。对策:经验置信度机制 + 人类抽检。

  2. prompt / 经验膨胀:越攒越多规则,反而降低泛化。对策:定期压缩、用验证集卡阈值。

  3. 灾难性遗忘(微调路线):新任务冲掉旧能力。对策:保留旧任务评测集做回归。

  4. 反馈偏见:模型讨好爱点赞用户。对策:反馈去偏、引入客观评测。

  5. 不可解释:权重级改进黑盒,出事难排查。对策:关键改进留提示词层 + 全量日志。

    ┌──────────────────┬──────────────────────────────┐
    │ 陷阱 │ 护栏 │
    ├──────────────────┼──────────────────────────────┤
    │ 错误经验自强化 │ 置信度权重 + 人工抽检 │
    │ 规则膨胀 │ 验证集卡阈值 + 定期压缩 │
    │ 灾难性遗忘 │ 旧任务回归集 │
    │ 反馈偏见 │ 反馈去偏 + 客观评测 │
    │ 黑盒不可解释 │ 关键改进留提示词层 + 日志 │
    └──────────────────┴──────────────────────────────┘

九、生产落地深潜:把"自我改进"做成可运营的系统

落到真实团队,自我改进最忌"做成研究 toy",正确做法是当成带护栏的数据飞轮 运营。第一步是全量埋点 :每条轨迹自动打标"成功/失败/人类反馈/复用经验ID",没有这些数据,所谓改进全是玄学。第二步是经验回归测试 :每周用历史错误样本跑一遍当前 Agent,看"老错误是否还会犯",这比看新指标更能说明改进是否有效。第三步是分级采纳 :经验库可自动采纳、提示词演化需人工 review、权重微调需灰度+回滚------越往权重走,护栏越重。第四步是可解释看板:展示"本周新增 N 条经验、采纳 M 条、因经验规避了 K 次同类失败",让业务方看得见 Agent 在变聪明。

这套飞轮的核心纪律是"改进必须可量化、可回滚、可归因"。我见过最典型的翻车:一个团队让 Agent 自动改自己的 prompt,三个月后 prompt 胀到上万字,新同事完全看不懂,且无人知道哪条规则是何时加的、为什么加------这就是缺了版本化与回归测试的后果。所以自我改进系统的成熟标志,不是"它改了多少次",而是"任何一次改动都能在 5 分钟内定位、复盘、回滚"。能讲清这个运营视角,面试基本已站在 Agent 平台负责人的位置。

9.1 冷启动与隐私合规

补两节容易被忽略、却决定项目生死的角度。第一是冷启动:自我改进系统最尴尬的阶段是"还没积累经验时,它什么都不懂"。解决冷启动有三招------其一,用专家知识手动播种一批初始经验(老员工的踩坑本直接结构化入库),让 Agent 一上线就有底子;其二,先用"规则 + 提示词"把基线做稳,再在稳定运行中慢慢用真实数据稠化经验库,别一上来就依赖自动反思;其三,早期多接人类反馈(B27 的 HITL),用人的纠正当第一批高质量经验。冷启动做不好,系统会在"空库 -> 乱猜 -> 更乱"的恶性循环里死掉,所以"先人工后自动"是铁律。

第二是隐私与合规 ------自我改进会把用户交互"内化"进模型或经验库,这有合规风险。比如经验库里沉淀了"某用户的特殊偏好",这算不算隐私数据?微调训练集里混入了含 PII 的轨迹,是否符合数据合规?我的做法是:经验库存储去标识化的策略("当任务类型是 X 时应当先做 Y"),而非原始对话;微调数据过一道脱敏与合规审查;并且给用户"退出改进计划"的权利(类似隐私协议里的 opt-out)。这些不是技术细节,而是上线前必须过的法务关卡。能在面试里把"自我改进"和"隐私合规"挂钩,会显得你懂真实企业落地,而不只是做研究玩具。

9.2 经验库与 RAG 的边界,以及组织落地

补一节容易被混淆的概念边界------经验库(本文)和 RAG(A32)到底什么关系 。很多人把"Agent 会学习"等同于"接个 RAG 知识库"。其实 RAG 喂的是外部事实知识 (文档、手册、实时数据),经验库喂的是Agent 自身的成败策略 (怎么做更对)。两者是不同维度的"外挂":RAG 解决"知不知道",经验库解决"会不会做"。一个 Agent 可以同时挂两者------先 RAG 检索业务文档,再调经验库规避"上次在这类任务上踩的坑"。混为一谈的后果是:把反思文本当知识文档塞进 RAG,导致检索召回一堆"我上次犯的错误"当成正经知识,反而带偏。正确做法是两套存储、两套 schema、两套检索逻辑,经验库带置信度与成败标记,RAG 带来源与时效标记,绝不混库。这个区分本身就是一个很好的面试点。

再谈组织层面的落地,这是很多技术人忽略的。自我改进系统上线后,最大的阻力往往不是技术而是组织流程 :谁有权批准一条经验晋级为"默认策略"?谁负责复核自动改写的 prompt?当 Agent 因为"学到了错误经验"犯了重大事故,责任怎么定?我建议设一个轻量的改进治理委员会 (甚至可以是周会形式):每周 review 经验库新增条目、prompt 演化 diff、微调候选,人工签字后才进生产。这听起来笨重,但能把"自我改进"从"危险的自动化"变成"可控的进化"。见过最激进的团队让 Agent 全自动改 prompt + 全自动微调,三个月后线上行为完全不可解释,只能回滚到零并推倒重来------这就是缺治理的代价。所以自我改进的成熟度,最后拼的不是算法多花哨,而是有没有把"让机器自己改自己"关进可审计、可追责的笼子里。这也是为什么 B27 人机协作、B32 安全对抗在这条链路上是刚需而非点缀。

9.3 自我改进的"度":什么时候不该让它自己学

补一节反直觉的认知------自我改进不是越多越好,有些场景必须关掉 。其一是高监管行业 (金融决策、医疗诊断):任何"模型自己改自己"的行为都需可解释、可追责,自动演化 prompt 或微调在这种环境里往往不被合规接受,宁可人工驱动、慢但可控。其二是长尾罕见任务 :样本太少,自我改进容易过拟合到个别案例,反而损害泛化,这类应走"人工审核 + 慢迭代"而非自动吸纳。其三是探索期的新业务:连"什么是好结果"都没定义清楚,就让 Agent 自我改进,等于让它朝一个未知方向狂奔,必须先用人工标定 baseline 和评测集,再谈自动化。

还有个工程心态值得单独讲:自我改进是"锦上添花"不是"雪中送炭" 。很多团队 Agent 基础能力还稀烂(检索不准、工具老报错),就急着上"自我改进飞轮",结果飞轮转起来只是在加速放大基础缺陷,越学越错。正确的优先级永远是:先把单条链路做对(检索、工具、规划都稳),再叠经验库(避坑),再叠提示词演化,最后才上闭环微调。跳级只会放大问题。这和各系列一贯的工程纪律一致------先把确定性做扎实,再谈智能化,顺序错了全盘皆输。能把"自我改进的启用条件"讲清楚,比只会吹"我们的 Agent 会自己学习"专业得多。

9.4 经验检索的双路召回与适用性判断

补一个工程细节:经验库的检索召回质量 直接决定改进上限。很多团队把反思文本直接丢向量库,结果命中一堆语义相近但情境不同的经验,反而误导。正确做法是双路检索 ------一路按"任务类型/工具名"做结构化精确匹配(如 trigger=调用日历API 且 参数含时区),一路按语义做相似匹配,两者交集合并后再用置信度排序。还能用 LLM 做"经验适用性判断"(这条经验对当前任务真的适用吗),过滤掉误召回。这一步做好了,经验的命中率能从"聊胜于无"提升到"真正帮得上忙",是自我改进从玩具变生产的关键一跃。

复制代码
双路召回:
  结构化精确匹配 ──┐
                   ├─> 交集 + 置信度排序 ──> LLM 适用性过滤 ──> 命中经验
  语义相似匹配   ──┘

9.5 自我改进与 RAG、评测的协同闭环

把 B33 放进整个 Agent 技术栈里看,它和 A32(RAG 进阶)、B31(评测深化)是铁三角关系:

复制代码
        ┌─────────────┐
        │   RAG(A32)   │ 喂"外部事实知识"(知不知道)
        └─────────────┘
               │
               ▼
        ┌─────────────┐      ┌─────────────┐
        │  经验库(B33) │<────>│ 评测(B31)   │ 裁判: 改动是否真更好
        │ 喂"成败策略" │      │ 轨迹/部分分 │
        └─────────────┘      └─────────────┘
               │
               ▼
         Agent 行为持续变聪明(可量化/可回滚/可归因)

具体讲:RAG 解决"知不知道业务知识",经验库解决"会不会做这类任务",评测则充当"裁判"------任何新经验 / 新 prompt / 新权重,先过 B31 的评测门禁再过灰度(B23)。没有评测,自我改进就是玄学;没有 RAG,Agent 缺少事实底座;没有经验库,Agent 每次都从零开始。三者协同,才是完整的"越用越聪明"飞轮。面试能把这三者串成一张图,说明你理解的是 Agent 的全局工程,而非孤立技巧。

9.6 错误样本回归测试怎么落地

"越用越聪明"必须可被证伪,否则只是错觉。落地做法:每周从线上抽一批"历史错误样本"(失败轨迹 + 当时命中的经验),让当前 Agent 重跑,对比"旧版是否还犯、新版是否规避"。配套一张回归看板:

复制代码
错误样本集 ──> 当前 Agent 重跑 ──> 成功率 vs 上周
   │                              │
   └── 老错误复发? ──> 告警 + 复盘经验库 ──> 降级/修正对应经验

要点:错误样本要覆盖"不同失败模式"(参数错、检索错、逻辑错、幻觉),且要带"当时上下文"而非只存结论,否则重跑失真。这一步把自我改进从"感觉变聪明"变成"可度量的能力曲线",是和 B31 评测深化同构的工程纪律。见过太多团队只盯着"本周新增多少经验",却从不验证"老错误是否复发"------结果经验库越长,Agent 反而越容易在老坑里反复栽。回归测试就是专治这种"虚假进化"的疫苗。

9.7 与 B30 生产化的承接

最后点一句和 B30(生产化)的承接:本文讲的自我改进,正是 B30 里"持续运营"的具体手段之一。生产化改造时,把"经验库 + 反思 + 评测门禁"作为标准组件接入,Agent 就从"上线即巅峰、之后只退不进"变成"持续演进"。所以如果你只能给现有 Agent 加一个长期能力,优先加"自我改进飞轮"------它单点撬动的是整个系统的寿命。这也是为什么 B 系列从 B11 评估一路走到 B33,始终在讲同一件事:智能体能不能上生产,不取决于它多会聊,而取决于它"在一切都会出错的现实里"是否依然稳、可控、可查、可进化。

十补、自我改进的启用条件与组织 owner

补一个落地真相:自我改进最容易失败在'没人维护'。系统上线时轰轰烈烈,三个月后负责 review 经验的同学转岗了,经验库开始堆积未审核条目、错误经验慢慢占据主流,Agent 行为悄悄退化却没人发现。所以必须把这个'改进治理'写进某人的 OKR,设置定期巡检(周会 review 新增经验 + 月度错误样本回归),把它当成'系统运维'而不是'一次性项目'。见过太多 Agent 平台'上线即巅峰、之后只退不进',根因都是缺了持续的治理 ownership。这又回到 B30 生产化的主题------能上线只是开始,能持续运营才是本事。

十、面试速答 + 高频追问清单

面试速答(背下来):

  • 自我改进三层:记忆(存事实)→ 经验(存成败策略)→ 演进(改提示词/权重)。

  • 反思(Reflexion):执行后额外 LLM 调用评估轨迹,产出反思存库,下次复用避坑。

  • 经验库要结构化(trigger/failure_mode/fix/confidence),并能按复用成功率加权、淘汰失效经验。

  • 提示词演化:用元提示改 system prompt,须配验证集+版本化+回滚,防膨胀。

  • 闭环微调:高质量轨迹 SFT/DPO,降本但需防灾难性遗忘,规模化后上。

  • 必须接人类反馈校正偏见;改进要可量化、可回滚、可归因。

  • 经验库 ≠ RAG:RAG 喂事实知识,经验库喂成败策略,两套存储绝不混库。

高频追问:

  1. 反思和经验库有何不同?答:反思是单次评价,经验库是结构化、可加权、可检索的策略沉淀。

  2. 提示词自动演化最大的风险?答:无验证集导致膨胀与正反馈复杂度爆炸,需回归门禁。

  3. 什么时候才上闭环微调?答:规模化、提示词方案已验证有效、且能扛训练管线成本时。

  4. 怎么防止错误经验自我强化?答:置信度衰减+人工抽检+错误样本回归测试。

  5. 自我改进为什么依赖评测?答:没有评测门禁就无法判断改动是否真的更好,只能玄学。

  6. 经验库直接丢向量库够吗?答:不够,需结构化精确匹配+语义匹配双路,并用 LLM 判适用性。

  7. 高监管场景能上自动微调吗?答:通常不行,需可解释可追责,宁可人工驱动慢但可控。

相关推荐
安逸sgr3 小时前
Dropout 和正则化:深度学习如何缓解过拟合?
人工智能·ai·大模型·agent·智能体
Bruce_Liuxiaowei20 小时前
基于微步在线威胁情报的公网 IP 攻击迹象监测:threatbook_query 脚本全解析与 BruceSec 平台整合实践
数据库·tcp/ip·安全·网络安全·智能体
NutShell Wang1 天前
「音画同生」时代开启:2026 年 8 月 AI 视频生成四大发布复盘
人工智能·开源·aigc·ai agent·智能体·vibe coding
新知图书1 天前
1.1 从大语言模型到智能体:范式演进
人工智能·ai agent·智能体·智能体工程
新知图书1 天前
4.2 北京欢迎您:基于Anthropic的京韵导览Agent实战(智能体工程)
人工智能·agent·ai agent·智能体·智能体工程
安逸sgr1 天前
优化器是什么?SGD、Momentum、Adam 有什么区别?
人工智能·ai·大模型·agent·智能体
阿图灵2 天前
Agentic AI 架构入门(九):Agent 通信协议全景——ACP/A2A/AG-UI/MCP
人工智能·ui·架构·ai agent·智能体·mcp·agentic ai
数据分析小兵2 天前
金融数据分类分级实战系列四:如何实现AI自动分级
人工智能·数据治理·数据安全·数据分类分级·ai大模型·数据中台·智能体