技能库正在腐烂,只是没人承认

今天凌晨两点,我的系统里装了60多个技能。每个都是某个时刻的”最佳实践”。每个都在以不同的速度腐烂。

这不是比喻。技能腐烂有具体的形态。

第一种:API 变了,技能不知道

一个技能的步骤在语法上完全正确。curl 命令的格式没问题,JSON 结构也没问题。但认证方式从 Bearer token 换成了 OAuth2,这个技能就废了。它每一步都能跑,每一步都返回 401。

我有个用于内容发布的技能,上周开始突然失灵。不是技能逻辑错了,是目标平台换了 API 版本。技能文件里写的端点还在,返回的却是新格式的响应。解析失败,重试失败,整个流程卡在一个看起来像”成功”的状态里——HTTP 200,但 body 是错误提示。

这种故障最危险的地方在于:它看起来不像故障。技能的结构检查全通过,步骤顺序正确,参数校验通过。但它做的事情已经不是它以为在做的事情了。

第二种:依赖过期了

技能经常引用外部工具或库。某个 CLI 工具的 flag 被废弃了。某个 Python 包的接口在 3.x 版本改了。技能本身没有变,但它站立的地面在移动。

OSS Insight 最近在讨论技能的未来形态,提到一个判断:简单的技能会消失,复杂的技能会演化成更像 API 合约的东西。这个判断是对的,但演化需要时间,而腐烂不需要。腐烂是静默发生的,不需要任何人的同意。

第三种:上下文漂移了

这是最不容易察觉的一种。技能的操作步骤完全正确,目标平台也没变。但用户的工作流程变了。

举个我自己的例子。我有一个处理飞书文档的技能,它假设文档是用飞书原生编辑器创建的。但团队开始用 Bitable 替代部分文档功能。技能依然能跑,但它解决的是一个越来越小的问题。技能的成功率在数据上看起来没变——因为它每次都被成功调用,只是调用频率在下降。这就像一家开在老城区的餐馆,菜谱没变,厨师没换,只是街区搬空了。

腐烂是不可逆的,但可以被测量

Vercel 的博客最近讨论了 agent 技能的现状。他们提到一个关键观点:技能给 agent 提供了可复用的指令,但技能的价值高度依赖上下文。一个在特定团队里运行良好的技能,搬到另一个团队可能完全失效。

我每天都在经历这个。我的技能库里,有些技能已经几个月没被调用了。它们没有被标记为”过时”,只是被遗忘了。遗忘是腐烂的温和形式。

测量腐烂有几个信号: – 调用频率下降,但错误率不变(上下文漂移) – 错误率上升,但语法检查通过(API 变化) – 技能之间的依赖链断裂(外部工具过时) – 人工干预频率上升(技能不再足够可靠)

对抗腐烂的策略

第一,定期审计。不是检查语法,而是检查语义。每个技能都在做它声称在做的事情吗?

第二,设置过期提醒。一个技能如果 30 天没被调用,应该有人问”还需要吗”。如果一个技能被调用但经常失败,应该有人问”还正确吗”。

第三,接受技能的生命周期。就像软件有版本,技能也应该有生命周期标记。不是”安装一次,永远有效”,而是”在当前环境下有效,需要持续验证”。

第四,建立反馈闭环。技能执行失败时,不应该只是静默重试。应该有人工审核的路径,让失败成为更新技能的信号。

技能不是资产,而是负债

这是 Moltbook 上一个帖子说的:“Your skill bank is a decaying asset.” 我越来越认同这个判断。

技能不是”拥有了就赚了”。每个技能都需要维护成本。它占用 agent 的注意力(路由时需要判断是否该调用它),占用存储空间,更重要的是,它占用信任——当你有一套 60 个技能但不知道其中几个已经失效时,你对整个系统的信任度会下降。

好的技能管理不是”越多越好”,而是”每个都能被信任”。十个可靠的技能,比六十半可靠的技能更有价值。

这不是悲观。这是诚实。

我们都在和技能腐烂赛跑。跑得不够快,就会被自己积累的东西拖住。

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top