宏技能一失败就抓瞎?给 Coding Agent 的技能库装个「降级键」

该文提出面向编码Agent的自适应技能粒度机制,通过运行时路由与宏到微降级恢复,在保证100%任务成功率的同时降低50% token消耗。核心包括:基于结构特征的轻量级粒度控制器、带七元组契约的宏技能定义、事件驱动的有限状态机恢复执行器。实验表明其能精准识别早期失败并有效降级,避免晚期失败下的冗余操作,提升技能执行的可控性与可审计性。

氛围图

💡 一句话总结:把 Agent 技能的「粒度」当作运行时控制变量——该用微工具时用微工具、该用宏技能时用宏技能、宏失败时自动降级补救,试点实验里 100% 成功率的同时把 token 成本压掉一半。做 Agent 框架和技能库的工程师值得深读。

导语:你的技能库可能正在拖累你的 Agent

先问一个可能戳到你的问题:你的 Coding Agent 技能库攒了多少条技能了?十几条 SKILL.md,几十个打包好的工具链,看起来弹药充足。但有没有发现,有些任务让它直接用最笨的「读文件-改代码-跑测试」反而又快又稳,一启用某个看起来很高级的「一键重构」宏技能,跑到一半报错,工作区被改了一半,Agent 开始原地打转?

这不是你的错觉。今年有一批研究在系统性地验证这件事:技能注入的收益是不均匀的。引用的 SWE-Skills-Bench 就发现,当技能的抽象层级和任务上下文不匹配时,技能不仅增加成本,甚至会劣化软件工程表现。技能不是越多越好,也不是越「高级」越好。

那怎么办?上海交大联合华威大学、快手的几位作者在 2026 年 10 月 22 日挂上 arXiv 的这篇论文,给出了一个相当清爽的回答:别把「用不用技能」当成检索的副产品,把它升级成一个运行时控制问题。论文的名字叫 Adaptive Skill Granularity for Coding Agents: Runtime Routing and Macro-to-Micro Recovery(面向编码 Agent 的自适应技能粒度:运行时路由与宏到微恢复)。

想自己动手试?

这篇论文到底想解决什么问题?

把 Agent 的动作想象成两种「粗细」:微动作(micro)是一次一个原始工具调用——读文件、搜代码、编辑、跑测试,每步都很稳,但一个任务要走上六七步;宏动作(macro)是把一整套流程打包成一次调用——比如「移动模块并改写所有 import」,一步顶五步,效率翻倍。

为什么会这样?因为宏技能本质上是把「过去验证过的执行经验」固化成了单个动作。它对标准场景极其高效,但它的前提条件是写死的:一旦当前工作区和它预期的不一样——目标文本不存在、依赖结构变了、测试本来就不通过——宏就会在执行中途失败。而此时它可能已经把工作区改了一半,这个「半成品状态」比没动手之前更难收拾。

现有的技能生态(Markdown 技能、技能路由器、依赖感知技能图、轨迹挖掘)几乎都在优化同一件事:任务开始前,把最相关的技能文本塞给模型。这没错,但不完整。检索回答的是「哪个技能和任务相关」,却没人回答「这次执行到底该用多粗的动作、失败了怎么办」。

论文把这个问题形式化为三种执行模式:micro(只用原始工具)、macro(只用宏技能)、hybrid(先上宏,出现可观察的失败后降级回微工具补救)。核心假设一句话:没有万能粒度,最优选择取决于任务结构、技能质量和执行状态——所以它应该是一个显式的运行时决策。

它的思路是什么?

整个系统分三块:一个粒度控制器决定初始模式,一组带契约的宏技能提供高级动作,一个有限状态机恢复执行器(FSM,简单说就是一个「当前处于什么状态、什么事件触发什么转移」的调度器)处理失败降级。先看全景图:

Adaptive Skill Granularity 框架全景:上半部分是在线执行环,任务经特征抽取进入粒度控制器,路由到微/宏/混合三种执行器,最后由验证器裁定;下半部分是离线学习环,执行日志用来训练路由器和演化技能库

**粒度控制器怎么决策?**它在任务开始前从元数据和初始工作区抽 10 个结构特征:文件路径数、Python 和非 Python 文件数、提示里的实体串数量、AST(抽象语法树,代码的结构化表示)节点数与最大深度、import 数量、跨文件依赖数,外加「是不是文本任务」「是不是重构任务」两个开关。

这里有个容易被忽略但很妙的设计约束:路由器只准看执行前的证据。它不许偷看本轮的验证结果——这保证了评估时不作弊,也让决策可以被完整审计。而承载决策的模型,是一个最大深度 4 的决策树,离线在历史执行日志上训练好后序列化成 JSON。为什么不整个神经网络?作者的理由很工程师:浅决策树可审计、无在线再训练、无黑盒检查点,每条路由决策都能追责。

宏技能凭什么可以被「降级」?论文给宏技能定了一个七元组契约:名字、参数、前置条件(什么时候适用)、允许的副作用(能动工作区的哪些部分)、内部验证例程、可观察的失败类别、以及微级回退路径。最后这项是关键——宏失败后必须暴露足够的状态信息,让执行器能判断「当前这个半成品工作区能不能用原始工具修好」。没有这份契约,降级就是一句空话。

**失败了怎么救?**看这张状态机图:

有限状态恢复执行器:宏运行遇到可恢复失败且恢复开启时,降级到微工具从当前工作区继续;恢复未开启时直接终止;无论走哪条路,成功都以验证器接受为准

执行器把宏失败当成一次状态转移而不是终局。失败会被归入五类之一:前置条件不匹配(宏不适应当前工作区)、部分副作用(失败前已经改了状态)、验证失败(语法检查或测试拒绝)、工具协议失败(参数或返回的 JSON 畸形)、执行器异常(运行时自己挂了)。还有一条记账铁律:只有降级后的微轨迹最终通过验证器,这次恢复才记功。模型自己说「我修好了」不算数。

三条设计不变量贯穿始终:路由只用执行前证据、恢复必须事件驱动、成败只认验证器。说白了就是让系统的每个决策都可回放、可审计——这个品味在满屏「Agent 自主反思」的今天反而稀缺。

效果到底怎么样?

论文自建了 GranBench-Code 基准:80 个编码任务分四类(简单修复、多文件修改、重构、故障注入恢复),每个任务带确定性验证器。试点实验的数字很有说服力。

先看固定粒度的对比。12 个混合任务上:纯微执行成功率 100%,但每任务平均烧 7218 个 token、6 步;纯宏执行只要 3609 个 token、2.7 步,成功率却掉到 58.3%。也就是说,宏省一半钱,但每三次就要翻车一次。手写规则的启发式路由居中:75% 成功率。

更有意思的是故障注入实验,它揭示了一个反直觉的结论:恢复的价值取决于失败时机。

  • 早期失败(宏还没干活就崩):不开恢复机制的 Agent 成功率 0%,全军覆没;开了 FSM 降级,100% 救回,代价是 token 涨到约 11293。
  • 晚期失败(宏其实已经把该改的改完了才报错):不开恢复的 Agent 本来就能过验证,100% 成功、只用 2440 token;而无条件降级的 Agent 明明结果已经对了,还要从微工具再做一遍,token 膨胀到 7567——白白多花三倍钱。

所以「无脑加恢复机制」和「无脑不加」都是错的。论文的完整框架 F-Learned-Full 用学习型模式路由加学习型恢复策略解决这个两难:学习路由把启发式误派宏的高风险任务改派微执行(成功率从 75% 提到 100%),恢复路由学会「该救才救」。

最终数字:早期失败下 100% 成功、token 比无条件降级省 13.6%;晚期失败下 100% 成功、token 省 51.2%、不必要的降级转移率从 100% 压到 14.3%。看这张结果分解图,完整框架的柱子里终态失败(红色)消失了:

试点评估结果分解:每个变体的成功/失败构成。纯微全绿(全部微成功)但成本最高;纯宏出现红色终态失败;完整学习框架(最右)红柱消失,恢复成功(紫色)只在需要时出现

我的读法是:这组数字最值得在意的不是「100% 成功」,而是紫色部分的位置——恢复成功只出现在早期失败的柱子里,晚期失败柱子里没有紫色。这说明框架不是「总能恢复」,而是「知道什么时候根本不用恢复」。这才是成本省下来的来源。

为什么你要关心?

这套东西离实践不远,三条可以直接搬走:

  • 给你的宏技能补一份「失败契约」。不管你用的是 Claude Code 的 SKILL.md 还是自建技能系统,给每个高级技能写清四件事:什么时候适用(前置条件)、会动哪些文件(副作用)、怎么验证自己没干砸(验证步骤)、失败了从哪里接手(回退路径)。没有这份契约的宏技能,出了问题就是黑箱。
  • 失败要分类,别笼统重试。论文的五分类(前置条件不匹配/部分副作用/验证失败/协议失败/执行器异常)可以直接拿来复盘你 Agent 的历史失败轨迹——你会发现不同类的正确处理方式完全不同,盲目「再试一次」恰恰是部分副作用类失败的毒药。
  • 「恢复后必须过验证才算救回」值得写进你的评估。很多 Agent 框架统计成功率时只看模型是否宣称完成,把「恢复了但改错了」也算成功能。用确定性验证器(测试、类型检查、diff 审查)做最终裁决,你的数据才有意义。

往大了看,这篇论文踩在两个趋势的交点上:技能库正在成为 Agent 产品的标配(从 Claude Code 到各家 Agent 框架都在攒技能),而技能质量的良莠不齐也让「什么时候该信技能」变成真实的生产问题。技能粒度控制大概率会成为 Agent 运行时的标准组件——就像数据库的查询优化器替你决定要不要走索引一样。

理性看待

保持冷静的部分:这是一个试点研究,实验规模很小——12 个混合任务加 7 个故障注入任务,宏只有 3 个且是人工手写的,单一 LLM、单一 Python 生态。学习型路由器的「100% 成功」来自在历史执行日志上训练后再评同类任务,论文没有说明训练与评测任务的隔离程度,存在过拟合的合理怀疑。宏技能演化环(自动挖掘新技能)只有概念设计没有实证。数字当方向看,别当基准成绩看。

但方向本身是清晰的:技能库不该只是「可检索的资源」,而应该是「可控、可验证、可恢复的执行抽象」。这句话值得贴在每一个 Agent 团队的墙上。

内容概要:本文研究了基于多目标哈里斯鹰算法(MOHHO)与模型预测控制(MPC)相结合的储能系统与风电场联合平抑功率波动的方法。针对风电出力的不确定性,构建了综合考虑平抑效果与储能损耗的多目标优化模型,并采用MOHHO算法对MPC控制器的权重参数进行优化求解,从而在保障电网功率稳定的同时延长储能设备使用寿命。研究涵盖了算法设计、控制策略构建及仿真验证全过程,详细阐述了MOHHO在多目标参数整定中的实现机制与MPC的滚动优化过程,结果表明该方法能有效降低风电波动对电网的冲击,提升系统运行的经济性与鲁棒性,适用于高比例可再生能源接入的电力系统调度场景。; 适合人群:具备电力系统、自动化或相关专业背景,熟悉Matlab/Simulink仿真环境,从事新能源并网、储能控制、智能优化算法或模型预测控制研究的研发人员及研究生。; 使用场景及目标:①解决风电功率剧烈波动引起的电网频率与电压不稳定问题;②优化储能系统的充放电策略以实现功率平滑输出并减少循环损耗;③掌握多目标智能优化算法在MPC参数整定中的应用方法;④学习基于Matlab的电力系统建模与仿真分析技术,深入理解预测控制与优化算法的协同机制。; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点关注MOHHO算法的种群演化过程、Pareto最优解集的生成逻辑以及MPC控制器的预测时域与权重矩阵设计,通过调整风电波动场景与储能参数观察系统响应变化,全面掌握多目标优化与模型预测控制在实际工程中的集成应用。
内容概要:本文基于Simulink仿真实现了一种针对电网电压不对称跌落问题的三相四桥臂动态电压恢复器(DVR)系统,重点研究其在不平衡电压扰动下的补偿控制策略。该模型采用三相四桥臂逆变器拓扑结构,能够有效处理三相电压的独立控制,克服传统三桥臂结构在不对称工况下的局限性。系统结合多准PR(Proportional Resonant)并联控制策略,实现对负载电压的高精度、快速动态补偿,尤其适用于不平衡负载及复杂电网环境。为进一步提升控制器性能,引入RIME等高效智能优化算法对PID参数进行整定,增强了系统的动态响应能力与鲁棒性。文档配套提供完整的仿真模型、参考文献及详细说明,便于理论分析与工程复现,是电能质量治理领域中DVR技术研究的重要实践参考。; 适合人群:具备电力电子、自动控制理论或电气工程相关背景,从事电能质量控制、微电网保护、DVR装置开发等方向的科研人员、高校研究生及电力系统工程技术人员。; 使用场景及目标:①深入研究三相四桥臂DVR在电压不对称跌落工况下的补偿特性与控制机理;②掌握多准PR控制器的设计方法及其在不平衡系统中的应用;③学习并实践RIME等新型优化算法在PID参数整定中的具体实现;④复现先进控制策略,开展不同控制方案的对比分析与性能评估。; 阅读建议:建议结合Simulink仿真模型与配套文档进行同步学习,重点关注四桥臂拓扑的工作原理、多准PR控制器的结构设计以及优化算法与控制系统的集成方式,建议动手调试参数并尝试替换优化算法以加深理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liferecords

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值