乐于分享
好东西不私藏

Agent 技能的自我优化架构:当技能文档成为可训练的参数空间

Agent 技能的自我优化架构:当技能文档成为可训练的参数空间

构建一个可靠的 Agent,本质上是在回答一个问题:如何让模型在特定场景下稳定地做出正确的行为序列。业界目前的共识是,纯粹的模型能力并不够——你需要把领域知识、行为规范和最佳实践编码成 Agent 能够理解和遵循的技能文档。但问题在于,这些技能文档的编写和维护,至今仍然高度依赖人工经验。

你手写一个技能文档,投入生产,然后呢?Agent 在真实使用中产生了大量的执行轨迹——哪些步骤成功了,哪些环节出了偏差,模型对技能描述的哪些部分理解得最好。这些信息被记录在日志里,但很少被系统地反馈回技能文档本身。技能文档是静态的,而 Agent 的经验是持续增长的,这两者之间存在一条本不应存在的鸿沟。

Microsoft SkillOpt 最近提出的架构,正在填平这道鸿沟。它的核心思想并不复杂:把技能文档当作一个可以迭代优化的参数空间。不是去微调模型权重,而是在文本空间中执行有界的编辑操作,让技能文档本身随着使用不断改进。

为什么静态技能文档是瓶颈

理解 SkillOpt 的架构价值,需要先看清当前技能文档管理方式的天花板在哪里。

一个典型的 Agent 技能文档,通常包含任务描述、执行步骤、工具使用规范和已知注意事项。它本质上是一个嵌入在系统提示词或技能库中的文本片段,用于引导模型在特定场景下产生正确行为。目前的主流交付方式有两种:人工编写和一次性生成。

人工编写的问题在于质量不稳定。一位经验丰富的工程师可能写出高度有效的技能,但这份技能背后是数年积累的隐性知识。换一个人来写,效果可能天差地别。更关键的是,人工编写的技能几乎没有系统性的迭代机制——你写出来,觉得”够好了”,就放进去了,然后它很可能再也不会被更新。

一次性生成的做法是请一个强模型(比如 GPT-5.5 或 Claude Opus)根据需求描述直接生成技能文档。这比手写快,质量也不差,但同样没有迭代改进的闭环。生成的技能或许在第一轮表现不错,但它不会随着使用而变得更好。

两种方式的共同缺陷是:技能文档与 Agent 的实际执行经验之间没有反馈回路。Agent 每天都在运行,每天都在产生成功和失败的轨迹,但这些信息大部分都流失了。如果把 Agent 的使用看成一场持续的实验,那么这些执行轨迹就是实验数据,而技能文档就是需要根据数据不断调整的实验参数。静态技能文档意味着你放弃了从数据中学习的机会。

把技能文档当作可训练的参数

SkillOpt 的架构创新在于,它将模型训练中的核心概念迁移到了文本空间。如果你熟悉神经网络的训练流程——前向传播、损失计算、梯度更新、验证集评估——那么 SkillOpt 的架构会让你感到似曾相识,只不过”参数”从浮点数变成了文本,”梯度”从数学导数变成了有界的文本编辑操作。

完整的优化循环包含六个步骤:

第一步是 Rollout。在当前的技能文档指导下,让 Agent 在一组训练任务上执行,收集完整的执行轨迹和结果评分。这不是单次执行,而是在一个批次内的多次执行,以便获得统计上更稳定的效果评估。

第二步是 Reflect。对收集到的执行轨迹进行分析,找出技能文档中导致失败或次优结果的环节。这个分析本身由一个优化器模型完成——它不直接修改技能文档,而是产出对问题的诊断。

第三步是 Aggregate。将批次内多次 rollouts 的分析结果进行聚合,形成一组候选的编辑方案。聚合的意义在于避免被单次执行的偶然偏差误导——如果一个步骤在五次执行中失败了四次,那才是真正需要改进的地方。

第四步是 Select。从候选编辑方案中选出最有希望的改动。这里的关键约束是”有界编辑”——每次只能做 add、delete 或 replace 操作,且被修改的文本量受一个”文本学习率”参数控制。这个机制直接借用了梯度下降中的步长概念:步子太大可能跨过最优解,步子太小收敛太慢。

第五步是 Update。将选中的编辑应用到技能文档上,产生一个新的候选版本。

第六步是 Evaluate。这是整个循环中最重要的机制——验证门控。新的技能文档不会自动替代旧版本。它需要在一组留出的验证任务上执行,只有验证得分严格超过旧版本时,更新才会被接受。这防止了技能文档在优化过程中发生退化。

这个循环会在多个 epoch 中反复执行。每个 epoch 都包含完整的六步流程,而”文本学习率”会在 epoch 之间逐步衰减,使编辑越来越精细。最终产出的是一个 compact 的技能文档——通常在 300 到 2000 token 之间——可以直接部署到任何兼容的 Agent harness 上。

验证门控:防止技能漂移的关键

在技能优化架构中,验证门控是最值得深入讨论的设计。

模型权重训练中有一个经典问题:模型可能在训练集上表现很好,但在未见过的数据上泛化能力差。文本空间中的技能优化面临同样的风险——一个编辑可能在训练轨迹上提升了效果,但对更广泛的场景产生了负面影响。

SkillOpt 的解决方案是将训练任务和验证任务严格分离。优化循环中所有编辑决定都基于训练任务上的表现,而验证门控使用一组完全不重叠的留出任务。只有通过了留出验证的编辑才能进入技能文档的正式版本。

这个设计的深层次意义在于:它把技能优化从”跟着感觉改”变成了一种可验证的科学过程。每一次编辑都附带了一个”是否真的改好了”的检验。当验证门控拒绝了一次编辑,这本身就是一个有价值的信息——说明你以为是改进的方向实际上在更广泛的场景中并不成立。

更精妙的是,验证门控还提供了跨任务泛化的保障。在 SkillOpt 的实验中,经过优化的技能文档不仅在其原始任务上表现更好,在邻近任务上也展现了正向迁移。这说明验证门控筛选出的不是对特定训练任务的过拟合,而是对一类问题的更有效处理方式。

部署态的持续优化

如果技能优化只能在离线基准测试上进行,它的价值仍然有限——因为真实世界的 Agent 使用场景远比任何一个基准测试丰富。SkillOpt 的 SkillOpt-Sleep 组件解决了这个问题,它将训练循环从离线扩展到了部署态。

SkillOpt-Sleep 的工作方式让人联想到操作系统的夜间维护任务。在白天,Agent 正常执行用户的指令,产生大量执行轨迹。到了夜间(或配置的低负载时段),Sleep 组件会:

从会话日志中收割当天的执行轨迹,从中挖掘出反复出现的任务模式。这些模式代表了用户在真实工作中最常让 Agent 处理的事情,也是技能优化最有价值的素材。

然后在这些真实任务上执行离线回放,应用与离线训练相同的优化循环——rollout、reflect、aggregate、select、update、evaluate——所有环节都在本地完成,不影响白天的正常使用。

优化产生的候选技能文档在通过验证门控后,会被暂存为”待审核”状态。用户可以在第二天审阅这些改动,决定是否采纳。

这个架构模式的价值在于,Agent 的技能库会随着使用自然增长和优化。使用得越多,积累的执行轨迹就越丰富,技能优化的素材就越充足。Agent 不再是一个”出厂配置、永不更新”的工具,而是一个持续适应工作环境的系统。

从生产架构的角度看,Sleep 组件的设计值得关注。它将计算密集的优化工作与延迟敏感的在线服务解耦,通过时间分区避免了资源竞争。这种”白天执行、夜间优化”的模式在一些成熟的软件系统中早有先例——数据库的索引维护、编译器的 profile-guided optimization——在 Agent 系统中同样适用。

跨 Harness 的可迁移性

技能文档的一个实用特性是它的可迁移性。如果你为 Claude Code 优化了一份技能文档,这份文档能否在 Codex 或 Copilot 上使用?

SkillOpt 的实验结果表明,经过优化的技能文档具有良好的跨 harness 迁移能力。在 Claude Code 上优化的技能,在 Codex 的 agentic loop 中也保持了显著的性能提升。甚至跨模型尺度的迁移也是正向的——在一系列小模型上优化的技能,在大模型上同样有效,反之亦然。

这个特性背后的原因值得思考:一份好的技能文档描述的并不是某个特定模型的调用方式,而是任务本身的领域知识、执行逻辑和注意事项。这些内容与模型和 harness 无关的知识,一旦被优化到技能文档中,就具有了广泛的适用性。

从架构视角来看,这意味着技能优化可以被视为一个独立于 Agent 运行时的基础设施层。你可以建立一个集中的技能优化管线,定期从生产环境中收集执行轨迹,运行优化循环,然后将优化后的技能文档分发到所有 Agent 实例上。每个 Agent 实例不需要关心技能是如何优化的,它们只需要加载最新的技能文档并按此执行。

Agent 技能交付的范式转变

SkillOpt 所代表的架构模式,正在推动 Agent 技能从”静态配置”向”可训练参数”的转变。这个转变带来的影响是结构性的。

首先是交付方式的改变。传统的技能交付是一次性的——编写、测试、部署、结束。优化架构下的技能交付变成了持续的过程——部署只是一个起点,随后是持续的执行轨迹收集、分析和迭代优化。

其次是质量保证机制的改变。在没有验证门控的情况下,技能质量的保障依赖于编写者的经验和有限的测试。有了验证门控,每次修改都附带了一个量化的验证结果,质量保障从”人判断”变成了”数据判断”。

第三是技能复用方式的改变。静态技能文档的复用需要人工适配。而通过优化架构产生的技能文档天然具有跨 harness、跨模型的迁移能力,使得组织可以建立一个技能资产库,不同的 Agent 系统共享经过优化的最佳实践。

对 Agent 平台架构师来说,这意味着需要重新思考技能管理基础设施的设计。你需要一个执行轨迹的存储和检索系统,需要一个优化循环的调度和执行引擎,需要一个验证门控的评估框架,还需要一个技能版本管理和分发管线。这些组件组合起来,构成了 Agent 技能持续优化的基础设施层。

当前,这个领域的探索才刚刚开始。SkillOpt 展示了将训练式优化引入技能管理的可行性,但的可扩展性、实时优化、多技能协同等问题还有待深入研究。不过一个趋势已经清晰:当 Agent 的使用本身成为技能改进的训练信号,Agent 能力的上限将不再由编写者的经验决定,而由使用者的使用频率决定——用得越多,技能越好。

#AI应用架构 #AI应用开发 #Agent应用架构 #Agent应用开发 #AI开源项目