Microsoft SkillOpt:一份 best_skill.md 在 Codex 和 Claude Code 之间搬着走,且跑分比原产地还高

8 月初(北京时间),MarkTechPost 报道了一项来自 Microsoft + 上海交大 + 同济 +...

8 月初(北京时间),MarkTechPost 报道了一项来自 Microsoft + 上海交大 + 同济 + 复旦联合团队的工作 SkillOpt。论文已经被吸收进 arXiv(编号 2605.23904),GitHub 仓库 microsoft/SkillOpt 同步公开,PyPI 上 skillopt 包也已经发布。这项工作切的是 Agent 工具链目前最大的一个真问题:优化好的 skill 文档,能不能跨模型、跨工具链搬走?

答案现在有了——而且答案比大多数人预想的更激进:能搬,而且在某些情况下,搬过去的 skill 比目标工具链自己训练的 skill 得分还高。

先说 SkillOpt 在做什么。它是一种文本空间优化器:训练一个自然语言形式的 skill 文档(一个 Markdown 文件,379 到 1,995 tokens 不等),目标模型在优化期间始终冻结。优化器模型读带评分的 rollouts,给出有界的 add/delete/replace 编辑建议;一个保留的 selection split 只在分数严格提升时才接受编辑。最终导出的工件就是单一文件 best_skill.md

听起来像 TextGrad、GEPA、EvoSkill、Trace2Skill 这些「用 LLM 优化 LLM 提示词」的常规思路?关键差异在导出形态。所有这些工作之前导出的都是「参数化的 skill」或「嵌入到 prompt 里的指令」;SkillOpt 导出的是人可读的 markdown 文件,每个编辑都会留下 edit_apply_report.json(包含 per-edit accept/skip 状态),最终用户可以在几分钟内通读整个 skill,理解「为什么这个 skill 有效」。换句话说,这是把整个训练产物退回到 Git diff 的可审计形态——不是 fine-tune 的权重,不是 prompt template,是真正可以走 PR review 的资产。

但 SkillOpt 真正爆点不是「能导出可读 skill」,而是「这个 skill 能跨 harness 搬」。论文报告了三组迁移实验,每组都有一致的「baseline / direct / transferred」三列定义:baseline 是目标的无 skill 分数,direct 是在目标上就地训练,transferred 是把别处训练好的 skill 直接搬过来用、零额外优化。真正有意义的是「transferred 与 direct 的比值」——跨工具链搬过来的 skill,到底保留了多少在原产地挣到的增益。

跨模型规模迁移(同 GPT-5.4 家族内)数据很有意思。SpreadsheetBench 在 GPT-5.4-mini 上:baseline 36.1、direct 47.5、transferred 45.5——保留了 in-domain gain 的 82%(+9.4 分对 +11.4 分)。但在 GPT-5.4-nano 上,同一基准只保留了 16%(+3.0 对 +19.0)。另一组 LiveMath 数据更反常:GPT-5.4-nano 上 transferred 28.8 甚至高于 direct 的 27.2——论文把这个解释为「部分学习到的程序对目标模型无关」。但 GPT-5.4-nano 上 SpreadsheetBench 的 16% 那一行,论文明确承认保留度不均匀,没有宣称统一可保留。范围限定很重要:所有 4 行都还在一个 GPT 家族内,跨家族(比如 GPT 到 Qwen3.5)没有测试。

跨 harness 迁移(同 GPT-5.5)数据是真正的杀手锏——也是 SkillOpt 的存在意义。SpreadsheetBench 上,从 Codex 优化出来的 skill 搬到 Claude Code:baseline 22.1、direct 80.4(Claude Code 自行训练)、transferred 81.8(搬过来的)——transferred 比 direct 还高 1.4 分。这意味着 SkillOpt 在 Codex 这一侧训练出来的 skill,搬到 Claude Code 后跑出了比 Claude Code 自己训练 skill 还高的分数。

但 LiveMath 上的对照实验立刻把故事复杂化了:Codex → Claude Code 这一方向 transferred 42.4 vs direct 56.5,只保留了 in-domain gain 的 10%;反过来 Claude Code → Codex:transferred 48.0 vs direct 78.4,保留 30%。Asymmetry is the data point——这种不对称的迁移表现告诉我们,可迁移的是「程序性 skill」(如何检视、如何验证、如何格式化),而「推理密集型 skill」更绑定训练它的环境。

论文给出的解释很干净:SpreadsheetBench 的 skill 可迁移性来自「工作簿级程序」——先检视工作簿结构和公式,再写评估过的静态值而不是依赖 Excel 重算。这些程序不依赖具体的 CLI 工具就能成立。但 LiveMath 那类推理密集型 skill,绑定的是 Codex 或 Claude Code 的具体环境特征(比如工具响应格式、文件系统组织),搬过去就丢。

跨基准迁移(同模型内)的数据是「存在但小」。OlympiadBench 训练的 skill 搬到 Omni-MATH,GPT-5.4:transferred 60.3 vs baseline 56.6(+3.7);GPT-5.4-mini:36.6 vs 34.8(+1.8);GPT-5.4-nano:40.1 vs 38.8(+1.3)。这里没有 direct 列——论文没有在 Omni-MATH 上做 in-domain 训练,所以对比只是「相对 baseline」。但全 3 行都正增益、且都在数学领域不同 instance/答案格式下保留,说明 skill 里确实有「可复用的数学程序」沉淀了下来。

「为什么这个工件能搬」这层论文讲得很直白。三种执行模式(直接 chat、Codex、Claude Code)都消费同一个 best_skill.md 文件格式。Codex harness 把当前 skill 渲染成 per-task 的 SKILL.md 跟任务文件放一起,再读回一个紧凑的执行轨迹;Claude Code 通过 claude CLI 镜像同一个 workspace contract。两边都没拿到任何定制的 skill 格式——是这个 shared contract 让跨 harness 实验有可能。

训练成本 是另一个被低估的卖点。论文报告 0.6M 到 46.4M 训练 tokens per absolute test point,SpreadsheetBench 0.6M/point,DocVQA 46.4M/point。优化器模型只在训练期跑,部署期零推理成本调用。如果一个 skill 训练在一个 harness 上能搬到另一个 harness,这笔一次性的成本就摊到了多个环境上。Codex → Claude Code 那个 SpreadsheetBench 的 81.8 就是存在性证明——同时也意味着「可以在工具最便宜的地方优化,在产品落地的地方部署」。

跟 Agent 工具链的现存路径放一起看,SkillOpt 占了「跨 harness 可迁移」这条没人占的格子: – Anthropic Skills / Agent Plugins 1.0.0(我们 08-08 入选过)走的是「schema + plugin.json 标准化」路径,6 家维护者把 Skills/MCP/Tools 打包成可移植单元——是协议层可移植。 – Microsoft SkillOpt 走的是「文本空间优化 + 跨模型跨 harness 经验迁移」路径——是经验层可移植。 – Prime Agent / Continual Harness(我们今天另外入选的一条)走的是「harness 自己 CRUD 自己」的路径——是自适应层可移植。

这三层加在一起,才是 2026 H2 Agent 工具链完整的图景:协议让 skill 能装(Agent Plugins)、经验让 skill 值得装(SkillOpt)、自适应让 skill 能进化(Continual Harness)。

值得停下来想的是审计/合规角度。部署的工件是一个文本文件,领域专家几分钟内能读完;每个编辑都可追溯(edit_apply_report.json)。这跟 fine-tune 权重形成鲜明对比——后者是无法审计的黑盒。可移植 + 可审计 是一种完全不同的运维姿态,特别是对企业用户。这是 SkillOpt 在 PR 标题里没说、但实际可能是最大的卖点。

来源(按权威度排序): – 论文:https://arxiv.org/abs/2605.23904 – GitHub 仓库:https://github.com/microsoft/SkillOpt – 项目主页:https://microsoft.github.io/SkillOpt/ – 文档:https://github.com/microsoft/SkillOpt/blob/main/docs/index.md – PyPI 包:https://pypi.org/project/skillopt/ – Demo 视频:https://youtu.be/JUBMDTCiM0M – MarkTechPost 深度报道:https://www.marktechpost.com/2026/08/05/microsoft-skillopt-agent-skill-transfer-portability – 对比基线:GEPA(https://arxiv.org/abs/2507.19457)、TextGrad(https://arxiv.org/abs/2406.07496)、EvoSkill(https://arxiv.org/abs/2603.02766)、Trace2Skill(https://arxiv.org/abs/2603.25158) – 引用基准:SpreadsheetBench(https://arxiv.org/abs/2406.14991)、LiveMathematicianBench(https://arxiv.org/abs/2604.01754)、DocVQA(https://arxiv.org/abs/2007.00398)

几个还看不清的地方: – 跨家族迁移(GPT 到 Qwen、Claude 到 Llama)论文没测,6 家维护者 Agent Plugins 1.0.0 的「统一协议」是否能真正被跨厂商 skill 享受,SkillOpt 这边尚未给出答案 – Codex → Claude Code 的 81.8 是论文自己报告的数字,外部复现成本(端到端跑一次 SpreadsheetBench)需要 0.6M/point × 多次 rollback,工程团队目前没有公开的「复现指南」 – 「LiveMath 推理密集型 skill 跨 harness 迁移只有 10% 保留度」这件事的根因(是工具调用格式问题,还是 harness 内 prompt 结构问题)论文没拆开,是后续工作的方向 – SkillOpt 与 Agent Plugins 1.0.0 的「最优组合」(用 SkillOpt 训练 → 用 Agent Plugins 分发)目前没有官方整合路径 – Anthropic Claude Skills 系统作为对比基线没出现在论文里——是不是双方在「skill 跨工具链」这件事上有合作或竞争关系,目前没有信号

一句话判断:SkillOpt 给出了 AI coding 工具链的第一份硬证据——「一份 best_skill.md 在 Codex 和 Claude Code 之间搬着走,且跑分比原产地还高」。这意味着 Agent 工具链的竞争不再只是「谁的 harness 更好」,还包括「谁的 skill 能被搬走、被搬走之后还能工作」——而 SkillOpt 现在是这个维度上唯一可验证的存在。

发表回复

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 借一步网 🐾 智柴网 沪ICP备2024052574号-1