A7.1 错误的复利:为什么 demo 惊艳、上线拉胯
一个让人破防的落差
你在发布会上看到智能体行云流水地订好机票、修好代码、写完报告,惊为天人。回家自己一用,它却频频卡壳、答非所问、越帮越忙。
你可能以为是自己运气差,或者用法不对。都不是。这是数学。
成功率是连乘的,不是平均的
智能体办一件事要走很多步:思考、调工具、看结果、再思考……每一步都可能出错。关键的问题是:这些步骤的成功率怎么叠加?
答案不是「取平均」,而是连乘——因为任何一步错了,整个任务就废了。这就是错误复利:
单步 95% 听起来相当高了吧?可它走 20 步:
只剩三分之一。 一个每步都有 95% 把握的智能体,办一件 20 步的事,六成以上的概率会在半路某个地方翻车。自己动手感受一下这个断崖:
错误复利计算器:为什么「单步很准」还是会失败
智能体一个任务要走很多步,每步都可能出错。拖动滑块,看单步成功率经过 n 步连乘后,整体成功率崩到什么程度。
单步成功率
95.0%
整体成功率
35.8%
三个实验,按顺序玩:
- 默认 95% × 20 步:整体成功率直接崩到 36%。
- 把步数拉到 50:眼看着方块一路变红——长任务几乎必然失败。
- 最关键的一步:把「每步失败的挽回率」往右拖。你会发现每步的有效成功率只升了一点点,整体成功率却大幅回升——连乘对单步的提升极其敏感,这正是所有纠错手段的价值所在。
三个推论
这条简单的幂律,解释了智能体工程里几乎所有的「反常识」:
- 为什么 demo 好看、上线拉胯:demo 精心挑选的是步数少、路径短的任务;真实场景步数一多,同样的模型就撑不住了。
- 为什么「缩短任务链」是硬道理:能拆成工作流的确定性步骤(回扣 A4)就别让智能体每步都自由发挥——每减少一步不确定的步骤,都是在给连乘减一个 <1 的因子。
- 为什么给每步加纠错值那么多 token:A2 的反思、A6 的跑测试看 起来「浪费」,其实是在把每步的有效成功率往上抬——而连乘会把这点提升放大成整体成功率的巨大差距。
单次「成功」骗不了人:pass^k
还有一个更隐蔽的陷阱。你让智能体跑一个任务,它成功了——它就「能用」了吗?
不一定。因为每步都是采样(A0 的老朋友),同一个任务它这次成、下次可能败。一个只有 30% 成功率的智能体,你正好撞见它成功的那一次,会误以为它很行。
所以衡量稳定性要看 pass^k——连跑 k 次,全部成功的概率。它对「偶尔灵」和「次次灵」区别对待:30% 成功率的智能体,pass^5 只有 0.3⁵ ≈ 0.24%,一照就现原形。客服类的 τ-bench(2024)就专门用 pass^k 来卡稳定性,因为给用户办事「十次错一次」都嫌多。
这个模型在哪里不准确?
「每步独立」是简化。真实任务里步骤是相关的:一步错了常常引发连锁反 应(A7.3 的排错游戏里你会亲眼看到——一个日期填错,后面每一步都「正确地」基于错误前提往下走)。相关性让真实衰减有时比纯连乘更陡。但幂律的方向绝对没错:长任务的可靠性只能靠缩短链条和层层纠错来挣,指望单步逼近 100% 是徒劳。
小结
本节要点
- 多步任务的成功率是连乘:整体成功率 = 单步成功率 ^ 步数。单步 95% × 20 步 ≈ 36%。
- 这解释了 demo 与上线的落差、缩短任务链的价值、以及每步纠错为何值那么多 token。
- 衡量稳定性要看 pass^k(连跑 k 次全成功),单次成功会骗人。
- 长任务的可靠性只能靠缩短链条 + 层层纠错来挣,指望单步逼近 100% 是徒劳。
📝 动手自测0/3
1. 一个智能体单步成功率 90%,要走 10 步完成任务,整体成功率大约是多少?
2. 为什么智能体的演示视频总是很惊艳,自己用却常翻车?
3. 一个智能体你跑了一次,成功了。关于它的可靠性,正确的判断是?
延伸阅读
- τ-bench(2024)——把 pass^k 引入智能体评测的客服基准,专门衡量「次次都得办对」的稳定性。
- 下一节 A7.2 智能体 Benchmark:怎么搭一个能自动判定「事办成了没」的评测环境。