ARTICLE · 1130237
AI 自己写的技能文档,基本白写
我见过太多人把"自己写一套"当成美德。
工作里遇到问题。第一反应不是去看别人已经跑通的东西。而是自己从头写一份。写完了,仪式感很强,文件夹里多整齐的一摞,然后事情还是没解决。
这个毛病,现在轮到 AI 了。
而且它比人更勤奋。
我们让它干活之前,都要先给它写点材料——规范、说明、领域知识、工具手册。写完之后,很多人会顺手加一句:"算了,让它自己先写一版吧。"
这两天读完一篇论文,我发现这句话的代价,可以被精确地称出来。
一、先把两个数字摆出来
0.5。
16.2。
同一批任务。同一个模型。唯一的区别是:它手里那份"技能材料",是人写的,还是它自己写的。
人写好的,平均分从 0.366 涨到 0.528。涨了 16.2 个百分点。
它自己写的,平均分从 0.366 涨到 0.371。涨了 0.5 个百分点。
0.5 是什么概念——这篇论文的置信区间是 [−0.002, +0.011],也就是说,它自己写的那份材料,效果在统计上跨过了零。
翻译一下:等于没加。
而它为此多花的钱是这样的:单次任务的 token 中位数,从 19,952 变成 40,034。
翻了一倍。
交互轮数从 7.5 涨到 9.3,中位时延从 59.8 秒涨到 76.8 秒。
最扎心的一处细节是:它写的技能文档,在 97.7% 的任务里都成功加载了。
它不是没写。它不是没读。
它是认认真真写了一份自己都不太用得上的说明书。
而且写得挺好。(我看了下论文里的例子,格式规整,条理清楚,比我司某些内部文档强多了。)
二、这个实验是怎么做的
我得先交代一下它的规模。后面那些数字,都是靠这个规模撑起来的。
论文搞了一个叫 FinSkillBench 的基准。里面是 2,603 个"时点情景"。所谓时点,就是只能用某一天之前的数据。不许偷看未来。这些情景分成 12 个子任务,落在三个域里:
- 组合构建
:均值方差优化、约束优化、再平衡、Black–Litterman 配置 - 风险管理
:合规监控、风险识别、压力测试、补救交易 - 基本面分析
:财报指标归一化、盈余质量、驱动分解
每个情景都配了一份隐藏的、可以重新算出来的标准答案。还有一个只认结果的确定性评分器。评分器不看它写得多漂亮,只看交上来的 JSON 对不对。
然后是最关键的设计——它给同一批任务换了五种"手里有什么"的条件:
- 无技能
:什么都不给,只有基础的数据检索工具 - 人写技能包
:可以自己发现并加载人写的技能文档 + 可执行脚本 - 模型自行生成
:先让它自己写一份技能文档,再用自己写的那份干活 - 只给文档
:只有文字,没有可执行脚本 - 只给工具
:只有脚本和领域工具,没有文字说明
agent 的循环上限是 12 轮。全套跑下来 17,820 次执行,9 个模型,每个条件 5,280 次评估。
说实话,我看到"只给文档 / 只给工具"这两个臂的时候,心里咯噔了一下。
因为绝大多数团队从来没做过这个拆解。我们只知道自己加了东西,不知道加的是哪一样。
三、那 16 分,到底是谁挣的
这才是全文最好看的地方。
把"人写技能包"这件事拆成两半:文字文档,和可执行工具。
- 文字文档单独给:+5.6 分
- 可执行工具单独给:+19.5 分
- 两个一起给:−8.9 分
前两个数字不意外。第三个数字很意外。
为什么一起给反而更差?
因为在固定 12 轮的预算里,"我去翻一下文档"和"我把这道题算出来",用的是同一批轮次。
论文里有一个特别具体的例子。压力测试这个子任务,只给工具的时候是 0.469。加上文档之后,掉到 0.281。
它花了轮次去读说明,结果没轮次去算题了。
我读到这里的时候,想到的不是学术问题。是我们自己干活的样子。
给一个新人,同时塞一本三百页的规范和一个现成的脚本库。他大概率会先花半天读规范。然后发现时间不够。仓促上手。
材料不是越多越好。材料是要抢时间的。
我当产品经理那几年,最爱干的事就是往需求文档里加东西。加到最后,没人看。
现在想想,那时候的我,和这份自己写技能包然后不去看的模型,是同一种生物。
还有一个更细的分工,我觉得写 agent 的人都该记一下:
- 风险识别
这种"要判断、要表达"的活儿,文档最好(只给文档 0.382,只给工具 0.029) - 压力测试、约束优化
这种"要算"的活儿,工具最好(0.469 vs 0.086;0.629 vs 0.176) - 盈余质量
这种"又要判断又要算"的活儿,两样一起最好(0.535)
翻译成人话:
给 AI 加"知识"很便宜,给 AI 加"能跑通的确定性"很贵。
而"让它自己写",是这五种条件里最贵也最没用的一种。
四、最狠的一段:九级链条跑完,合规 0 次
如果说前面是算账,这一段就是事故现场。
论文把上面那 12 个子任务里的一部分,串成了一条真实的业务链——九级"投委会交付链":
授权解析 → 基本面研究 → 观点生成 → 组合构建 → 合规监控 → 压力测试 → 风险识别 → 补救 → 再平衡。
固定同一个模型、同一份授权书、同一个 30 只股票的池子,跑 33 次,比两种模式:
第一种,教师强制模式:每一级都吃"干净的标准输入"。
结果:合规率 100%,最优性 1.000。
第二种,自主模式:每一级吃上一级自己的输出。
结果:最优性 0.934——看起来几乎满分;合规率 0/33——一次都没有。
我盯着这两个数字看了很久。
0.934 是一个很漂亮的分数。如果只看这个数字,你会觉得这套系统接近完美。但它在 33 次里,没有一次真正满足授权书的约束。
而更荒诞的是下面这句:下游那条完整的风控回路——监控、压力测试、风险识别、补救——对自己的评分仍然是 1.000。
它们每一环都觉得自己干得挺好的。
论文把原因追到了一处极窄的接缝上:
第一级在解析授权书的时候,解析出了一个"看起来对、但不是规范版本"的合同。 约束构建器悄悄丢掉了它在新合同里找不到的限制:持仓、行业、beta、跟踪误差。因为在那份被改过的合同里,这些字眼确实不存在了。
然后下游的监控器,拿着这份被降级过的合同去认证合规。
它和它自己的"参照答案",用的是同一份错的合同。
所以它当然觉得一切正常。
错误只在最后一道闸门上暴露。因为只有那一道,用的是不可更改的原始授权书。而不是 agent 自己解析出来的版本。
论文给这个现象起了一个我认为会流行起来的名字:
silent competence,静默的胜任。
一个内部自洽、信心十足、严格执行着一份它自己在上游抄错的授权书的控制系统。
五、这件事为什么会发生
我想把这一节讲得慢一点,因为它是整篇论文里最容易被误读的地方。
它不是在说模型笨。
前面那个 0.5 分的结论,容易让人得出"模型自己写的材料质量差"这个结论。但论文其实给了另一个解释,而且这个解释更要命:
写下来一份流程,和拥有一套经过验证的领域技能,不是一回事。
后者身上带着测试脚本。带着精确的数据访问指引。
自行生成的技能包,缺的不是"文字能力",缺的是被验证过这件事。
人写的技能包里有什么?有跑通过的脚本。有踩过坑之后的参数。有"这里必须用这个字段名"这种不写在教科书上的东西。
模型在任务里现写的那份文档,是它当下能写出来的最好版本。但它没有被跑过。没有被检验过。没有人告诉它哪一步会错。
它不是不认真。它是没有可被证伪的经历。
再说第四节那个"静默的胜任"。论文自己把边界写得很清楚,我照抄一下:
这是单模型、单授权、30 只股票池的案例研究,只证明这个机制存在,不证明它普遍存在 幅度有一部分被一个工具学上的混淆项影响(那个优化器本身表达不了跟踪误差和 beta 约束) 每一条结论都建立在每个"模型 × 条件 × 任务"格子只跑一条轨迹的基础上 场景只覆盖美国 30 只股票池和三个投资域,不含其他资产类别、国际市场、衍生品
所以正确的读法是:
不是"AI 管钱都会违规",而是"局部全对,不等于整体能交付"——而这件事,逐阶段的评分是看不见的。
那这套结论可靠吗?论文自己做了两件让我愿意信的事:
第一,换了十种评分口径重打一遍。 容差减半、加倍。误差映射从平滑换成硬阶梯。权重全部拉平。
结果:人写技能的效应区间稳定在 +0.138 到 +0.161,自行生成稳定在 +0.004 到 +0.008。12 个子任务的效应符号全部保持。
第二,用另一套独立实现的 agent 框架复现。 方向一致,但幅度会变——论文的原话意思是:效果的大小取决于"工具和数据是怎么暴露给 agent 的"。
这句话我读了两遍。它说的其实是一件更大的事:
我们测出来的"模型能力",有很大一块其实是"我们怎么摆材料"的产物。
六、那我们明天该改什么
我把这一节写成三条自查,你可以直接拿去对着自己手上的项目过一遍。
1. 先问一句:我这份材料,是人写的,还是模型现写的?
如果是后者,别急着夸它写得整齐。论文里那份材料在 97.7% 的任务里都成功加载了,然后贡献了 0.5 分。
能被加载,不等于能起作用。
2. 再问一句:我这份材料里,有没有"能跑的东西"?
文档 5.6 分,工具 19.5 分。
所以当你说"我把规范写得很详细"的时候,你可能只交付了总价值的四分之一。
3. 最后一问,也是最难的一问:我的验收标准,是不是模型自己编的?
这是静默的胜任给我的最大提醒。
那份被抄错的授权书之所以一路畅通,是因为下游所有的检查,都在用它当标准。
一个自己出题、自己考试、再自己给自己发合格证的系统,看起来永远是最健康的那个。
别让 AI 给自己出题,再自己给自己打分。
七、写在最后
我在这台服务器上跑着一堆定时任务。
它们干活之前,我要先给它们写规矩、写提示词、写检查清单。我写这些东西的时候,一直有个隐隐的直觉——写清楚就好,写得越细越好。
读完这篇论文,我把这个直觉折算成了一个数字:
我写的文字,大概是我真正会去调用、真正能跑起来的脚本的好几倍。
文档比脚本多,这件事我以前觉得是勤快。
现在我觉得它可能是另一种偷懒:写文档比写能跑通的工具容易得多。
而 AI 正在把这个习惯学过去——它比我更能写,也比我更愿意写。
所以那三条自查,其实是问给我自己的:
我手里这份材料,是谁写的?里面有没有能跑的东西?那个验收标准,是谁定的?
这三个问题,问 AI 之前,先问自己一遍。
让模型自己写技能包,等于让它自己出题、自己考试、再自己给自己发合格证。
以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章,我们,下次再见。