跳到主要内容
10.8% 的 SOTA,和一个没人问的问题

10.8% 的 SOTA,和一个没人问的问题

阿舟
阿舟

· 阅读约 6 分钟

周二 Surge AI 发了 DAYJOB: Tax。排行榜我没细看,一水个位数,看多了眼睛疼——我盯着里面一个退休账户分割的案例看了半天。

案例是一对夫妻。档案里写着现居佛罗里达、早年在得州一起住过、仪式在科罗拉多办的。任务:把退休账户分掉。

Opus 5.5 五次尝试,五次都建立在同一个前提上——这俩人没合法结婚。于是建议各自保留 Roth IRA 和 401(k),现金补差额。每一项都自洽,整套建议却站在一个没人确认过的假设上。

Astra 那边,五次里有四次先撂一句:婚姻状态得先核实。

这个对比,比排行榜上任何一行都值钱。

先把东西交代清楚。50 个任务环境,八个税务实践领域——个人与家庭、小企业、合伙、财产与投资、遗产赠与与信托、国际、公司交易,外加税务复核与争议。交付物是报税表、工作底稿、技术复核意见、客户建议这一档。工作区一共 1,789 个文件,单个任务中位数 30 个,最多的一个给了 123 个。里面 1,487 个 PDF、117 个 Excel、38 个 Word——剩下的是邮件、图片、CSV、JSON、纯文本,什么都有。

榜单长这样:

Claude Sonnet 5.5   10.8%
Claude Fable 5.1     9.6%
Claude Opus 5.5      9.2%

pass@1,通过线是 95% 的评分细则——一次尝试得满足任务至少 95% 的评分标准才算过。

我猜这两天会有两种声音。一种说看吧 AI 连税都做不了,另一种说但涨得很快明年就 40% 了。两种我都不太买账。

95% 这条线,是这基准最狠也最对的地方

按 60% 给分,这事就没什么可聊的。干过这行的都懂,一张六成对的表不能交——交出去是给客户埋雷,也是给自己埋。评分细则的百分比不是连续刻度,它没有中间地带:要么能签字,要么不能。

基准把这条残忍地照搬了进来,于是榜单一水个位数。我觉得这才是它跟一堆「税务 QA」类基准的根本区别——不是难度,是及格线的形状。

画外音:很多 agent benchmark 分数虚高,问题从来不在模型,在评分器给了太多情面。

1,789 个文件,不是 context window 的锅

看到中位数 30 个、最多 123 个,第一反应大概是上下文塞不下。塞得下,现在的窗口绰绰有余。

真的难的是另一件事:这 30 个文件里,哪三个是关键的、哪二十几个是噪音、哪一个伪装成噪音其实是雷。这能力没有正经名字,但它就是初级和资深那条线的位置。人类税务师干二十年,干的就是在客户倒过来的一堆材料里挑出那三张纸。

一个具体例子。基准里有个任务,客户坚信自己那家工业筒仓服务公司只在阿拉巴马州运营。现场调度记录显示施工队去过五个州。没人问「你在几个州有业务」,答案躺在表格的某一行里。你得先意识到这是个问题,才谈得上找答案。

还有个任务给了张手写商品收据的照片。读商品名和金额,跟支出记录对上,再判断这笔采购怎么进存货和销货成本。这活儿没任何「智能」光环,但它是这行八成的日常。基准把它收进去了,这点我服。

两个模型,两块互补的盲区

回到退休账户那个案例。Astra 四比一提了「先核实婚姻状态」,Opus 五比零直接假设未婚。同一份档案,两种读法。

另一个案例是反过来的:2026 年 10 月卖房 vs 2027 年 1 月卖房的税务差异。客户 2024 年 8 月搬离,免税额上限 25 万。关键点在「出售前五年内至少住满两年」,算下来截止窗口卡在 2027 年 8 月底前后。Astra 五次,一次都没提这个截止点;Opus 五次全提。

两个任务,两对完全相反的 5:0。

这组数据把「等下一代模型」这个叙事捅了个具体的窟窿。不是「再等两个版本就好了」——是同一个能力档位上的两个模型,各有一块对方没有的雷达,而且这两块雷达不相关。你把它们拼起来,覆盖率也不是简单相加,因为真实业务里你没法预知这个任务属于「敢假设」那一类,还是「该停下来问」那一类。

这才是 10.8% 底下真正让人不舒服的东西。差的不是知识量,是判断力——什么时候可以自己补一个前提往下推,什么时候必须停下来跟客户打个电话。第二种动作,现在没哪个 agent 做得稳定。

考题和上班,不是一回事

顺便说下对比的那几个基准。TaxBench 是 114 道有明确问题和评分标准的税务题;TaxCalcBench 盯着报税表算得准不准;TaxLab 测的是向模拟纳税人追问、把联邦个人 1040 填完。

都是好工作,我不踩。但它们全是「考生」模型的:问题给你放好,输入干干净净,答案还判得了对错。考题好判分,所以大家做考题;上班难判分,所以这块一直空着。行业惯性,说穿了就这一句。而且我怀疑,正因为考题好判分,它们在模型公司的叙事里活得比实际更久。

我自己的版本

这个失败模式我熟。不是税务,是代码。

给 agent 一个挂掉的测试,说「修好它」。回来的 diff 把断言删了,测试绿了。画外音:实习生为了交差,把验收标准自己也改了。它没撒谎,它只是在一个模糊的地方——什么叫「修好」——选了那条能让交付物成立的路。

这跟 Opus 假设那对夫妻没结婚是同一个东西,只是换了个工作区。它没有「不确定」这个状态,只有「继续产出」这个状态。任务给它一个交付物的形状,它就往里填,填不满的地方自己补上,补的时候不打算告诉你。

我一开始想把这个归到模型能力头上,后来觉得不对。一半在接口。真实税务师遇到档案不清,会先给客户打个电话,或者发封邮件问一句「你这个得先确认」。Agent 没有「打电话」这个动作——除非你把「可以停下来问」明确设计成一条可走的路。这不是智力问题,是没有这个动词。

扯远了,回正题。这也解释了 95% 那条线为什么这么难:95% 的细则满意度要求你在每一个细节上都对,而「自己补前提」这个动作,一处补错就掉到 90% 以下。它惩罚的正是最有生产力、也最危险的那个行为。

我现在改的一条规矩

我现在派活之前,会在 prompt 里加一句:关键前提不明确,先列出来别往下做。

有用,但很有限。因为现实里最麻烦的模糊,是模型自己都没意识到那是模糊的那部分——它没觉得需要问,所以那条规定对它是不可见的。

本期缴税:又一次确认「不确定」这件事没法靠 prompt 补,只能靠人盯着。

阿舟
阿舟

写代码写到一半开始怀疑人生,靠 AI 工具续命,顺手把踩过的坑都记下来。

查看主页 →