主题色
250
壁纸模式
壁纸设置
特效设置
固定导航栏
字体选择
文章列表布局
3119 字
8 分钟
Agent 如何越用越强
2026-05-24

Agent 处理过的任务越多,不等于它就会自动变强。日志只是原料;如果没有整理、验证和回灌,下次遇到同类任务,它仍然会从头开始。所谓“越用越强”,需要先把经验变成可复用的知识、规则或工具,再让下一次任务能够可靠地使用它们。

这篇文章不讨论模型凭空产生意识,而讨论一套可以落地的工程闭环:哪些经验值得保存,应该保存成什么,怎样验证改进确实有效,以及如何防止错误经验越积越多。

一、先把“越用越强”说清楚#

“学习”至少有三种形态,区别在于改变发生在哪里、能持续多久。

学习形态改变发生在哪里持续时间适合解决的问题
上下文学习当前上下文中的示例和指令当前会话或当前任务临时约束、少量示例、即时适配
后训练模型参数长期,但需要重新训练和发布稳定、通用、规模足够的行为模式
外部化学习文件、知识库、提示词、工作流或工具代码跨会话,可编辑可回滚项目经验、用户偏好、重复流程和策略

上下文学习可以让模型根据当前示例调整回答,但不会自动修改模型参数;后训练把模式写进参数,成本和验证周期都更高;外部化学习则把经验留在模型之外,是应用团队最容易持续迭代的一层。

要特别区分“检索”和“学习”。RAG 只负责把已有内容找回来;只有当反馈经过筛选、形成新条目并在后续任务中被验证,才算完成了一次学习。把所有日志直接塞进向量库,通常只是增加了检索噪声。

下面这张图只保留闭环中的关键状态,具体实现可以使用文件、数据库或代码工具。

flowchart LR task["执行任务"] --> outcome["结果与轨迹"] outcome --> review["复盘:找出可复用经验"] review --> candidate["候选记忆 / 规则 / 工具"] candidate --> validate["离线评估与安全检查"] validate -->|通过| store["版本化存储"] validate -->|失败| discard["丢弃或退回修改"] store --> retrieve["按需召回"] retrieve --> task

闭环里最容易被省略的是验证:没有验证门槛,系统只是在积累文本,不能证明自己变强了。

二、五种外部化学习机制#

2.1 从失败中学习#

任务失败后,先记录“发生了什么”,再记录“下次改变什么”。一条有用的反思至少应包含任务条件、可观察证据、失败原因、下一次约束和适用范围;只有一句“下次注意”没有复用价值。

反思文本应该作为候选经验,而不是直接成为系统指令。写入前要检查来源、敏感信息和与现有规则的冲突;召回时也要保留原始证据,避免模型把推测当成事实。

失败信号往往比成功信号更容易指向具体改动,但这不是“失败一定更有价值”。成功轨迹同样可以提炼成工作流,最终仍要靠后续评估判断它是否值得推广。

2.2 把经验整理成 Skill#

Skill 是一份可复用的任务说明,通常包含触发条件、输入输出、操作步骤、检查点和失败处理。它适合承载会变化的策略和流程,不适合充当未经核验的事实库。

项目里的 CLAUDE.md 可以保存项目约束和工作流,是外部化经验的一种载体;它并不意味着 Agent 已经自动学会了所有内容。无论由人还是由 Agent 生成,都应标注适用范围、来源和更新时间,并通过版本控制管理修改。

2.3 在后台整理记忆#

记忆整理不必阻塞前台对话。前台只写入带来源的候选记录,后台再异步完成去重、合并、淘汰过期内容和重建索引。这样可以把“响应快”和“整理彻底”分开。

后台任务也不是无条件追加:新事实可能修正旧事实,旧规则可能已经失效。整理结果应保留时间戳和变更记录,出现错误时能够定位来源并回滚。把这个过程称为“睡眠学习”是一个比喻,不应据此推断某个产品一定采用了固定的四阶段实现。

2.4 自动优化提示词#

系统提示词优化的关键,不是让模型随意改写提示词,而是把失败轨迹转换成可检查的规则,再在固定评估集上比较新旧版本。自然语言反馈比单一的对错奖励包含更多诊断信息,但“更省数据”只在特定任务和评测设置下成立,不能当作普遍定律。

DSPy 将提示词和示例视为可编译的程序参数;OPRO 让模型根据历史得分提出新提示词;GEPA 则利用轨迹反思和候选解的帕累托前沿搜索改进方向。GEPA 论文报告了其评测中的效果和采样优势,这些数字应理解为论文实验结果,而不是所有 Agent 的保证。

提示词优化适合处理行为策略和边界条件。事实性内容仍应回到有来源的知识库,不能靠改写提示词“记住”。

2.5 录制并回放工作流#

当任务的参数经常变化、步骤却基本固定时,每次都让模型重新发现流程是一种浪费。录制机制可以把一次成功执行转成带参数的步骤序列,后续先匹配工作流,再填入本次任务的参数。

可靠回放至少需要三道检查:动作前验证前置状态,动作后验证结果状态,任一检查失败就交还给完整 Agent 或人工处理。录制完成后应在重置环境中重新执行,并用独立评判器确认结果,再允许进入工作流库。对付款、删除等不可逆操作,还要保留人工确认点。

这类设计与 Agent Workflow Memory 的思路相近:提炼可复用流程并按任务选择性提供。论文中的网页导航结果不能直接外推到所有业务系统,真正的收益取决于状态检查和回放覆盖率。

三、从主动发现到工具创造#

工具发现和工具创造是一条连续的能力链:先减少无关工具对上下文的占用,再让 Agent 补齐预定义工具集之外的能力。

3.1 按需发现工具#

把几千个工具的完整 schema 一次性注入上下文,会增加 token 成本,也会让模型更难判断该用哪个工具。按需发现可以先检索服务器或能力类别,再加载少量候选工具的完整定义。

MCP-Zero 论文在 APIBank 评测中报告了约 2,800 个工具场景下的 98% token 节省;这是该基准和实现下的结果,不能简单理解为所有工具目录都能达到同样比例。Skills 的渐进式披露也是同一原则:启动时只展示短目录,真正需要时再读取完整说明。

一个可用的工具目录至少应说明能力边界、输入输出、权限范围、失败语义和示例。只提供名称和一句描述,检索即使命中也很难安全调用。

3.2 让 Agent 创造工具#

工具创造不是“让模型写完代码就算成功”,而是一条受约束的发布流程:

  1. 先定义工具契约,明确输入、输出、副作用和错误处理。
  2. 在隔离环境中生成实现,并运行单元测试和集成测试。
  3. 用代表性任务回放,检查结果质量、资源消耗和权限边界。
  4. 通过审核后注册为有版本号的工具,保留旧版本和回滚路径。

Voyager 在 Minecraft 环境中把成功探索固化为可组合的代码技能,展示了“经验变成工具”的可能性。它的实验环境与企业业务不同,能迁移的是流程:探索、验证、沉淀,而不是具体成功率。

因此,自我进化不只发生在工具层。工具层积累可调用能力,知识层保留事实和经验,策略层通过评估改进提示词与工作流;三层都要有来源和版本,才能互相校验。

四、安全边界:没有准入,学习就是污染#

自我改进主要面对四类风险:外部工具或依赖的供应链攻击,行为逐渐偏离目标的能力漂移,自造工具质量下降,以及记忆和经验投毒。最后一类影响范围最大,因为错误条目可能跨会话持续影响决策。

可以把所有新经验都当成“不可信输入”,沿着四道关处理:

  • 来源关:记录创建者、来源证据、时间和适用范围,指令与经验分开存放。
  • 一致性关:新事实与旧事实冲突时进入合并、覆盖或人工确认流程,不要静默追加。
  • 评估关:在固定的回归集和安全集上比较新旧版本,检查质量、成本和拒答边界。
  • 发布关:先灰度或按租户启用,持续观察失败率,出现回归可以立即回滚。

代码工具还需要权限最小化、网络和文件系统隔离;不可逆副作用则需要明确的人工确认。把“可生成”与“可执行”分开,才能让 Agent 有创造空间,又不让实验性产物直接进入生产。

小结#

Agent 不会因为使用次数增加就自动学习。真正的成长,是把轨迹中的经验提炼成记忆、规则、工作流或工具,再通过评估、灰度和回滚把有效部分留在系统里。

这套闭环可以按任务类型选择载体:事实进入有来源的知识库,复杂且稳定的流程编成代码工具,变化频繁的策略写成 Skill 或提示词;RAG 负责召回,评估负责决定是否升级。把上下文工程、记忆、MCP、Harness、评估和后训练串起来看,外部化学习正好补上了“运行中如何积累能力”这一环。

判断一个 Agent 是否真的越用越强,不是看它保存了多少条记录,而是看同类任务是否更稳定、错误是否可解释、改进是否能复现,以及失败后能否恢复。

参考资料#

支持与分享

如果这篇文章对你有帮助,欢迎支持作者或分享给更多人

赞助
Agent 如何越用越强
https://blog.souloss.cn/posts/ai/agent/agent-self-evolution/
作者
Tsukimi
发布于
2026-05-24
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时