用 O*NET 职业分类给 AI「考试」:为何这道题把 GPT-5 的满分级卡死在 1%?
- 关联论文:2606.05405
你有没有这种感觉——
每隔几周就有新闻说"AI 干掉了 X 岗位""AI 又能写代码又能审合同",可真把这些系统放到你公司的实际工作流里跑,要么撞墙、要么糊弄?SWE-bench、GAIA、HumanEval 的排行榜数字漂亮得很,但跟现实岗位之间的距离像是两个平行宇宙。
最近 arXiv 上的 2606.05405(由 250+ 行业专家共建),就把这件事撕开来看。它做了一道题:如果让 AI 在真实经济活动里"做满一天工作",它能完成多少?
这道题叫 Agents' Last Exam(ALE)。结论一句话摆出来:
在最难题层「全任务通过率」平均不到 1%。 也就是说,主流大模型 × 主流 Agent 框架,在最难的那批活儿面前,100 次里能完整交付的不到 1 次。
听起来吓人,但这其实是好事——因为 1% 这个数字被诚实地标出来了,而不是被 leaderboard 包装成 80%。
现有评测为什么"虚"
过去几年 Agent 评测一直有个隐隐的悖论:
- 模型在 SWE-bench、GAIA、HumanEval 这种基准上一路刷到 90%+;
- 但你让同款模型去写一份合规审计报告、跑一轮信用风险建模、整理一份跨部门的政策周报,它要么半路抛异常,要么交付的产物不可用。
原因不在模型智商,在评测跟现实脱节。ALE 把脱节的三处讲得很直白:
- 基准任务跟现实经济价值没关系。SWE-bench 是改一个 isolated bug、HumanEval 是解一道 LeetCode、GAIA 是查一次 Wikipedia——它们都不是"花几小时、几百步、跨多个工具"的工作流。现实的岗位是"调研 → 设计 → 跑实验 → 验证 → 修正 → 交付"这串动作一口气做完,目前没有任何基准完整覆盖这条链路。
- 任务池一次性发牌就过饱和。新基准上线,SOTA 模型跑两三个月就把分数刷到接近天花板,剩下的研究只能靠"刷分微优化"或者污染训练集。这种排行榜对工程没有任何指导价值。
- 行业语义不锚定。各家基准里"科研 / 软件 / 法务 / 金融"的口径不一样,分数不能直接比,也无法和真实的 GDP 行业分布对应。
ALE 是怎么回答这三个痛点的
ALE 的设计直接对着这三处补刀:
1. 任务来源锚定美国劳工统计局的 O*NET / SOC 2018 职业分类体系
什么叫锚定?任务不是研究员坐在屋里拍脑袋写的,而是由 250+ 行业专家按真实工作流设计。任务体系是一棵三层树:
- 行业簇(13 个):按 ONET 高层产业口径聚合,只覆盖非物理作业*(明确排除依赖真实机器人/硬件的任务)。
- 子领域(55 个):每个行业簇下细分,例如"金融服务"下可分"信用分析 / 风险建模 / 合规审计"。
- 任务(1000+):每条任务附机器可判的最终状态——不是 LLM 评分,是脚本、断言、API 状态、文件 diff、单元测试这些硬指标。
2. 评分是二元可验证终态
每条任务的验收条件是专家预定义的 predicate(谓词),Agent 在沙箱里执行到自然终止或超时,然后机器按预定义谓词判定通过 / 部分 / 未通过。这绕开了"用 LLM 评 LLM"那种主观漂移。
伪代码逻辑大致是:
def score(trace, task):
basic = task.predicate_basic.evaluate(trace) # 核心交付是否完成
bonus = task.predicate_bonus.evaluate(trace) # 是否到专家级质量
if not basic: return 0.0
if bonus: return 1.0
return 0.5 # 部分通过
3. 活基准(Living Benchmark)机制
任务池不是一次性发牌,而是会持续生长——每个时间点的 ALE 同时是三张图:
- 一张难度分布图(哪些行业最薄弱)
- 一张GDP 价值图(哪些领域可自动化潜力最先被填满)
- 一张模型能力演化图(升级后哪些任务最先被解决)
论文特别声明这种活基准机制借鉴了 HLE,但额外加了"行业映射"维度——让 Agent 评测和现实经济活动第一次能直接对应。
1% 这个数字为什么重要
光说"不到 1%"是没用的,重要的是对它的解读。
ALE 把"在最难题层"标得很清楚:
- 不是全量任务的平均;
- 是当前主流 harness × backbone 组合下,难度最高那一档任务的"一次跑通"通过率。
这意味着 AI 离"独立接管一个完整岗位"还有很远的距离——1% 这个数字告诉监管者、企业 AI 战略负责人、投资人:短期内别被"AI 替代 X 岗位"的营销叙事带偏,真正的端到端可用性仍处早期。
但反过来,中等难度任务的通过率必然是远高于 1%——论文把光谱完整给出,让决策者能按行业簇、按难度分层去做真实的产能估算,而不是被"AI 平均分 85"这种社交媒体摘要误导。
ALE 与现有基准的差异
| 基准 | 行业锚定 | 任务粒度 | 评分方式 | 持续性 |
|---|---|---|---|---|
| SWE-bench Verified | 软件工程(单一) | 短程 isolated bug | 单元测试 | 一次性 |
| GAIA / AgentBench / ToolBench | 无统一分类 | 细粒度工具调用 | LLM 评测 | 一次性 |
| HLE | 无(学科知识) | 短程问答 | 评测集 | 活 |
| ALE | O*NET/SOC 2018(13 簇 × 55 子领域) | 长程端到端 | 机器可判 predicate | 活 + 行业扩充 |
一句话:ALE 把 Agent 评测从"刷题"拉回"产业可用性"。
工程落地:怎么把这套范式搬到自己公司
ALE 最有价值的产出不是评测结果,而是 outcome predicate(验收谓词)这一套设计范式。
企业内 Agent 评测模板(直接把 ALE 的 schema 翻译成内部任务):
from dataclasses import dataclass
@dataclass
class OutcomePredicate:
"""单个验收谓词——机器可判,硬指标"""
name: str # 如 "CI_green"
evaluate: callable # 输入是 Agent 执行 trace,输出是否通过
@dataclass
class BusinessTask:
task_id: str
goal: str # 自然语言描述的目标
predicates: list[OutcomePredicate]
def score(self, trace):
basic_results = {p.name: p.evaluate(trace) for p in self.predicates if "basic" in p.name}
bonus_results = {p.name: p.evaluate(trace) for p in self.predicates if "bonus" in p.name}
if not all(basic_results.values()): # basic 必须全过
return 0.0, {**basic_results, **bonus_results}
if all(bonus_results.values()):
return 1.0, {**basic_results, **bonus_results}
return 0.5, {**basic_results, **bonus_results}
推荐评测节奏:
- 月度精简版:按行业簇选 5 个子领域 × 10 条 = 50 条任务,约 $250–750 / 次
- 季度完整版:全量(1000+ 任务),$5,000–15,000 / 次
- 上线前 smoke:3–5 条核心任务快速验证,不超 $50/次
几个常被忽略的工程坑
- 「< 1%」限定了"最难题层",不能简化为"AI 通过率 1%"——汇报时省略限定词会严重误导非技术决策者。
- harness 质量比模型选择更敏感:沙箱隔离、API 状态判定有 bug 时,分数会虚高。必须用已知答案的 task 先做 harness 功能测试。
- 行业分类 O*NET 不直接适配中国/欧洲语境:金融、零售、制造可以粗粒度对齐,细分类目需要按自家业务重新标,不要硬搬 SOC 2018 的口径。
- 任务池版本控制必须做:活基准每次更新后新旧任务不能直接比较,建议每次跑评测都记录 task pool version,并定期做快照以便纵向对比。
- 训练集污染要主动监控:若自家 Agent 训练数据已包含 ALE 任务,评测结果会严重虚高——定期在全新任务上重测,盯"已知 vs 新任务"通过率差。
- 二元判分不够诊断:只看终态,失败原因不透明。ALE 只负责"能不能交付",过程卡在哪一步要找 dense-reward 基准(如 LH-Terminal-Bench)配合。
谁该读这篇
- Agent 平台 / 框架作者:评估 harness 是不是真能承担产业工作流。
- 企业 AI 战略 / 数字化负责人:判断 Agent 在哪些行业簇已可投产,哪些还有 1–3 年窗口。
- 评测 / Benchmark 建设者:研究"长期可持续、价值锚定、抗污染"的活基准设计。
- 政策 / 经济研究者:把 Agent 能力前沿与真实 GDP 行业分布做映射,预测劳动力市场情景。
- 不那么适合:纯应用层 RAG 开发者、embodied AI / 机器人研究者(ALE 明确排除物理作业)。
一句话总结
AI 评测长期被"刷题"绑架,ALE 把锚拉回到"产业可用性"——以 O*NET/SOC 2018 为分类基准,用 250+ 行业专家共建 1000+ 长程任务,用机器可判的 outcome predicate 做评分,用活基准机制持续扩充。 当前 SOTA 在最难层的通过率不到 1%,不是 AI 不行,而是这道题终于诚实地出对了。
三个标题变体
- 用 O*NET 职业分类给 AI「考试」:为何这道题把 GPT-5 的满分级卡死在 1%?
- AI 评测长期被「刷题」绑架,这篇论文把它拉回「产业可用性」——结果最难题层通过率不到 1%
- SWE-bench 90 分不代表能干活——250+ 行业专家用 O*NET 给 AI 出了一套「真实岗位」考卷
小红书风格卡片文案(可直接发布)
🤖 AI 在 SWE-bench 上 90 分,到你公司真干活行不行?🤖
最近 arXiv 2606.05405 直接把这件事撕开来看。它由 250+ 行业专家共建,做了一道题:让 AI 在真实经济活动里"做满一天工作"。这道题叫 Agents' Last Exam(ALE)。
一句话结论:
在最难题层「全任务通过率」平均不到 1%。 主流大模型 × 主流 Agent 框架,在最难的那批活儿面前,100 次能完整交付的不到 1 次 💀
🔥 为什么现有评测"虚"?
- 任务跟现实经济价值没关系——SWE-bench 改 isolated bug、HumanEval 解 LeetCode,现实岗位是"调研→设计→验证→交付"一串动作一口气做完;
- 任务池一次性发牌就过饱和——SOTA 跑两三个月就能把分数刷到天花板;
- 行业语义不锚定——各家"科研/软件/法务/金融"口径不一,分数不能直接比,也不能跟 GDP 行业分布对应。
💎 ALE 的三处补刀:
- 锚定 O*NET/SOC 2018 职业分类:13 个行业簇 × 55 个子领域 × 1000+ 任务,任务不是拍脑袋写的,是行业专家按真实工作流设计;
- 机器可判的 outcome predicate:评分靠脚本、断言、API 状态、文件 diff、单元测试——绕过 LLM 评 LLM 的主观漂移;
- 活基准(Living Benchmark):任务池持续扩充,同时是难度图、GDP 价值图、能力演化图。
⚠️ 工程坑(论文自陈 + 落地经验):
- 「< 1%」必须带限定词——只针对"最难题层",汇报时省略会严重误导非技术决策者;
- harness 质量比模型选择更敏感——沙箱/谓词有 bug 时分数虚高,必须先用已知答案 task 测 harness;
- O*NET 不直接适配中国/欧洲语境——金融/零售/制造可粗粒度对齐,细分要按自家业务重新标;
- 任务池必须版本化,新旧任务不能直接比;
- 训练集污染要监控——定期在全新任务上重测,盯"已知 vs 新任务"通过率差;
- 二元判分不够诊断——ALE 只看能不能交付,过程卡在哪一步要找 dense-reward 基准配合。
💡 推荐评测节奏: - 月度精简(50 条 / 5 行业)≈ $250–750 / 次 - 季度完整(1000+ 条)≈ $5k–15k / 次 - 上线前 smoke(3–5 条)不超 $50 / 次
💡 为什么这件事重要: - AI 替代 X 岗位的营销叙事该降温——1% 告诉你离"独立接管一个完整岗位"还很远; - 但中等难度通过率必然远高于 1%——按行业簇 / 难度分层做真实产能估算,比信"AI 平均分 85"靠谱得多。
📎 论文 ID:2606.05405 💬 评论区聊聊:你们公司现在的 AI agent 在"真实工作流"里能用吗?是一次跑通还是半路撞墙?