微软开源SkillOpt:不改动模型自动升级AI智能体技能

在现实世界的AI应用中,智能体技能(Agent skills)扮演着至关重要的角色。它通常是一组以Markdown(.md)格式保存的文本指令,为模型适应特定企业场景和复杂工作流提供了一种机制。然而,优化这些技能的过程往往既缓慢又容易出错。由于无法像训练底层AI模型参数那样直接训练这些文本指令,用户通常只能手动更新文件,通过反复修改指令来“猜测”如何提升智能体的性能并减少错误。
为了解决这一难题,微软开发了一款名为SkillOpt的新开源框架(采用MIT许可协议)。该框架引入了一个专门针对智能体技能的优化器,将包含技能的.md文档转变为一个可训练的对象,使其能够根据性能反馈不断进化。SkillOpt利用深度学习风格的优化技术,让AI能够系统地探索文档修改方案,从而找到最佳指令组合。最重要的是,这一过程完全不需要修改底层模型的权重。
在多项行业基准测试中,SkillOpt的表现超越了现有的基线水平,显著提升了GPT-5.5和Qwen等模型的准确率。最终生成的是一套紧凑且可迁移的技能工件,使AI智能体能够轻松适应新的领域。
优化智能体技能面临的挑战
智能体技能将程序性知识封装在自然语言规范中,涵盖了领域启发式规则、工具使用策略、输出约束以及已知的故障模式。这些技能为智能体适应复杂的企业工作流提供了外部接口。在实际应用中,智能体技能通常以文本文档形式存储,并在执行前插入到智能体的上下文中。
技能的一大优势在于,它们可以在不改变模型权重的情况下定制底层模型的行为。然而,为了充分发挥智能体的性能,技能文档本身需要进行微调和优化。
虽然深度学习依赖严格的数学控制来保证稳定性,但人工进行提示工程往往依赖于试错。当试图根据反馈自动更新技能文档时,由于缺乏数学纪律,文本内容变得极不稳定。
微软亚洲研究院的高级研究软件开发工程师杨一帆向VentureBeat表示,问题不在于是否能够做出改变,而在于如何确保这些改变在数学上是合理的。
“瓶颈不在于团队能否修改技能,而在于他们无法保证修改一定能带来性能提升,”杨一帆说道,“反复出现三种失败模式:没有步长控制,导致技能发生漂移;没有验证机制,导致看似合理的修改被写入,却在无形中降低了性能;没有负向记忆,导致相同的失败编辑反复出现。”
为了说明未经数学验证的编辑是多么容易导致性能下降,杨一帆指出:“一次未经把关的重写将GPT-5.5在SpreadsheetBench上的分数从41.8拉低到了41.1。”
据杨一帆介绍,在多步骤工作流中,这些失败模式会被放大。“因为那是前沿模型在零样本(zero-shot)情况下最薄弱的环节。不是推理能力,而是程序纪律:格式、自验证、工具策略。”
在SkillOpt出现之前,智能体技能主要依靠手工编写、一次性生成,或者通过控制松散的自我修正流水线进行演化,但后者无法在反馈下可靠地提升性能。
像TextGrad和GEPA这样的提示优化方法虽然将语言工件视为可优化对象,并利用轨迹反馈来演化提示,但它们主要关注单提示配置,而非生成持久的、可复用的技能工件。
与此同时,像EvoSkill和Trace2Skill这样的技能演化与发现方法,虽然能将智能体的执行经验转化为轨迹教训来优化技能文件夹、构建领域库或进行进化搜索,但它们都没有应用深度学习风格的控制机制,如学习率、验证门和动量,而这些机制对于持续训练单一、紧凑的技能文档是必不可少的。
将数学严谨性引入文本优化
SkillOpt通过一个迭代的“提议-测试”循环来优化文本文档,该循环将执行任务的模型与优化技能的模型分离开来。具体过程包含以下几个步骤:
-
初始化与执行:SkillOpt从一个初始技能文档和一个冻结的目标模型开始。目标模型运行一批任务,生成执行轨迹,这些轨迹作为当前步骤的证据。
-
分析与提议:一个离线优化器模型分析这些轨迹,将成功案例和失败案例分离成小批次。通过观察小批次,模型能够识别系统性的程序性错误,而非一次性异常。基于这些模式,优化器会对技能文档提出结构性添加、删除或替换的编辑建议。
-
过滤与排序:系统会对提议的编辑进行审查,过滤掉重复或矛盾的内容,然后根据预期效用对这些候选编辑进行排名。
-
编辑预算:SkillOpt不会应用所有提议的更改,而是将列表限制在该步骤的最大编辑预算内,从而生成一个候选技能。
-
验证与反馈:利用目标模型在保留的验证集上对候选技能进行评估。如果候选技能提高了验证分数,它将被接受并成为新的当前技能。如果失败,编辑将被拒绝并送入“拒绝编辑缓冲区”,提供负反馈,使优化器知道不再重复该错误。
SkillOpt通过引入深度学习中的数学概念,直接解决了将文本视为可训练对象的问题。创作者指出,“这种深度学习的类比是操作性的,而非装饰性的”,这有助于该框架避免与其他优化技术相关的不稳定性问题。
编辑预算充当了学习率的角色。通过限制一次应用的编辑数量,可以防止技能版本距离其先前状态过远,从而在保持连续性的同时获取新的程序。
就像在深度学习中检查验证损失一样,严格的保留样本确保了只有那些在数学上确实提高了智能体在验证集上实际性能的文本编辑才会被保留。
在一个周期结束时,SkillOpt通过比较上一个周期和当前周期技能下的任务表现来执行慢速更新。这类似于动量项,能够将持久的、长周期的程序性教训向前推进,同时将其与快速的、步骤级别的编辑隔离开来。
SkillOpt的实际应用表现
为了在实践中评估该技术,研究人员在不同的模型上测试了SkillOpt,范围涵盖大规模前沿模型(如GPT-5.5)到较小的闭源和开源模型(包括GPT-5.4-mini和Qwen3.5-4B)。他们还在不同的执行框架中部署了这些技能,既使用了普通聊天模式,也使用了复杂的编码框架(如Codex CLI和Claude Code)。
评估跨越了多样化的行业基准,包括单轮问答、涉及工具使用的多轮代码生成以及多模态文档推理。研究人员将SkillOpt与多个基线进行了比较,从默认的无技能设置到人工编写的技能和一次性生成的LLM技能。此外,它还与先进的提示优化方法进行了对比。
关注微信号:智享开源 ,及时了解更新信息。

关注微信

还没有任何评论,你来说两句吧!