「AI 会不会取代我的工作」这个问题,在工程语境里其实问错了粒度。被自动化的从来不是「职业」,而是构成职业的一个个任务。把职业拆成任务、把任务按可自动化性打分,你会得到一张比任何宏观预测都更有操作性的地图。本文用任务分解的视角,分析当前 LLM/agent 系统的真实能力边界在哪。
直觉:职业是任务的集合,自动化作用在任务上
一个软件工程师的工作可以拆成几十个任务:写样板代码、查 API 用法、定位 bug、设计系统架构、和产品对齐需求、做技术取舍、code review……这些任务的「可自动化性」差异巨大。把职业 建模成任务集合:
J = \{ t_1, t_2, \dots, t_n \}, \quad \text{自动化暴露度} = \frac{\sum_i w_i \cdot a_i}{\sum_i w_i}其中 是任务 占用的时间权重, 是其可自动化程度。一个职业被「整体替代」要求几乎所有高权重任务的 都趋近 1——这在现实中极少见。更常见的是:高 的任务被吃掉,从业者的时间重新分配到低 的任务上,岗位被重塑而非消灭。
机制:什么让一个任务「可自动化」
判断 高低,看这几个结构性维度,而不是任务听起来「高级」与否:
1. 反馈闭环是否可机器验证
如果任务的正确性能被廉价、自动地验证,自动化就容易迭代收敛。
- 可验证:代码能否编译、单测是否通过、SQL 是否返回预期、数学证明能否被检查器接受。
- 难验证:「这个架构设计好不好」「这段文案是否打动人」——验证本身需要人类判断,且常常滞后数周数月。
可验证性之所以关键,是因为它决定了能否用 RL 或大规模评测把系统推到高可靠区间。验证信号 优化才能闭环。
2. 上下文是否可被显式表达
LLM 只能消费进入上下文的信息。大量人类任务依赖隐性知识:组织里谁说了算、上次那个客户为什么发火、这段祖传代码为什么不能动。这些信息没有写在任何文档里,无法被检索进上下文,于是 自然受限。
3. 错误成本与可逆性
\text{可托管程度} \propto \frac{1}{C_{err} \cdot P_{err}}错误概率 不为零(幻觉是固有的),所以错误成本 越高、越不可逆,越需要人留在回路里。生成营销文案错了改一版即可;自动给生产数据库执行 DELETE 错了可能是灾难。这解释了为什么「人在回路(human-in-the-loop)」不是过渡形态,而是高风险任务的稳态架构。
形式化:任务的「自动化阻力」
可以把单个任务的自动化阻力近似写成几个因子的组合:
1 | resistance(t) = f_verify(t) # 验证越难,阻力越大 |
最后一项 常被低估。很多任务 80% 的常见情形容易自动化,但剩下 20% 的长尾边界 case 占据了真正的复杂度和价值。一个能处理 80% 情形的系统,距离「可独立托管」还差得远——因为你无法预先知道下一个输入落在 80% 还是 20% 里,仍需人来兜底。这就是著名的「最后一公里」问题。
用 agent 视角看「端到端替代」为何更难
把多个任务串成自主完成的 agent 链路时,端到端成功率是各步的乘积:
即便每步可靠性高达 95%,10 步链路也只剩 。这是从「辅助单个任务」到「自主完成整段工作流」之间的鸿沟——它不是线性变难,而是指数级。当前 agent 在演示里能跑通长链路,但在生产里要把 拉到可托管区间,往往需要:缩短链路、增加可验证 checkpoint、在关键节点插入人审。
工程权衡与常见误区
- 误区:把「能演示」等同于「能替代」。 Demo 是精心挑选的 happy path,替代要求覆盖长尾 + 高可靠 + 错误可控。两者之间隔着上面那串乘积。
- 误区:只看任务难度,不看可验证性。 一个「听起来简单」但验证极难的任务(如开放式写作的质量评判),自动化反而慢;一个「听起来高级」但可机器验证的任务(如形式化求解),可能进展很快。
- 权衡:替代 vs. 增益。 对企业而言,更现实的不是「砍掉岗位」,而是让单人产能提升、把人从高 任务里解放出来投向低 、高价值任务。岗位的任务构成会漂移,对从业者技能的要求随之改变。
- 趋势:可验证边界在外扩。 随着工具调用、代码执行、检索能力增强,越来越多原本「难验证」的任务获得了机器可验证的代理信号, 在缓慢上升——但隐性上下文和高错误成本这两道墙,短期内仍是硬约束。
小结
别问「AI 会不会取代某职业」,问「这个职业里哪些任务的验证闭环可机器化、上下文可显式表达、错误成本可控」。高分任务会被快速吸收,低分任务把人留在回路里,而端到端自主替代受制于成功率的乘积效应。真正稀缺、且自动化阻力最大的,恰恰是判断「该做什么、做到什么程度、错了谁负责」——也就是定义问题与承担后果的能力。