如一 Agent 架构解读(二十四):Agent 高效率低成本思考

前面讲的都是 Agent 的「能力面」------能做什么,怎么做对、做好。从这篇开始谈「性能面」------速度、成本、效率。

出发点是一个朴素判断:成功率高于一切。任务失败了,烧掉的每一分钱和每一秒都是纯浪费。只有先立住成功率,速度和成本手段才谈得上有意义。

全文一条主线:Agent 的效率问题就是一本账。先立账(该盯哪个数),再拆账(账上有哪些量),然后看harness你能动哪些量、供应商(模型层)能替你动哪些量,最后把镜头拉远,看单任务账本之外的跨任务经济学。

一、立账:成功成本,不是 token 成本

前沿模型价格三年降了约 84%(入门 0.10/M、中端 \~2/M、旗舰 $5/M 输入),「每 token 多少钱」已经失真。真正该盯的数是:平均下来,每成功完成一次任务花多少钱。

复制代码
成功成本 = 成功那次的花费 + 平均失败次数 × 失败每次的花费

p=0.9 时失败项只加 11%,p=0.5 时翻倍,p=0.3 时 ×3.3。这个公式还是客气的------失败的 run 不是便宜地死掉,它往往打转、撞轮次上限、带着更长的上下文重试,失败那次平均比成功那次烧得更多。账面之外还有两笔不进账单的:用户等不下去自己动手的时间,和几次失败之后不再委派的信任。做 C 端产品,后一笔最贵。

由此定下全文的尺子:一切提速降本手段,评判标准是「成功成本怎么变」,不是「token 怎么变」。省了多少 token 说明不了问题。

二、拆账:账上只有五个量

一次 run 的账单拆到底,能动的量只有五个。任何提速降本手段,必然通过其中之一起作用:

量 在账本里的形状 动它的代表杠杆
单轮成功率 成本公式的分母,带指数杠杆 知识预建、报错质量、向上路由
轮次 token 平方 × 成功率指数,斜率最陡 工具设计、澄清批量化、吸收层
单轮 token 线性项 前缀缓存、压缩、就地计算
单轮耗时 线性项 流水线化、effort、供应商侧加速
并行度 墙钟的除数 并行工具、SubAgent 并行

轮次:全账本斜率最陡的变量

多轮 Agent 每轮把全量历史重发一遍,设每轮新增 Δ:

  • token 是平方的:总输入 = Δ×n(n+1)/2。Δ=2000 时,10 轮 11 万 token,20 轮 42 万,40 轮 164 万;
  • 成功率是指数的:单轮 98% 可靠(已经很乐观),10 轮剩 82%,20 轮剩 67%,50 轮只剩 36%;
  • 墙钟反而温和,线性。

两笔账合起来:任务从 10 轮涨到 20 轮,成功成本约 ×4.7。轮次同时坐在 token 的平方项和成功率的指数项上。

三、动账·Harness层面的优化

手段按「与成功率的关系」分四层。先给全图,再逐层讲思考:

层 判断标准 代表手段
免费午餐 不伤成功率,纯省 前缀缓存、会话亲和、并行异步、幂等续跑、流水线化
双赢 提成功率或收轮次 吸收层、知识预建、就地计算、报错质量、工具设计
权衡区 压 token 但有损风险 压缩、模型路由、effort、语义缓存、投机请求
底座 保尾部、供裁决 失控治理、归因、eval

3.1 免费午餐:不伤成功率,先做满

这层的共同点:不需要拿成功率下任何赌注,该做满就做满。

前缀缓存 ------ 动:单轮 token、单轮耗时;代价:抖一个字节整段失效。

缓存命中价 ≈ 1/10,TTFT 降 77~86%,性价比最高的单招。但它的机制是前缀字节匹配------所以这不是优化技巧,是架构纪律。我们为此付过真实代价:消息落库用了 MySQL 的 JSON 列,读出时键序被重排,跨 run 的缓存前缀全灭;进程内一切正常,缓存是在两次 run 之间悄悄丢的,排查很折磨。由此沉淀的纪律:渲染序固定 tools → system → messages,tools 在第 0 位;工具 schema 只经统一构造器、构造期深冻结,多键无序 map 启动即失败;顺序源自集合的地方一律按名排序------全部锁进契约测试。命中率不用猜,每次调用的 cached_tokens 落库,SQL 直接查。

会话亲和 ------ 动:单轮 token、单轮耗时;代价:路由约束。

前缀缓存的另一半。供应商侧的 KV cache 有实例局部性和生命周期,同会话的请求必须落到同一端点/实例,缓存才能跨轮存活。所以 key 轮换、多供应商 failover 的粒度都应该是会话级------请求级轮换等于每轮亲手打翻前缀缓存。

并行与异步 ------ 动:并行度、墙钟;代价:亚线性兑换。

并行工具调用、SubAgent 并行委派,墙钟直接砍,token 不增甚至省------独立上下文不互相污染,省掉反复对齐的开销。兑换是亚线性的(Noam Brown:4 agents 花 2× 成本换 1× 速度),钱花得比时间省得快,但方向正确。异步化是另一轴:后台任务 + 完成通知,把等待挪出用户时间线;它还附带一个少有人提的回报------能推到离线窗口的任务可以直接用 Batch API,半价(OpenAI/Anthropic/OpenRouter 都有,24 小时窗口,限速反而更宽),质量抽查、历史回填这类「用户不在等」的活质量零变化。

durable/幂等 ------ 动:失败成本。

没有 checkpoint 时一次超时 = 整段重跑;幂等 + 断点续跑把这笔重复消耗截断,续跑不重花已花的钱。这条严格说不只省钱,它也在保成功率:失败后不用从零再来。

流水线化 ------ 动:单轮耗时。

一轮耗时 = 模型生成 + 工具执行,通常串行相加。但 tool_call 的参数是流式生成的------参数一闭合就可以下发执行,不用等整轮文本生成完,两段从串行变重叠。对成功率和 token 零影响,工程上只注意一点:读操作参数闭合就能启动,写操作要等参数完整再过入口校验。

供应商侧的无损加速(投机解码、dLLM)同属免费午餐,但杠杆在别人手里,第四章讲。

3.2 双赢:提成功率、收轮次

「成功率高于一切」推出一个反直觉的结论:**很多最好的省钱手段,账面上看起来是花钱的。**这层每条都同时动轮次甚至单轮成功率------正是账本里斜率最陡的量。

零模型吸收层 ------ 动:轮次、成功率。

最便宜的一轮是不发生的一轮。格式校验、模板渲染、固定流程编排这类确定性子任务,用代码和规则完成------交给模型做一遍,就是一整轮全量历史重发,还白引入一次出错机会。harness 需要一层确定性吸收层,Agent loop 是兜底的通用引擎,不是所有逻辑的唯一入口。

知识预建 ------ 动:轮次、成功率、token,三向同赚。

观察一个接手任务的 agent 把钱花在哪,大头不是「做事」,是「摸清情况」------摸 schema、猜字段含义、重新推导项目约定,这些探索每轮全价计费,边摸边猜,猜错率还高。把一次性探索变成可复用资产是少见的三向同赚:skill 固化 SOP,memory 沉淀偏好与结论------下次任务不用现场摸(收轮次)、不用猜(提成功率)、不用发探索性上下文(压 token)。业界 Context Engine 案例(schema 认知预建)做到 -71% token、9 次调用完成原任务,印证的是同一个机制。

就地计算 ------ 动:单轮 token、轮次。

处理大文件时把内容读进上下文是双输:单轮 token 爆炸,还往往要分块多轮。正解是模型写代码到数据所在处执行,只有结论回 transcript------Anthropic 的 code execution 模式官方口径某场景 -98.7% token。坑有一个:就地执行的代码自己也有失败率,回传的错误必须可自纠------接下条。

报错质量 ------ 动:轮次、成功率。

错误返回得好,模型一轮修正;返回得差,三轮打转。每多打转一轮,就是一次全量历史重发加一次新的出错机会。报错消息要说清哪里错、合法输入长什么样、怎么改,而不是甩一个裸堆栈。配套的另一半是快速失败:参数越界、权限不足、红线操作,在工具入口就地拒绝,错误轮根本不生成、不进 transcript------transcript 里积累的报错垃圾会带歪后续推理,transcript 质量本身就是成功率的资产。

工具设计即轮次设计 ------ 动:轮次。

工具契约直接决定任务几轮收敛:一次调用拿够信息(别自虐式分页)、编辑粒度合理(diff 而不是整文件重写,输出量差一个量级)、命名自解释(模型不用试探性调用摸脾气)。这条没有业界百分比可引,但它是「少跑几轮」最日常的来源。

澄清批量化 ------ 动:轮次。

ask_user 一次把该问的问全,和挤牙膏式问三次,差两轮完整 loop,每轮都是全量历史重发,用户耐心也是稀缺资源。人际轮次和模型轮次烧的是同一本账。

向上路由与冗余尝试 ------ 动:成功率;代价:token/钱。

向上路由:明显复杂/高风险的任务直接上强模型,别让小模型先便宜地失败一次------失败那次不只白烧小钱,还带着更长的上下文去升级,大模型那部分也跟着变贵。冗余尝试:关键子任务并行 k 路取先成者,单点失败率从 ε 压到 ε^k。Anthropic 实测多智能体 token 是单体的 15×------作为常规链路是灾难,作为关键路径上买成功率的明码标价,成立。适用面很窄:关键、可并行、结果可机械验证。

3.3 权衡区:压 token,先问成功率

业界 90% 的降本文章写这层,90% 的坑也在这层。共同模式:拿线性项的节省,换指数项的损失------压的是单轮 token 这个线性量,伤的可能是轮次和成功率这两个陡量。

上下文压缩 ------ 动:单轮 token;风险:丢信息、重写前缀毁缓存。

摘要折前缀留尾、tool_result 指针化 + 回读。从经济学视角必须记住三句:摘要生成 + 前缀重写本身要花 token,会话马上结束时压缩是纯亏;压缩丢信息,丢的信息体现为成功率下降,评判压缩策略要用成功成本;指针化把回读变成模型的自主行为,省的是常驻,花的是按需,这个兑换方向是对的。

模型路由与档位 ------ 动:单轮 token、单轮耗时;风险:级联反贵、毁缓存。

小模型做轻量、中档做日常、旗舰做复杂,ICML AgentRouter 实测 -72% 成本、-3% 完成率。方向没错,坑有三个:一,级联的期望成本是「小模型成本 + 升级概率 × 大模型成本」,小模型失败率高时,级联比直接上强模型更贵(向上路由的镜像);二,请求级路由毁缓存------session 每轮换模型,缓存折扣(45~80%)丢光,路由粒度必须是任务/会话级;三,路由器本身不能成为新的昂贵调用,规则或 embedding 分类器就够用。校准逻辑:用自己流量里的真实消耗,不信别人的百分比。

effort 旋钮 ------ 动:单轮耗时、输出成本;风险:简单任务开 max。

reasoning_effort 已是主流参数(OpenAI 三档、DeepSeek-V4.1-Flash 四档、Anthropic budget_tokens),本质是 test-time compute 的动态分配。注意 reasoning token 按输出价 5× 计费,effort 开 max 时思考量可能是正文数倍------所以它同时也是输出成本控制。路由选谁做,effort 选想多久,两个旋钮,校准逻辑相同。

语义缓存 ------ 判死刑。

embedding 相似度匹配,相似问题直接返回缓存答案,教育/客服场景命中率能到 70~85%,很诱人。但 ICML 2026 有论文做了缓存键碰撞攻击,GPTCache 上成功率 86.9%,还证明了误报率存在数学下界------任何语义缓存都无法同时做到 100% 命中和 0% 碰撞。Agent 场景还要再加一条:缓存的答案隐含「某工具当时返回了 X」的时效假设,时过境迁直接出错。C 端场景个性化强、重复率天然低。三个理由各够一次,不碰。

输出合同 ------ 动:单轮 token。

输入:输出单价 ≈ 1:5,省输出比省输入划算。JSON 结构化、结论先行、限定字数,对成功率基本无害,是这层里接近免费的一条。max_output_tokens 只是防失控的硬上限,别当目标长度用。

投机请求 ------ 动:墙钟;代价:input +35%。

预测用户下一条输入提前发请求,实测首字符延迟 800ms→200ms。要相似度门槛防跑偏(>0.92 才采用,低了 cancel 重发),只适合低单价模型。兑换率明确,但预测跑偏的钱是纯亏,所以归权衡区。

**裁决纪律。**这层每条手段上线前,必须回答「成功成本怎么变」,而不是「token 怎么变」。回答这个问题需要两件底座,见下节。

3.4 底座:治理与归因

失控治理:账单的风险在尾部不在均值。

runaway loop 打转几十轮、重试风暴、轮询空转、SubAgent 泄漏不退出------这些不是省钱问题,是生存问题,治理手段全是上限设计:max turns、预算熔断、超时回收、并发门闩。

这层最值钱的教训来自一句文案。spawn_subagent 的返回里原先没告诉模型「任务已经在跑了」,模型就在后续轮次里反复查状态,纯空转烧 token;改了一句返回文案,整类浪费消失。**失控成本里有相当比例是这种「模型不知道」造成的,文案和协议设计也是成本治理。**供应商侧的同类动作可以对照看:Claude Code 的 5 小时窗口 + 周限额、Cursor 转按量计费------限额的本质是把失控成本关进笼子。账单可见性(让用户看到自己烧了多少)是信任的一部分。

归因:先知道钱花哪了。

业界在推 OpenTelemetry GenAI 语义约定。更直接的路径:model_call 逐次落库(输入/输出/cached token/耗时/模型),Turn/Attempt 分层记到轮与次,billing 是真实扣费------成本归因 per user/session/task、延迟归因拆到模型段还是工具段,全是 SQL 能答的问题。配套一个自测模板:任务集 ×(输入 token、输出 token、缓存命中、重试次数、单任务成本、成功率)------不信别人的百分比,测自己的 token 结构。

eval 门禁:最终质量由评测把关。

归因回答「钱花哪了」,但只有 eval 能回答「这个改动动没动成功率」。权衡区手段(压缩、降档、effort 调低)上线前应该过离线任务集回归。

3.5 出手次序

四层串起来,顺序由因子等级唯一确定:先保成功率 (分母带杠杆)→ 再收轮次 (三账复利,斜率最陡)→ 再压单轮 token (线性项,压之前先算成功成本)→ 最后买墙钟。

四条可以直接用的推论:

  1. 「减少轮次」是被严重低估的头号手段,吸收层、知识预建、报错质量、工具设计这些软实力的价值,在轮次坐标系下才看得清;
  2. 省钱手段的最大风险是把缓存弄丢------请求级路由、压缩重写前缀、键序抖动,都是压 token 时顺手打翻 1/10 价的免费午餐,保缓存命中率的优先级高于绝大多数降本手段;
  3. 速度的免费手段(并行/流水线/异步)和付费手段(多 Agent 15×、投机请求 +35%)分开记账,后者按「人的时间值多少钱」决定买不买;
  4. 失败的真实成本高于账面值(重试、人工、信任),涉及成功率的权衡都该再保守一档。

四、动账·供应商(模型)层面的优化

这层不用自己造,但要懂------哪些量在别人手里、接口在哪,采购和选型都依赖这些判断。

价格通缩与定价菜单。 三年 -84% 之后,价格表本身已是「时间 × 钱 × 质量」的三维权衡菜单:标准价、缓存价(1/10)、Batch 价(1/2)、各档 effort 价。采购逻辑从「自建优先」转向「按需购买」。

投机解码:无损加速的主线。 自回归逐 token 生成是速度瓶颈的根,投机解码 = 草稿模型快速猜 + 目标模型并行验证,输出与目标模型逐字节一致,无损。谱系:Medusa(~2×)→ Lookahead(~1.5×,免训练)→ EAGLE 系(23×)→ MTP(~1.8×,模型内置)→ 当前 SOTA DFlash:此前的草稿模型自己也是自回归的,起草本身就慢;DFlash 换轻量块扩散模型单次前向并行生成整块草稿,再以目标模型的上下文特征为条件------等于把大模型「对未来的预测轮廓」递给草稿模型,接受率大涨,实测 >6× 无损加速。对 API 用户透明,但它解释了同代模型不同端点速度差几倍------采购时值得问一句。

dLLM:范式级变量。 Inception Mercury 2.5(2026-09)单卡 1107 tokens/s、260K 上下文,Gemini Diffusion 同路线。并行生成绕开自回归串行瓶颈,对「思考链越长等越久」从根上动刀。还在早期,但如果成立,「轮次 × 单轮延迟」里的单轮项会被整体压缩。

serving 调度:TTFT 抖动的真正来源。 TTFT 由输入长度决定、与输出长度无关------压 TTFT 的刀在输入侧(缓存、瘦身)。高并发下 Prefill/Decode 混合调度互相抢占,是「同一请求有时 1s 有时 8s」的根因;PagedAttention 把显存利用率从 20% 拉到 90%,间接压排队时间。实际启示:延迟抖动不全是自己的问题,监控要把「我方耗时」与「供应商耗时」分开记。

五、账本之外:跨任务的经济学

前面的手段都在一次任务的尺度上。把尺度拉大,有四条线------它们不改变任何一次 run 的账,但决定整个产品的成本曲线。

5.1 摊销:效率随时间改善的唯一机制

LLM 无状态,每个任务从零开始、次次付全价------这是成本曲线的默认形状。打破它的唯一办法是把一次性投入变成可复用资产:memory 沉淀偏好与结论,skill 固化 SOP,SubAgent 分型目录一次设计多次复用,prompt 缓存本身也是摊销(把 system prompt 这笔固定税摊薄到 1/10)。用经济学的语言说,Agent 架构师相当部分的工作是把可变成本转化为固定成本再摊薄------3.2 知识预建那条线的长线意义在这。

推论有点反直觉但重要:用户越用越便宜,这是 C 端留存的隐性壁垒------竞对拿得走用户,拿不走摊销资产。

5.2 隐性通胀项

reasoning token 按输出价计费,用户看不见;工具 schema 是常驻税,工具越多每轮白烧越多(三级披露/按需加载是正解:默认只挂名字+一句话,用到才加载完整 schema);multi-agent 有 15× 乘数;压缩有边际递减。账单上这些乘数不显眼,加起来可观。

5.3 单位经济学:每用户每月烧多少

C 端 Agent 产品的本质是 token 的批发零售:按量买、打包卖。2025~2026 的行业事件全是这个矛盾的爆发------Cursor 固定订阅转按量计费,CEO 公开致歉退款:用户为「Agent 模式」的行为付费、却按「API 调用」的直觉被收费,错位出在计费单元。Claude Code 走另一条路,5h 窗口 + 周限额,一年半里限额翻倍再 +25%,「限额订阅」成了主流形态:给用户确定感,给供应商失控保护。同赛道 Claude Code 价位是 Cursor 的 10×,背后是 agent 模式真实的消耗量级差。每活跃用户月成本,是 C 端 Agent 创业最重要的一个数------它可以从逐次调用落库的账单直接算出来。

5.4 人的时间是终极汇率

所有账本的最终兑换对象是人的时间:$2 的 token 换 30 分钟人工,才是 Agent 存在的理由。所以等待的人类时间也是成本,速度手段本质是在买人的时间;效率的度量终点不是 token/任务,而是人的分钟/任务------一个要人盯着的 agent 省不下人力。异步和可交互 SubAgent 的经济学意义就在这:把人从时间线上撤下来。

感知层手段也归到这条线下记账。流式输出是感知层优化不是性能优化------总时间不降反略增,它移动的是用户的等待锚点,从总时长挪到首字时间。reasoning 模型把这套捅穿了:用户感知的「首字」其实是首个答案 token,思考链 decode 完之前都是空等,要么把思考过程流式展示,要么等 dLLM 从范式上解。监控要把「首个答案 token 延迟」单列为一级指标,传统 TTFT 退居二线;异步是最彻底的感知手段,用户不在等,延迟为零。感知手段和真实手段必须分开记账:前者移动锚点,后者缩短账------业界文章普遍混着讲。

延伸阅读

本篇出现的各家一手口径,给想深挖的读者:投机解码谱系与 DFlash 见 arXiv:2602.06036;Mercury 2.5 的 dLLM 见 Inception 官方发布;多智能体 15 倍 token 见 Anthropic 工程博客;Cursor 计费风波与 Claude Code 限额演进,IT 之家与腾讯云开发者社区都有时间线整理。中文圈的降本清单文章可作手段索引,但百分比口径需自行回测------这篇的立场从头到尾是:用自己的账,算自己的成功成本。


如一:ruyi.apmen.cn

智创者社区:apmen.cn

相关推荐
Xxtaoaooo2 小时前
双11避坑:我用 WorkBuddy + TextIn xParse 做了个「避坑对比台」,商品详情图丢进去,参数矛盾自动现形
人工智能·1024程序员节·textin·workbuddy·ai数据层基础设施
昵称画2 小时前
交接班记录电子化:三班之间的信息不漏
开发语言·数据库·人工智能·低代码·php
Navicat中国2 小时前
将 Navicat 的 AI 助手连接到本地 LLM
人工智能·chatgpt
“AI国潮设计-小江”2 小时前
【AIGC实战】Python+SDXL批量生成“潮汕英歌舞不倒翁”IP | 角色一致性与多场景融合方案,附完整代码
开发语言·人工智能·python·prompt·aigc
点PY2 小时前
WeDetect论文精读
人工智能
CCC:CarCrazeCurator2 小时前
稀疏奖励 vs 稠密奖励:强化学习中的反馈带宽权衡
人工智能·深度学习·机器人
骑着蜗牛撵大象3272 小时前
语音变分录、规则挡幻觉:拆解开源 AI 记账系统 Smart Ledger 的全栈设计
人工智能·ai·架构·js·数据校验
墨染天姬2 小时前
[AI]Cursor Subagent 机制详解
人工智能
数睿数据无代码开发3 小时前
企业AI落地从高价值场景开始|数睿数据《AI应用场景集》正式发布
人工智能