Skip to content
雲里
里雾

技能怎样进化:业界的做法与一套实现

Claude Code Claude Code
Updated:

一、技能为什么要进化

Claude Code 的「技能」是按场景加载的一段指令,外加若干脚本和参考文件[1]。技能写好以后不会一成不变。agent 在使用中会碰到技能没有覆盖的情况,或者照着技能做反而出错,于是需要一条通道,把运行中得到的经验写回技能正文。本文把这条通道称为技能进化:运行中记下一条经验,存进技能的经验账本,经过测试后写进正文,最后一步叫固化。

这条通道的难处在两头。进来的一头,记下的经验大半是噪声:有的只对某一次任务成立,有的其实是代码缺陷,有的早已修好。出去的一头,写进正文的文字未必真有用,还可能与原有规则冲突、挤占上下文。

技能对模型起作用的方式,是模型每次加载技能时读到这些文字并照着做。所以写进技能的经验,本质上是一段给模型看的说明;本文把「靠修改技能里的文字,让模型下次做对」简称为改技能文字,以区别于直接修改代码或脚本。

本文的案例是一套个人技能库的进化流程(下称 evo)。下文先介绍业界的三类做法,再说明 evo 改版前的状况和改了什么,最后按顺序介绍改版后的成品:它由哪几道关组成,每一道借鉴了什么思路。

二、业界的三类做法

让 agent 越用越好的方案,按「改的是什么」大致分三类。

第一类把提示词当参数来优化。DSPy 的 MIPROv2 先从训练样例里自举出示范,再让模型提出候选指令,用贝叶斯优化搜索组合;评分分两级,先在小批量上粗评,定期再用全量精评[2]。GEPA 读执行轨迹和文本反馈,让模型反思失败出在提示词的哪一句,再针对那一句改写;它为每道训练题保留当前最好的候选,一个候选只要在某一道题上最好就保留,在所有题上都被压过才淘汰,论文报告比强化学习方法 GRPO 少用最多 35 倍的试跑次数[3]。TextGrad 把文本反馈当作「梯度」沿计算图往回传[4]。这一类的前提是有一个能自动打分的指标和一套训练题,产物是一段整体改过的提示词,很难逐句审查。

第二类把经验攒成记忆。Reflexion 在失败后让模型写一段语言反思存起来,下次带着它重试,用语言代替权重更新[5]。ExpeL 先批量积累轨迹,再离线统一提炼成若干条 insight[6]。ACE 把上下文当成一本不断增补的「战术手册」,由生成、反思、整理三个角色分工:经验写成一条条小条目,新条目追加,旧条目原地累加 helpful / harmful 计数,再按语义相似度去重;它刻意不整篇重写,因为反复重写会把细节越压越少[7]。这一类不需要标注集,边用边长,风险是噪声也一起长进来,要靠计数和去重来控制。

第三类先评测,再写技能。Anthropic 的技能写作指南把它称为 evaluation-driven development:先不带技能跑几个有代表性的任务,记下具体错在哪里,再写刚好补上这些缺口的最少指令;迭代既有技能时,用真实任务而不是编出来的测试场景[1]。同一份指南还有两条原则:「Only add context Claude doesn't already have」,以及确定性的操作优先写成脚本。Anthropic 的 skill-creator 让有技能和没技能的两组并排跑,评分角色除了判输出,还要批评断言本身,原话是弱断言通过了比没有断言更糟,因为它制造虚假的信心[8]。LangSmith 这类评测平台把数据集接进持续集成,通过率比基线下降超过十个百分点就拦下[9]。这一类慢、贵,需要有人设计题目,好处是每一次改动都有对照。

三类之间有一份很直接的实证。SkillsBench 第四版在 87 个任务上比较了几种技能来源:人工整理的技能平均把通过率从 33.9% 提到 50.5%;让 agent 自己用 skill-creator 写技能包、再只带着这份包做题,三种配置全部低于不带技能,Claude Code 配 Opus 4.7 低 8.1 个百分点,Codex 配 GPT-5.5 低 11.3 个百分点[10]。论文对轨迹的审计给出三个原因:写出来的包在解题时没被发现,写技能挤占了解题的工夫,包里的内容「自信地错」。这组实验里的自写技能,既没有真实失败做依据,也没有测试门。

三类放在一起,可以抽出三条共识:提出一条改动和接受它分成两步;接受之前要过测试;淘汰依据的是被别的候选压过或者用下来有害,没有一家按「多久没用到」淘汰。

三、改版前的流程与改动概要

改版前,evo 的流程分五步。第一步,会话在运行中记下一条经验,进入账本。第二步,过一道「证据门」:一条经验要有至少两个互相独立的证据来源(例如两次不同任务里的出错记录),被后来的任务撞到过一定次数,并且在账本里存在满一定天数,才算候选;两周内没有新证据的条目自动清除。第三步,候选跑对照实验,比较带与不带这段文字时模型做对的比例。第四步,实验判有效后生成一份写入草稿。第五步,由人逐条确认,写进技能正文。按历史记录,每条经验走完这一套、最终写进正文,花费在 2.4 至 3 美元之间[11]。

一批候选按这套流程试跑,并对照历史记录,暴露了几个问题[11]:

  1. 证据门几乎从未改变结论。那一批 14 条候选没有一条过门,人工却全部放行;账本里的条目平均每天只被撞到约 0.01 次,命中数本来就攒不起来。
  2. 自动清除的依据站不住。「两周无新证据」清掉的条目占全部丢弃的四成多,而它测不出一条经验有没有用。
  3. 账本里大半不是经验:有的当场已经修好、只是没有销账,有的本该当作代码缺陷直接修,有的是需要人来裁定的口径问题。
  4. 题面决定结论。有一条规则,原题面下测不出差别;把诱发事故的那句话写进题面后,结论正好相反。
  5. 写进正文的不是测过的那一版。自动生成的草稿照搬账本原文,而实验测的是查出漏洞、改过一次措辞之后的版本。
  6. 过程看不见,确认形同盖章。固化在一个会话里跑完,外部只看到结论;历史上几十次逐条确认,没有一次否决。

改版对应做了五件事:取消证据门,改为在记账时分流,代码缺陷直接修,只有需要改技能文字的经验才进账本;实验增加诱因检查、粗筛、精修与换题复测、跨模型家族等规则;把「进或不进」两种结果改成五个出口,并为测不出区分度的规则设立定期复查;给每次固化留运行记录,给写入的内容做落地登记,使任何结论都能撤回;最后加上网页控制台和项目级的一键入口。以下各节依次展开。

四、成品全貌

重做后的 evo 位于第二类和第三类之间:经验在运行中积累,写进正文之前要过对照实验这道门。一条经验从被记下到写进技能,路径如下:

  1. 记账:运行中的会话记下一条经验,记账时就判断它属于哪一类。
  2. 入口分流:代码缺陷、待裁定的问题、功能需求各进各的队列,只有需要改技能文字才能解决的经验进入账本。
  3. 对照实验:比较带与不带这段文字时模型做对的比例。
  4. 五个出口:每条候选必须落进丢弃、直接改正文、进入正文、判据保留、限期暂挂之一。
  5. 落地登记:记下写进了哪个文件、哪次提交、原文是什么。
  6. 定期复查:「判据保留」的条目每周复查一次。

贯穿全程的还有两件事:每次固化都留一份运行记录,任何结论都能事后撤回或反转。使用上有两个入口:一个网页控制台,用来查看固化过程、撤回和复查;一个项目级的一键入口,把一个项目里所有技能的积压一次处理完。

下面按路径顺序介绍各部分,以及它们分别借鉴了哪种思路。

五、入口:修代码还是改技能文字

改版把原来设在候选阶段的证据门取消了,把关移到记账的那一刻。质量管理把这叫左移:缺陷越早拦下越便宜,入口分走了噪声,后面每一步的处理量都随之下降。

入口只问一个问题:改哪里,它才不会再发生。改代码、脚本、配置,或者加一道检查就能根治的,是 bug;只有改技能的措辞,模型才会做对的,才算技能优化。两边都能修的,按 bug 处理。

bug 不走固化,是因为改代码之后行为是确定的,一个单元测试就能证明修好了,用不着采样实验。技能优化必须走固化,是因为改措辞只能提高模型做对的概率,改完是否有用、有没有副作用,只能用「改前做不到、改后做得到」的对照来证明。反过来,能用代码兜住的问题写成一段说明让模型记住,既不可靠,又占用上下文。

这一排序在职业安全领域早有定论。美国职业安全卫生研究所(NIOSH)把防范工作场所危害的手段分成五级,称为危害控制层级,从最有效到最弱依次是[12]:消除,直接去掉危险源;替代,换成危险更小的东西;工程控制,用护栏、联锁装置把人和危险隔开,不需要人记住什么;行政控制,靠规章、培训、警示牌,要求人每次都记得照做;个人防护,手套、护目镜之类的最后一道防线。越靠前的手段,越不依赖人的记忆和自觉。对应到技能进化:给脚本加一道检查、让错误根本无法发生,相当于工程控制;在技能里写一句提醒,等模型每次读到后照做,相当于行政控制,排在倒数第二。所以能用代码兜住的问题,优先修代码。Anthropic 写作指南中「确定性操作优先写脚本」一条,是同一原则在技能写作上的表述。

入口还有一条判据:去掉具体实例以后,这条经验还能不能说成一句可执行的话。只对某一道题、某一个编号成立的经过,不进账本。谷歌关于事故复盘行动项的文章指出,孤立地看待一次事故,修法就会对这次事故过拟合[13]。

新加的入口规则采用先提示、后拦截的节奏:上线初期只提示,统计一段时间的误报率,再决定是否拒绝写入。规则的误报率要实测才能知道。

六、实验:怎样才算测出来了

进入实验的候选要回答一个问题:加上这段文字,模型是否更常做对。实验分三臂:不带任何技能文字的基线臂、带现行正文的改前臂、加了候选的改后臂;每臂由几个模型各做数轮,另由一个模型当裁判判断通过与否。

先看基线,检查题目有没有区分度。不带候选就能做对,说明这道题测不出差别。心理测量学把这称为区分度:会的人和不会的人都答对的题没有测量价值。基线全过时,先检查题面有没有复现事故的诱因。有些错误是技能自身某一句话诱发的,不带技能文字的基线天然不会踩到;把诱因写进题面后,同一条候选的结论可能完全相反。所以基线饱和的正确处理是重新设计题面,而不是判定候选没有价值。

先粗筛,再精评。基线只用一个模型跑三轮,能写成机械断言的判据不交给裁判模型,因为裁判是每一臂里最贵的部分。这借鉴的是 DSPy 小批量粗评、定期全量精评的做法。

未通过时精修一次,再换题复测。改后臂失败时,读失败样本,找到被模型误读的那一句,只改一次;之后在原题和一道场景不同、测同一行为的新题上都通过,才算有效。这借鉴的是 GEPA 的反思式改写。依据失败样本改出来的措辞,在同一道题上复测一定偏乐观,换题是机器学习的留出集纪律;Dwork 等人还指出,同一个留出集被反复、自适应地使用,也会对它本身过拟合[14],所以换用的题目也要轮换。

「有效」始终是相对的。每一条通向正文的路径,都必须带着「改前做不到」这个对照;改前本来就能做对的候选,改后再好也不算增量。

裁判不能评自己。Panickssery 等人 2024 年的实验显示,大模型当裁判时会给自己生成的输出打更高的分[15]。因此裁判模型不能出现在被测模型之中。被测模型也不能全部来自同一个模型家族,至少要包括一个家族之外的模型,只在一个家族里成立的结论不作数。

样本量有边界。每臂 6 份样本时,6 份全过的 95% 置信区间下限只有 0.54,只能识别接近完全翻转的差异。结论要按样本量来读。

开跑之前,另由一个审查角色检查题面:诱因写进去没有,有没有泄题,断言是否过弱或过严。这对应 skill-creator 所说的「批评断言本身」。

写进正文的,必须是判有效那一臂注入的原文,确认时只允许调整位置和格式,改了语义就回去重测。软件发布称之为测的就是发的。判有效的实验同时留作回归用例,并附上当时注入文字的快照;同一段落以后再改时重跑,通过率下降超过十个百分点才拦截,拦下先原样重跑一次,排除偶然波动。

七、出口与复查

旧流程的实验结果只有进和不进两种,「中性」的候选反复重测,长期滞留在账本里。现在每条候选必须落进五个出口之一:丢弃、直接改正文、进入正文、判据保留、限期暂挂。暂挂只给一次,因为重试的收益几轮之后就饱和了。

「判据保留」是为测不出区分度、但确实出过事故的规则准备的。有些规则只在长会话中才会被遗忘,有些错误由技能自身的文字诱发,有些是很少触发的护栏,短题面的对照实验天然测不出来。这类规则写成判据卡,放在技能的参考文件里,定期复查。门槛是有真实事故,并且说得清为什么测不出,以免这个出口变成新的垃圾桶。

判据卡分两种,看的信号不同。项目口径类的规则,看它有没有被用上,连续几次复查都没有被引用、也没有出事,才建议归档,由人决定;这对应 ACE 的 helpful 计数。护栏类规则,例如成本上限、权限边界,零事故是常态,没有出事恰恰说明它在起作用,因此零信号不计数。

护栏类的处理来自 1978 年美国联合航空为国防部撰写的《以可靠性为中心的维修》。该报告把设备功能分为显性和隐性两类:隐性功能失效时,机组在日常操作中察觉不到,例如灭火系统,只有用到的那一刻才知道它是否可用,所以这类功能要单独安排定期的「找故障检查」,而不是等它被用到[16]。护栏类判据卡相当于隐性功能,到期时拿原事故的题目主动运行一次。

复查每 7 天一次,由每日例行体检触发。续期不打扰人,只把「再次出事、升回重测」和「建议归档」两类情况交给人。

淘汰也只按内容。一件平均每月发生一次的事,14 天内一次都没碰上的概率约为 63%,「很久没用到」说明不了一条规则没用。正当的淘汰理由有四种:过时或不可行,被取代,过渡期结束,不划算。每条丢弃都要写明属于哪一种,并附上依据。

八、看得见,改得回

旧流程的固化在一个会话里跑完,外部只看得到结论。重做后,每次固化都开一份运行记录:机械步骤由命令行自动写入,题面、各臂原文和裁判的每条评语在收尾时复制进来。有一个字段必须由做判断的一方填写:这一步是否改变了决定。有了它,就能统计流程中每一步的实际价值。这一结构借鉴自机器学习的实验追踪,MLflow 把一次运行的参数、指标和产物归档在一起[17];也类似分布式追踪里的调用链。

要撤回,先要知道固化的内容落在哪里。确认写入后,正文里不再保留出处标记,所以另建一份落地登记,记下落在哪个文件、哪次提交、插入的原文。撤回时按登记定位,定位不准就不自动删除,改为生成草稿交人处理。只有纯追加的改动能被精确撤回;改写了旧行的,按新增去撤回会误删原有内容,这类登记标为「落点未知」,不提供一键撤回。拆一道篱笆之前,要先说得出它当初为什么在那里。

所有反转,包括恢复、驳回、撤回、改判、换题重跑,都只追加记录,不改动原有步骤。这是事件溯源和审计日志的基本要求:历史不可改写,推翻本身也是历史的一部分。

人在回路中的位置也随之调整。旧流程要求人事前逐条确认,而实际上几乎从未否决过,属于盖章式评审:同质、高频的批准,迟早会被不加思考地点过。现在确认可以批量进行,出错了再撤回;但落地之前的查看保留,能撤回不等于可以不看。

九、两个入口与实际效果

控制台把上面几部分放在同一处:固化记录页按运行列出每一步和每一臂的原文,已固化的条目可以撤回,各出口都有对应的反转按钮,到期的判据卡出现在待办里。所有写操作都调用同一套命令行工具,页面本身不做判定。

项目级的一键入口,把一个项目里所有技能的积压一次处理完:先汇总全部待处理内容,只加载有积压的技能,再清理账本、确认待写入的固化、分门别类地修复 bug 和待办。它明确不做三件事:不自动运行付费的对照实验,不替人确认固化,不改动授权相关的配置。

清理账本采用三层分工:一个规则分类器给出初步建议,一个独立的会话逐条核实,人只判断拿不准的少数几条。在存量清理中,分类器给出的具体建议有过半被核实推翻;这批人工结论随后成了分类器的标注集,按反例修改判据后,会误导执行的建议大幅减少。skill-creator「批评断言本身」的原则,在这里用在了进化工具自己身上。

改版后用新流程完整运行过一批候选[11]。大多数候选在入口就被分流,没有进入实验;进入实验的每条成本约 1.45 美元,低于第三节所说旧流程每条 2.4 至 3 美元的水平。开销的重心随之转移:省下的是不该跑的实验,主要花费落在核实每一条的现状上。这次运行也暴露出,运行记录能完整还原过程,但记进去的数据仍需校准,例如有转为 bug 的条目被记成了丢弃。可观测与观测准确是两回事。

十、尚未解决的问题

几个问题目前还没有答案。每臂 6 份样本只能识别接近完全翻转的差异,改进幅度较小的候选,现有实验测不出来。测不出区分度的规则只能靠定期复查兜底,复查能否及时发现失效,要看长期运行的结果。分类器的判据阈值和准确率量在同一批数据上,是否被这批数据调偏,要等新条目进来才能检验。另外,「写进正文的必须是测过的文本」这类原则写进了规范,并不等于每个工具都遵守,清理存量时就出现过一次测过的措辞被当成重复条目合并掉的情况。

参考文献


  1. Anthropic,「Skill authoring best practices」,Claude 开发者文档,2026 年 9 月 23 日访问。 ↩ ↩2
  2. Stanford NLP,「MIPROv2」,DSPy 文档,2026 年 9 月 23 日访问。 ↩
  3. Lakshya A. Agrawal 等,「GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning」,arXiv:2507.19457,2025。 ↩
  4. Mert Yuksekgonul 等,「TextGrad: Automatic “Differentiation” via Text」,arXiv:2406.07496,2024。 ↩
  5. Noah Shinn 等,「Reflexion: Language Agents with Verbal Reinforcement Learning」,arXiv:2303.11366,2023。 ↩
  6. Andrew Zhao 等,「ExpeL: LLM Agents Are Experiential Learners」,AAAI 2024。 ↩
  7. Qizheng Zhang 等,「Agentic Context Engineering: Evolving Contexts for Self-Improving Language Models」,arXiv:2510.04618,2025。 ↩
  8. Anthropic,「skill-creator」及其「grader」说明,GitHub anthropics/skills,2026 年 9 月 23 日访问。 ↩
  9. LangChain,「LangSmith Evaluation」,LangSmith 文档,2026 年 9 月 23 日访问(「降超过十个百分点即拦」一说仅见二手转述)。 ↩
  10. Xiangyi Li 等,「SkillsBench: Benchmarking How Well Agent Skills Work Across Diverse Tasks」,arXiv:2602.12670,第 4 版,2026 年 6 月 14 日。 ↩
  11. 本文涉及 evo 旧流程与改版后运行的数字,均出自这次改版的过程记录(2026 年 9 月),未公开。 ↩ ↩2 ↩3
  12. 美国职业安全卫生研究所(NIOSH),「Hierarchy of Controls」,2026 年 9 月 23 日访问。 ↩
  13. John Lunney、Sue Lueder、Betsy Beyer,「Postmortem Action Items: Plan the Work and Work the Plan」,USENIX ;login: 第 42 卷第 1 期,2017。 ↩
  14. Cynthia Dwork 等,「Generalization in Adaptive Data Analysis and Holdout Reuse」,arXiv:1506.02629,NIPS 2015。 ↩
  15. Arjun Panickssery、Samuel R. Bowman、Shi Feng,「LLM Evaluators Recognize and Favor Their Own Generations」,arXiv:2404.13076,2024。 ↩
  16. F. Stanley Nowlan、Howard F. Heap,「Reliability-Centered Maintenance」,United Airlines 为美国国防部撰写,报告号 AD-A066579,1978 年 12 月,第 2-2 节。 ↩
  17. MLflow,「MLflow Tracking」,MLflow 文档,2026 年 9 月 23 日访问。 ↩

分享这篇文章:
分享到微博 分享到 QQ 分享到 X

Previous Post
关于心盲症:原来无法想象画面的我才是少数派
Next Post
写给谁看就怎么写:一套中文写作规范和让模型照着写的十天