成本 - 如何持续降低 Agent 的单位结果成本? ​

生产级 AI Agent(人工智能智能体)的 Cost Engineering(成本工程),绝不是“少用一些 Token(模型处理单元)”,也不是把所有任务都切换到更便宜的 Model(模型)。

真正的问题是:

完成一个真实业务结果到底消耗了什么资源?这些资源为什么被消耗?哪些属于 Necessary Cost(必要成本),哪些属于可以在不破坏业务护栏的情况下减少的 Avoidable Cost(可避免成本)?剩余必要工作应该走哪条最经济的执行路径?当成本开始失控时,Runtime(运行时)又如何主动限制,而不是月底才从账单里发现问题?

整章可以先建立三个核心模型:

Accounting Model(成本核算模型):钱花在哪里?

Consumption Model(资源消耗模型):为什么花这么多?

Economic Decision Model(经济决策模型):这些钱值不值得?

最终主链:

text
Business Outcome(业务结果)
→ Resource Metering(资源计量)
→ Pricing Function(计价函数)
→ Cost Attribution(成本归因)
→ Waste Detection(浪费识别)
→ Economic Routing(经济路由)
→ Budget Enforcement(预算执行)
→ Outcome Validation(结果验证)
逐项注释(15)
Business
Business:业务领域或业务规则。
Outcome
Outcome:结果。
Resource
Resource:资源。
Metering
Metering:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Pricing
Pricing:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Function
Function:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cost
Cost:成本。
Attribution
Attribution:归因。
Waste
Waste:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Detection
Detection:检测。
Economic
Economic:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Routing
Routing:路由:根据条件选择模型、工具或处理路径。
Budget
Budget:预算。
Enforcement
Enforcement:强制执行。
Validation
Validation:验证。

一、Cost Fundamentals(成本基础) ​

1.1 Agent Cost 是什么? ​

最常见的错误认知是:

Agent Cost = LLM Token Cost(大语言模型 Token 成本)。

这是明显不完整的。

一个 Data Agent(数据智能体)任务可能经历:

text
User Request(用户请求)
→ Model Planning(模型规划)
→ Metadata Retrieval(元数据检索)
→ SQL Generation(SQL 生成)
→ Warehouse Query(数据仓库查询)
→ Model Analysis(模型分析)
→ Chart Generation(图表生成)
→ Evaluation(评测)
逐项注释(13)
User
User:用户。
Request
Request:请求。
Model
Model:模型。
Planning
Planning:规划。
Metadata
Metadata:元数据:描述任务、数据或检查点的信息。
Retrieval
Retrieval:检索。
SQL
SQL:结构化查询语言。
Generation
Generation:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Warehouse
Warehouse:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Query
Query:查询。
Analysis
Analysis:分析。
Chart
Chart:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Evaluation
Evaluation:评估。

一个 Coding Agent(研发智能体)可能经历:

text
Repository Retrieval(代码仓库检索)
→ Model Reasoning(模型推理)
→ File Read / Write(文件读写)
→ Sandbox Execution(沙箱执行)
→ Test Execution(测试执行)
→ Replanning(重新规划)
→ Code Review(代码审查)
逐项注释(13)
Repository
Repository:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Retrieval
Retrieval:检索。
Model
Model:模型。
Reasoning
Reasoning:推理。
File
File:文件。
Read
Read:读取。
Write
Write:写入。
Sandbox
Sandbox:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Execution
Execution:执行。
Test
Test:测试。
Replanning
Replanning:重新规划。
Code
Code:代码。
Review
Review:审查。

企业级 Action Agent(操作智能体)还可能调用:

text
CRM(客户关系管理系统)
Payment API(支付接口)
Search(搜索)
Database(数据库)
Browser(浏览器)
Audit System(审计系统)
逐项注释(8)
CRM
CRM:客户关系管理系统。
Payment
Payment:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
API
API:应用程序编程接口。
Search
Search:搜索。
Database
Database:数据库。
Browser
Browser:浏览器。
Audit
Audit:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
System
System:系统。

因此最底层的 Accounting Model(成本核算模型)应该是:

Total Cost(总成本) = 各类 Resource Usage(资源使用量)经过对应 Pricing Function(计价函数)计算后的成本之和。

对于线性计价资源,可以近似理解为:

text
Total Cost(总成本)
≈
Σ Usageᵢ(第 i 类资源使用量)
×
Effective Unit Priceᵢ(有效单位价格)
逐项注释(7)
Total
Total:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cost
Cost:成本。
Usage
Usage:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
i
i:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Effective
Effective:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Unit
Unit:单点或单元。
Price
Price:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

但必须强调:

这是核算抽象,不代表所有资源都是“使用量 × 固定单价”。

生产环境还可能存在:

  • Cached Pricing(缓存计价)
  • Tiered Pricing(阶梯计价)
  • Long-context Pricing(长上下文计价)
  • Batch Pricing(批处理计价)
  • Service Tier Pricing(服务层级计价)
  • Per-call Pricing(按调用计价)
  • Compute-time Pricing(按计算时长计价)
  • Storage Pricing(按存储量计价)

因此成熟的 Cost Platform(成本平台)应该支持:

Pricing Catalog(价格目录) + Pricing Function(计价函数)

而不是在业务代码里散落:

text
price = 0.002
逐项注释(1)
price
price:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

从企业 Agent Platform(智能体平台)视角,可以把成本分成三类。

Serving Cost(线上服务成本) ​

直接服务用户任务:

  • Model(模型)
  • Tool(工具)
  • Search(搜索)
  • Database(数据库)
  • Browser(浏览器)
  • Sandbox(沙箱)
  • External API(外部接口)
  • Memory Retrieval(记忆读取)

Platform Cost(平台成本) ​

多个 Agent 共用:

  • Worker(工作节点)
  • Cache(缓存)
  • Storage(存储)
  • Vector Database(向量数据库)
  • Memory Infrastructure(记忆基础设施)
  • Observability Platform(可观测平台)

Improvement Cost(持续优化成本) ​

用于持续改进 Agent:

  • Evaluation(评测)
  • Judge Model(评测模型)
  • Regression Test(回归测试)
  • Prompt Optimization(提示词优化)
  • Offline Experiment(离线实验)

所以:

Model Cost(模型成本)只是 Agent Cost 的一个子集。


对于一次具体 Run(执行),还要区分:

Direct Cost(直接成本) ​

可以直接 Attribution(归因)到某次执行:

  • Model Call(模型调用)
  • Search
  • Tool API
  • Warehouse Query
  • Sandbox Runtime(沙箱运行时间)

Allocated Shared Cost(分摊共享成本) ​

例如:

  • Worker Cluster(工作节点集群)
  • Vector Database
  • Cache Cluster
  • Observability Platform

这些资源无法天然属于某一条 Run,可以根据:

  • Request Count(请求数)
  • CPU Time(CPU 时间)
  • Storage Usage(存储使用量)
  • Tenant Usage Share(租户使用占比)

做 Allocation(成本分摊)。

因此企业里可能同时维护:

Direct Unit Cost(直接单位成本)

更适合 Runtime Optimization(运行时优化)。

以及:

Fully Loaded Unit Cost(完全单位成本)

在 Direct Cost 基础上按照企业口径增加部分 Shared Cost Allocation(共享成本分摊),更适合经营和 FinOps(云成本运营)视角。

但 Improvement Cost(持续优化成本)不应该机械地全部摊进每次线上 Task。它通常应该独立观测;只有做更完整的 Unit Economics(单位经济性)分析时,才根据业务口径决定是否摊销。


从优化角度,还可以进一步拆成:

text
Total Cost(总成本)
├─ Necessary Cost(必要成本)
└─ Avoidable Cost(可避免成本)
逐项注释(4)
Total
Total:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cost
Cost:成本。
Necessary
Necessary:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Avoidable
Avoidable:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

这里的 Avoidable Cost 不是:

“理论上应该全部消灭的成本”。

更准确的定义是:

在不破坏 Quality(质量)、Reliability(稳定性)、Safety(安全)、Policy(策略)等业务 Guardrail(护栏)的情况下,可以通过架构、策略或执行优化减少的成本。

例如:

  • 无关 Context
  • 不必要 Retry
  • Duplicate Work(重复工作)
  • 无收益 Fan-out
  • Abandoned Work(废弃工作)
  • Zombie Work(僵尸工作)
  • 不必要的高质量执行路径

因此 Cost Optimization 的第一优先级通常不是:

买更便宜的模型。

而是:

先停止购买本来就不需要的资源。


1.2 什么是 Cost per Outcome(单位结果成本)? ​

如果只知道:

“这个月 Agent 花了 100 万。”

工程决策价值很有限。

必须先明确:

Cost Unit(成本单位)是什么?

常见层级:

text
Cost per Request(单请求成本)
→ Cost per Task(单任务成本)
→ Cost per Successful Task(单成功任务成本)
→ Cost per Business Outcome(单位业务结果成本)
逐项注释(7)
Cost
Cost:成本。
per
per:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Request
Request:请求。
Task
Task:任务。
Successful
Successful:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Business
Business:业务领域或业务规则。
Outcome
Outcome:结果。

生产 Agent 最值得关注的是:

Cost per Successful Outcome(单位成功结果成本)

严格定义:

text
Cost per Successful Outcome(单位成功结果成本)
=
Total Cost(总成本)
/
Successful Outcomes(成功结果数量)
逐项注释(6)
Cost
Cost:成本。
per
per:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Successful
Successful:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Outcome
Outcome:结果。
Total
Total:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Outcomes
Outcomes:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

为什么不应该只看 Cost per Task?

因为失败任务经常反而更贵。

例如 Data Agent:

text
成功路径:

Plan(规划)
→ SQL
→ Query(查询)
→ Answer(回答)

Cost ≈ $0.05
逐项注释(5)
Plan
Plan:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
SQL
SQL:结构化查询语言。
Query
Query:查询。
Answer
Answer:答案。
Cost
Cost:成本。

失败路径:

text
Wrong SQL(错误 SQL)
→ Query
→ Fail(失败)
→ Replan(重新规划)
→ Strong Model Escalation(强模型升级)
→ Re-query(重新查询)
→ Verify(验证)
→ Answer

Cost ≈ $0.18
逐项注释(12)
Wrong
Wrong:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
SQL
SQL:结构化查询语言。
Query
Query:查询。
Fail
Fail:失败状态。
Replan
Replan:重新规划。
Strong
Strong:强等级。
Model
Model:模型。
Escalation
Escalation:升级处理。
Re-query
Re-query:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Verify
Verify:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Answer
Answer:答案。
Cost
Cost:成本。

所以:

提高成功率本身,也可能是一种成本优化。


企业客服 Agent 更明显。

方案 A:

text
AI Cost / Task(单任务人工智能成本) = $0.02
Automation Success(自动处理成功率) = 60%
逐项注释(5)
AI
AI:人工智能。
Cost
Cost:成本。
Task
Task:任务。
Automation
Automation:自动化。
Success
Success:成功。

方案 B:

text
AI Cost / Task = $0.05
Automation Success = 95%
逐项注释(5)
AI
AI:人工智能。
Cost
Cost:成本。
Task
Task:任务。
Automation
Automation:自动化。
Success
Success:成功。

如果失败后需要 Human Review(人工审核),方案 B 虽然 AI 成本更高,却可能拥有更低的 Total Business Cost(业务综合成本)。

因此 Cost per Business Outcome 可以根据业务需要进一步纳入:

Human Escalation Cost(人工升级成本)

但不需要把这一章扩展成完整人力成本会计。


这里还有一个很重要的统计边界:

Successful Outcome(成功结果)的定义必须稳定。

例如 Data Agent v1:

SQL 能执行就算成功。

Data Agent v2:

SQL 正确 + 指标正确 + 真正回答用户问题才算成功。

那么两个版本的:

Cost per Successful Outcome

不能直接比较。

因为分母已经发生变化。

可以把这种问题理解成:

Denominator Drift(分母漂移,本文工程表达)。

所以版本比较时应该固定或版本化:

  • Task Definition(任务定义)
  • Success Criteria(成功标准)
  • Evaluation Version(评测版本)
  • Dataset Version(数据集版本)
  • Workload Mix(工作负载结构)

否则所谓:

Cost / Success 下降

可能只是成功标准被放宽。


1.3 成本优化的目标是什么? ​

Cost Optimization(成本优化)不是:

Minimize Cost at All Costs(不惜一切代价降低成本)。

真正的问题是:

Constrained Optimization(约束优化)。

可以理解为:

text
Minimize Cost per Successful Outcome
(最小化单位成功结果成本)

Subject to(满足约束):

Quality ≥ Target(质量达标)
Reliability ≥ Target(稳定性达标)
Latency ≤ Target(延迟达标)
Safety Must Hold(安全约束必须成立)
Policy / Compliance Must Hold
(策略 / 合规要求必须成立)
逐项注释(16)
Minimize
Minimize:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cost
Cost:成本。
per
per:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Successful
Successful:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Outcome
Outcome:结果。
Subject
Subject:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
to
to:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Quality
Quality:准确性或质量。
Target
Target:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Reliability
Reliability:稳定性。
Latency
Latency:延迟。
Safety
Safety:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Must
Must:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Hold
Hold:暂缓。
Policy
Policy:策略。
Compliance
Compliance:合规性。

因此经常存在 Pareto Trade-off(帕累托权衡)。

例如 Coding Agent:

方案 Cost / Task(单任务成本) Bug Fix Success(缺陷修复成功率)
A $0.05 78%
B $0.08 91%
C $0.14 94%

从 B 到 C:

text
Incremental Cost(增量成本)
= +$0.06

Incremental Outcome Gain(增量结果收益)
= +3 个百分点
逐项注释(4)
Incremental
Incremental:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cost
Cost:成本。
Outcome
Outcome:结果。
Gain
Gain:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

是否值得,要看一个额外成功修复的业务价值。

这就是:

Marginal Cost(边际成本)

真正需要问的是:

多花下一块钱,可以换来多少额外业务结果?

Multi-Agent(多智能体)、Verification Agent(验证智能体)、Strong Model(强模型)、Deep Reasoning(深度推理)都应该用这种方式判断。

阶段总结 ​

便宜不是一次调用便宜,而是在业务约束成立以后,一个成功业务结果的综合成本更低。


二、Measurement & Attribution(测量与归因) ​

2.1 怎么测量 Agent 的真实成本? ​

生产成本系统首先应该是:

Resource Metering System(资源计量系统)。

不同资源需要使用真正能够解释成本的 Meter(计量单位)。

资源 更合理的 Meter(计量单位)
Model(模型) Input / Cached Input / Output Tokens(输入 / 缓存输入 / 输出 Token)
Search(搜索) Query / Search Use(查询 / 搜索使用次数)
Warehouse(数据仓库) Bytes Scanned / Compute Time(扫描数据量 / 计算时间)
Sandbox(沙箱) CPU Seconds / Memory GB-Seconds(CPU 秒 / 内存 GB 秒)
Browser(浏览器) Session / Runtime / Action(会话 / 时长 / 操作)
Memory(记忆) Store / Retrieve / Storage(写入 / 读取 / 存储)
External API(外部接口) Request / Record / Transaction(请求 / 记录 / 事务)

因此:

Tool Call Count(工具调用次数) ≠ Tool Cost(工具成本)。

例如两个 SQL Tool Call:

text
Query A:
扫描 1MB

Query B:
扫描 10TB
逐项注释(5)
Query
Query:查询。
A
A:示例标识 A。
MB
MB:该纯文本块中的状态、决策或错误枚举值。
B
B:示例标识 B。
TB
TB:该纯文本块中的状态、决策或错误枚举值。

虽然都是:

text
tool_calls = 1
逐项注释(1)
tool_calls
tool_calls:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。

真实成本可能相差几个数量级。

所以 Data Agent 的 Tool Telemetry(工具遥测)最好进一步记录:

text
bytes_scanned(扫描字节数)
compute_time(计算时间)
warehouse_tier(数据仓库层级)
cache_hit(缓存是否命中)
result_size(结果大小)
逐项注释(5)
bytes_scanned
bytes_scanned:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。
compute_time
compute_time:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。
warehouse_tier
warehouse_tier:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。
cache_hit
cache_hit:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。
result_size
result_size:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。

Tool Cost 还可以从三个分析维度理解:

Definition Cost(工具定义成本)

Invocation Cost(工具执行成本)

Result / Reprocessing Cost(工具结果及后续重复处理成本)

例如:

text
100 Tool Definitions(100 个工具定义)
→ Tool Name(工具名称)
→ Description(工具描述)
→ Parameter Schema(参数结构)
逐项注释(6)
Tool
Tool:工具。
Definitions
Definitions:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Name
Name:名称。
Description
Description:描述。
Parameter
Parameter:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Schema
Schema:结构模式。

即使最终只调用两个 Tool:

其余 Tool Definition 仍可能长期占据 Model Context(模型上下文),持续产生 Input Token 成本。

真正执行 Tool 后,又可能产生:

text
Invocation Charge(工具执行费用)
+
Result Payload(结果载荷)
+
Future Context Reprocessing
(后续上下文重复处理)
逐项注释(7)
Invocation
Invocation:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Charge
Charge:扣费或计费动作。
Result
Result:结果。
Payload
Payload:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Future
Future:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Context
Context:上下文。
Reprocessing
Reprocessing:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

但需要注意:

这三类是成本分析维度,不一定是互斥的账本科目。

如果 Provider(供应商)已经把 Tool Definition 的 Token 计入 Input Tokens,那么 Cost Ledger(成本账本)不能再次把 Definition Cost 加一遍。

否则就会发生:

Double Counting(重复计算)。


另一个必须严谨处理的是:

Provider-specific Usage Semantics(供应商特定使用量语义)。

某个 Provider 可能返回:

text
input_tokens
cached_input_tokens
output_tokens
reasoning_tokens
逐项注释(4)
input_tokens
input_tokens:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。
cached_input_tokens
cached_input_tokens:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。
output_tokens
output_tokens:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。
reasoning_tokens
reasoning_tokens:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。

不能看到四个字段就机械相加。

因为:

Cached Tokens(缓存 Token)可能已经是 Input Tokens(输入 Token)的子集。

Reasoning Tokens(推理 Token)可能已经属于 Output Usage(输出使用量)的子集。

所以 Cost Calculator(成本计算器)应该是:

Provider-aware(理解供应商计量语义的)

而不是字段求和器。


成熟平台还需要:

Versioned Pricing Catalog(版本化价格目录)

至少应该支持:

text
Provider(供应商)
Resource Type(资源类型)
Model / Tool(模型 / 工具)
Usage Type(使用量类型)
Region(区域)
Service Tier(服务层级)
Currency(币种)
Pricing Rule(计价规则)
Effective From(生效时间)
Effective To(失效时间)
逐项注释(15)
Provider
Provider:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Resource
Resource:资源。
Type
Type:类型。
Model
Model:模型。
Tool
Tool:工具。
Usage
Usage:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Region
Region:区域或部署地域。
Service
Service:服务。
Tier
Tier:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Currency
Currency:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Pricing
Pricing:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Rule
Rule:规则。
Effective
Effective:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
From
From:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
To
To:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

一个非常重要的原则是:

Pricing Is Temporal Data(价格是具有时间版本的数据),不是代码常量。

否则供应商调价后:

历史成本就很难公平比较。


2.2 模型是怎么计费的? ​

这一题不能写成:

“模型 A 多少钱,模型 B 多少钱。”

具体价格会持续变化。

真正稳定的知识是:

什么因素共同决定 Effective Model Cost(模型有效成本)。

最终可以压缩成六类。


Usage Type(使用量类型) ​

常见包括:

  • Input Tokens(输入 Token)
  • Cached Input Tokens(缓存输入 Token)
  • Output Tokens(输出 Token)
  • Reasoning / Thinking Usage(推理 / 思考使用量)
  • Multimodal Usage(多模态使用量)

因此:

text
100K Total Tokens(10 万总 Token)
逐项注释(4)
K
k:数量参数;在检索语境中通常表示返回的 Top-K 条目数。
Total
Total:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Tokens
Tokens:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Token
Token:模型处理文本的词元。

并不代表两个任务成本相同。

例如:

text
Task A:

90K Input(输入)
10K Output(输出)

Task B:

30K Input
70K Output
逐项注释(6)
Task
Task:任务。
A
A:示例标识 A。
K
k:数量参数;在检索语境中通常表示返回的 Top-K 条目数。
Input
Input:输入。
Output
Output:输出。
B
B:示例标识 B。

如果 Output Price(输出价格)明显高于 Input Price(输入价格):

Task B 会明显更贵。

所以:

Total Tokens 只是 Usage Summary(使用量摘要),不是完整成本指标。


Model Tier(模型能力层级) ​

不同模型拥有不同的:

Capability / Cost Profile(能力 / 成本特征)

但不能简单认为:

贵模型一定更强,便宜模型一定更弱。

真正 Agent Model Selection(智能体模型选择)需要同时比较:

  • Task Success(任务成功率)
  • Average Turns(平均轮次)
  • Tool Usage(工具使用量)
  • Escalation Rate(升级率)
  • Latency
  • Cost per Successful Outcome

例如:

维度 Model A Model B
Token 单价 较低 较高
Average Turns(平均轮次) 6 2
Success Rate(成功率) 70% 95%
Escalation Rate(升级率) 30% 5%
Tool Usage(工具使用量) 高 低
Cost / Successful Outcome 待计算 待计算

最后一行才是真正值得比较的。


Context Tier(上下文档位) ​

Pricing Function(计价函数)不一定线性。

某些模型在超过特定 Context Size(上下文大小)以后:

会进入不同 Pricing Tier(计价档位)。

因此:

text
Context:
270K → 275K
逐项注释(2)
Context
Context:上下文。
K
k:数量参数;在检索语境中通常表示返回的 Top-K 条目数。

虽然 Token 只增加一点点:

实际金额可能发生 Step Change(阶跃变化)。

所以 Context Optimization(上下文优化)不仅可以:

减少 Token。

还可能:

避免跨入更昂贵的计价档位。


Cache Strategy(缓存策略) ​

缓存可能存在不同:

  • Cache Write(缓存写入)
  • Cache Read(缓存读取)
  • Cached Input(缓存输入)
  • Cache Storage(缓存存储)

价格。

因此 Prompt Cache(提示词缓存)不是:

“支持就打开”。

它必须通过后续真实复用:

收回 Cache Creation / Write(缓存创建 / 写入)成本。


Processing Tier(处理层级) ​

同一个 Model 可能存在:

  • Standard(标准处理)
  • Fast / Priority(快速 / 优先处理)
  • Flex(弹性处理)
  • Batch(批处理)

等模式。

本质上又是:

Cost ↔ Latency(成本与延迟)

之间的 Trade-off(权衡)。

所以:

不要为 Workload(工作负载)不需要的 SLA(Service Level Agreement,服务水平协议)付费。

Interactive Agent(交互型智能体)可能愿意为低延迟付费。

Offline Eval(离线评测)则通常没有必要购买同等级实时 SLA。


Capacity Model(容量模式) ​

还要区分:

  • Pay-as-you-go(按量付费)
  • Provisioned Capacity(预配置容量)
  • Self-hosted(自托管)

按量付费主要表现为 Variable Cost(可变成本)。

Provisioned / Self-hosted 则更接近 Capacity Cost(容量成本)。

这时:

Utilization(利用率)

变得非常重要。

例如:

text
Purchased Capacity(购买容量) = 100
Average Used Capacity(平均使用容量) = 20
逐项注释(4)
Purchased
Purchased:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Capacity
Capacity:容量:系统可承载的工作量。
Average
Average:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Used
Used:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

理论 Unit Price(单位价格)可能很低。

但 80% 长期闲置以后:

单位业务结果成本仍可能很高。

所以:

Capacity Is Cheap Only When It Is Used(容量只有真正被利用时才便宜,本文记忆性表达)。


API vs Self-hosted(托管接口 vs 自托管)也不能只比较 Model Price。

应该看:

TCO(Total Cost of Ownership,总拥有成本)

包括:

  • GPU
  • Serving Cluster(推理集群)
  • Idle Capacity(空闲容量)
  • Reliability Overhead(稳定性额外成本)
  • SRE / Operations(可靠性工程 / 运维)
  • Model Upgrade(模型升级)
  • Engineering Cost(工程成本)

不存在一个通用规律:

“超过 X QPS(每秒查询数)以后就一定应该自托管。”

Break-even Volume(规模盈亏平衡点)取决于:

  • Utilization
  • Peak / Average Ratio(峰均比)
  • Model Size(模型规模)
  • Batchability(可批处理性)
  • Availability Requirement(可用性要求)
  • GPU 成本
  • 运维能力

Multimodal Pricing(多模态计费) ​

生产 Agent 可能处理:

  • Text(文本)
  • Image(图片)
  • Audio(音频)
  • Video(视频)
  • PDF

不同 Modality(模态)可能使用不同 Meter 和 Pricing Function。

所以:

Cost Platform 不能假定所有 Usage 都是文本 Token。


最终应记住:

Effective Model Cost(模型有效成本) = Task Usage Shape(任务使用形态)经过 Provider-specific Pricing Function(供应商特定计价函数)计算后的结果。

具体价格会变。

计费结构与比较方法才是长期知识。


2.3 怎么做 Cost Attribution(成本归因)? ​

生产平台应该形成完整链路:

text
Usage Telemetry(使用量遥测)
→ Resource Metering(资源计量)
→ Pricing Catalog(价格目录)
→ Cost Calculation(成本计算)
→ Cost Attribution(成本归因)
→ Cost Ledger(成本账本)
→ Reconciliation(成本对账)
→ Regression / Optimization
(成本回归 / 优化)
逐项注释(13)
Usage
Usage:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Telemetry
Telemetry:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Resource
Resource:资源。
Metering
Metering:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Pricing
Pricing:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Catalog
Catalog:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cost
Cost:成本。
Calculation
Calculation:计算。
Attribution
Attribution:归因。
Ledger
Ledger:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Reconciliation
对账校正:比较期望状态与真实状态并修复差异。
Regression
Regression:回归。
Optimization
Optimization:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

每一笔 Usage 最好能关联:

text
Organization(组织)
Product(产品)
Tenant(租户)
Agent(智能体)
Task Type(任务类型)
Trace(追踪)
Run(执行)
Step(步骤)
Model(模型)
Tool(工具)
Agent Version(智能体版本)
Prompt Version(提示词版本)
Release(发布版本)
逐项注释(14)
Organization
Organization:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Product
Product:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Tenant
Tenant:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Agent
Agent:智能体。
Task
Task:任务。
Type
Type:类型。
Trace
Trace:调用轨迹。
Run
Run:单次运行。
Step
Step:步骤。
Model
Model:模型。
Tool
Tool:工具。
Version
Version:版本。
Prompt
Prompt:提示词。
Release
Release:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

这就是:

Trace-level Cost Attribution(追踪级成本归因)。

Provider Dashboard(供应商仪表盘)可以告诉你:

花了多少钱。

Trace-level Attribution 才能告诉你:

是哪一条 Agent 执行路径把钱花掉的。


成本分析最好同时维护三个视角。

Usage View(资源使用视角) ​

回答:

Agent 架构本身是否更加高效?

例如:

  • Input Tokens / Task
  • Model Calls / Task
  • Tool Usage / Task
  • Sandbox Seconds / Task

Actual-price View(实际价格视角) ​

回答:

实际 Spend(支出)有没有下降?

Constant-price View(恒定价格视角) ​

将不同版本 Usage 套用同一份价格:

剥离 Provider 调价以后,Agent 自身到底有没有优化。

例如:

text
五月:
100M Tokens
Spend = $1M

六月:
100M Tokens
Spend = $700K
逐项注释(4)
M
M:示例变量 M。
Tokens
Tokens:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Spend
Spend:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
K
k:数量参数;在检索语境中通常表示返回的 Top-K 条目数。

如果 Usage 完全没变:

账单下降不一定来自 Agent Optimization(智能体优化)。

可能只是:

Provider Price Drop(供应商降价)。


总成本变化可以统一拆成:

Volume(业务量) / Mix(任务结构) / Usage(资源效率) / Price(价格)

例如:

text
Volume Effect(业务量变化)       +25%
Mix Effect(任务结构变化)        +10%
Usage Regression(资源效率回归) +12%
Price Effect(价格变化)           -7%
逐项注释(6)
Volume
Volume:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Effect
Effect:真实效果。
Mix
Mix:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Usage
Usage:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Regression
Regression:回归。
Price
Price:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

所以:

Spend 告诉你贵了多少;Volume、Mix、Usage、Price 才告诉你为什么变贵。


还要区分:

Estimated Cost(估算成本)

和:

Billed Cost(实际账单成本)。

Runtime 通过:

text
Usage
×
Pricing Catalog
逐项注释(3)
Usage
Usage:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Pricing
Pricing:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Catalog
Catalog:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

得到的通常只是 Estimated Cost。

真实 Billed Cost 还可能受到:

  • Region(区域)
  • Contract(合同)
  • Discount(折扣)
  • Deployment Type(部署类型)
  • 未采集 Tool Charge(工具费用)

影响。

因此成熟平台还需要:

Cost Reconciliation(成本对账)。

这里实际上存在两个层次。

第一层:

Run-level Settlement(单任务结算)

用于内部 Runtime Budget(运行时预算)和 Cost Ledger。

第二层:

Provider Billing Reconciliation(供应商账单对账)

用于把平台内部估算与供应商最终账单对齐。

两者概念相关,但不是同一次动作。

可以抽象理解成:

text
Operational Estimate(运行时估算)
        ↓
Internal Settlement(内部结算)
        ↓
Provider Billing(供应商账单)
        ↓
Reconciliation(最终对账)
逐项注释(7)
Operational
Operational:运行与运维层面的。
Estimate
Estimate:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Internal
Internal:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Settlement
Settlement:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Provider
Provider:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Billing
Billing:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Reconciliation
对账校正:比较期望状态与真实状态并修复差异。

一个重要原则是:

Estimate Is for Planning; Budget Is for Enforcement(估算用于规划,预算用于执行约束)。


平台还可以生成:

Cost Receipt(成本收据,本文工程概念)

例如:

text
Run #A1298

Model Cost(模型成本)           $0.031
Warehouse Cost(数仓成本)      $0.018
Search Cost(搜索成本)         $0.004
Retry Waste(重试浪费)         $0.007
------------------------------------
Total Cost(总成本)            $0.060

Model Calls(模型调用)         5
Tool Calls(工具调用)          7
Input Tokens(输入 Token)      62K
Cached Tokens(缓存 Token)     31K
Retries(重试次数)             2
逐项注释(17)
Run
Run:单次运行。
A1298
A1298:该纯文本块中的状态、决策或错误枚举值。
Model
Model:模型。
Cost
Cost:成本。
Warehouse
Warehouse:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Search
Search:搜索。
Retry
重试:失败后再次执行同一操作。
Waste
Waste:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Total
Total:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Calls
Calls:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Tool
Tool:工具。
Input
Input:输入。
Tokens
Tokens:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Token
Token:模型处理文本的词元。
K
k:数量参数;在检索语境中通常表示返回的 Top-K 条目数。
Cached
Cached:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Retries
Retries:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

它比:

text
cost = $0.06
逐项注释(1)
cost
cost:成本。

更适合 Debug(调试)、Cost Regression(成本回归)和优化归因。

阶段总结 ​

Spend 告诉你花了多少;Usage、Pricing 和 Attribution 才告诉你为什么花。


三、Resource Efficiency(资源效率) ​

3.1 Context 为什么这么贵? ​

Context(上下文)最大的成本问题不是:

Prompt 很长。

而是:

相同信息会被反复购买。

例如 Data Agent:

text
System Prompt(系统提示词)       10K
Tool Definitions(工具定义)      20K
Conversation History(会话历史)  20K
Data Schema(数据定义)           10K
--------------------------------------
Standing Context(固定上下文)    60K
逐项注释(11)
System
System:系统。
Prompt
Prompt:提示词。
K
k:数量参数;在检索语境中通常表示返回的 Top-K 条目数。
Tool
Tool:工具。
Definitions
Definitions:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Conversation
Conversation:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
History
History:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Data
Data:数据。
Schema
Schema:结构模式。
Standing
Standing:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Context
Context:上下文。

任务执行:

text
Turn 1
Turn 2
...
Turn 10
逐项注释(1)
Turn
Turn:轮次。

大量固定内容可能每个 Model Turn(模型轮次)重新进入输入。

这就是:

Context Reprocessing(上下文重复处理)。

Performance(性能)章节关心:

它如何增加 Prefill Latency(预填充延迟)。

Cost 章节关心:

为什么同一批信息被多次付费。


Tool Definition(工具定义)尤其容易成为隐形成本。

例如:

text
100 Tool Definitions(100 个工具定义)
→ Tool Name(工具名称)
→ Description(工具描述)
→ Parameter Schema(参数结构)
逐项注释(6)
Tool
Tool:工具。
Definitions
Definitions:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Name
Name:名称。
Description
Description:描述。
Parameter
Parameter:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Schema
Schema:结构模式。

即使当前任务最终只调用 2 个 Tool:

其他 Tool Definition 仍可能长期存在于 Context 中。

所以:

  • Dynamic Tool Loading(动态工具加载)
  • Tool Search(工具搜索)
  • Tool Scoping(工具范围收敛)

不仅是 Performance Optimization(性能优化),也是 Cost Optimization。

一个非常典型的 Agent Cost Pitfall(智能体成本踩坑)不是:

“Agent 调了 100 个工具。”

而是:

“Agent 每一轮都重新携带 100 个工具的定义。”


Context 优化可以统一成三个动作:

Remove(删除) → Compress(压缩) → Retrieve on Demand(按需检索)

Remove(删除) ​

当前 Step 不需要:

就不发送。

Compress(压缩) ​

信息必须保留,但不需要原始全文。

例如 Coding Agent:

text
5000 行 Test Log(测试日志)
逐项注释(2)
Test
Test:测试。
Log
Log:日志。

可以压缩成:

text
Failed Tests(失败测试)
Key Stack(关键调用栈)
Relevant Files(相关文件)
逐项注释(6)
Failed
Failed:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Tests
Tests:多项测试。
Key
Key:键。
Stack
Stack:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Relevant
Relevant:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Files
Files:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

Retrieve on Demand(按需检索) ​

低频信息:

使用时再获取。

例如企业 Compliance Policy(合规策略)不一定需要每轮全部进入 Context。


三种策略都有 Trade-off(权衡)。

Remove:

可能删掉必要信息。

Compress:

可能损失细节。

Retrieve:

会增加 Retrieval Cost(检索成本)和 Latency。

所以:

Context Optimization 本质上是 Cost × Quality × Latency 的联合权衡。


Tool Result(工具结果)也需要 Budget(预算)。

例如:

text
cat huge.log
→ 返回 20MB Log(20MB 日志)
→ 进入 Context
→ 后续多个 Model Turn 继续携带
逐项注释(7)
cat
cat:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
huge
huge:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Log
Log:日志。
MB
MB:该纯文本块中的状态、决策或错误枚举值。
Context
Context:上下文。
Model
Model:模型。
Turn
Turn:轮次。

Tool Call 本身可能很便宜。

真正昂贵的是:

Tool Result 被后续不断重新处理。

所以除了:

Tool Call Budget(工具调用预算)

还应该考虑:

  • Max Result Bytes(最大结果字节数)
  • Max Result Tokens(最大结果 Token)
  • Top-K Limit(Top-K 数量限制)
  • Field Projection(字段裁剪)
  • Pagination(分页)
  • Result Summarization(结果摘要)

核心原则:

Control Tool Output, Not Just Tool Calls(不仅控制工具调用,也要控制工具输出,本文记忆性表达)。


Memory(记忆)也是经济性问题。

不用 Memory:

History 持续增长。

使用 Memory:

text
Summarize(摘要)
→ Store(存储)
→ Retrieve(读取)
逐项注释(3)
Summarize
Summarize:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Store
Store:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Retrieve
Retrieve:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

又会产生:

  • Memory Extraction Cost(记忆提取成本)
  • Storage Cost(存储成本)
  • Retrieval Cost(读取成本)

所以真正判断应该是:

Memory Cost 是否低于减少的 Context Reprocessing Cost,同时 Quality Guardrail(质量护栏)是否成立?


3.2 执行为什么会产生成本浪费? ​

Agent Resource Efficiency(智能体资源效率)可以统一理解为:

Useful Work(有效工作) vs Waste(浪费工作)。

常见 Avoidable Cost 包括:

  • Over-execution(过度执行)
  • Over-retry(过度重试)
  • Duplicate Work(重复工作)
  • Abandoned Work(废弃工作)
  • Zombie Work(僵尸工作)
  • Over-quality Work(过度质量工作)
  • Cost Leak(成本泄漏,本文工程表达)

例如 Enterprise Agent:

text
Tool API(工具接口)
→ Timeout(超时)
→ Retry(重试)
→ Timeout
→ Replan(重新规划)
→ Tool API
→ Timeout
逐项注释(5)
Tool
Tool:工具。
API
API:应用程序编程接口。
Timeout
超时:单次操作允许等待的最长时长。
Retry
重试:失败后再次执行同一操作。
Replan
Replan:重新规划。

Performance 看:

延迟越来越高。

Reliability(稳定性)看:

恢复策略有问题。

Cost 看:

为了同一个业务目标,重复购买了多遍相似资源。

因此 Runtime 至少应该考虑:

  • Max Steps(最大步骤数)
  • Model Turn Budget(模型轮次预算)
  • Retry Budget(重试预算)
  • Tool Budget(工具预算)
  • Cost Budget(成本预算)

Retry 还必须考虑 Idempotency(幂等性) ​

例如 Refund Agent(退款智能体):

text
refund_order(执行退款)
→ Network Timeout(网络超时)
逐项注释(3)
refund_order
refund_order:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。
Network
Network:网络。
Timeout
超时:单次操作允许等待的最长时长。

Agent 不知道:

后端到底成功了还是失败了。

如果直接 Retry:

text
refund_order again(再次退款)
逐项注释(2)
refund_order
refund_order:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。
again
again:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

而 Tool 又不支持 Idempotency Key(幂等键):

就可能产生重复退款。

之后还可能引发:

  • Compensation Transaction(补偿事务)
  • Human Intervention(人工介入)
  • 更多 Tool / Model 调用

因此 Enterprise Agent 的 Retry 设计至少应该考虑:

  • Idempotency Key(幂等键)
  • Duplicate Request Detection(重复请求检测)
  • Retry Classification(重试分类)
  • Safe Retry(安全重试)

从 Cost 角度:

最便宜的 Retry,是不要重复执行已经成功的工作。


No-progress Execution(无进展执行) ​

完全重复的 Infinite Loop(无限循环)通常比较容易检测。

更难的是:

text
Search(搜索)
→ Replan(重新规划)
→ Similar Search(相似搜索)
→ Replan
→ Similar Search
逐项注释(3)
Search
Search:搜索。
Replan
Replan:重新规划。
Similar
Similar:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

每个 Step 都不完全相同。

但:

text
New Evidence(新增证据)≈ 0
Uncertainty Reduction(不确定性下降)≈ 0
Completion Progress(完成进展)≈ 0

Cost ↑
逐项注释(7)
New
New:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Evidence
Evidence:证据。
Uncertainty
Uncertainty:不确定性。
Reduction
Reduction:降低或减少。
Completion
Completion:完成。
Progress
Progress:进展。
Cost
Cost:成本。

因此可以考虑:

No-progress Detection(无进展检测)。

具体 Progress(进展)信号要根据 Agent 类型定义,例如:

  • Evidence Gain(证据增益)
  • State Change(状态变化)
  • 新 Tool Result
  • Completion Criteria(完成条件)推进

但这不是一个可以通用于所有 Agent 的精确算法。

复杂任务可能确实需要一段时间探索。

因此 No-progress Detection 应该作为:

Replan / Stop / Escalate(重新规划 / 停止 / 升级)的辅助信号

而不是简单:

“连续三步没有结果就 Kill”。


Cancellation Propagation(取消传播) ​

如果 Parent Agent(主智能体)已经完成:

text
Final Result(最终结果)
✅
逐项注释(1)
Final Result
最终结果:执行链结束后形成的业务或系统结果。

但:

text
Sub-Agent C
Sub-Agent D
Browser
Sandbox
逐项注释(5)
Sub-Agent
Sub-Agent:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
C
C:示例标识 C。
D
D:用于区分不同智能体的示例标识。
Browser
Browser:浏览器。
Sandbox
Sandbox:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

仍然运行:

就形成 Zombie Work。

对于支持 Cancellation(取消)的下游:

应传播 Cancel Signal(取消信号)。

无法真正取消的下游:

  • 不再创建新工作;
  • 停止消费无价值结果;
  • 使用 Timeout;
  • 使用剩余 Budget 限制资源消耗。

Performance 关注:

减少等待。

Cost 关注:

不要继续为已经没有业务价值的工作付费。


3.3 Prompt Cache 什么时候省钱? ​

Prompt Cache(提示词缓存)是典型的 Break-even Problem(盈亏平衡问题)。

不用 Cache:

text
Without Cache(无缓存)
=
N × Normal Input Cost
(N 次普通输入成本)
逐项注释(6)
Without
Without:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cache
Cache:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
N
N:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Normal
Normal:正常状态。
Input
Input:输入。
Cost
Cost:成本。

使用 Cache:

text
With Cache(使用缓存)
=
Cache Creation / Write Cost
(缓存创建 / 写入成本)
+
Cache Storage Cost
(缓存存储成本,如果存在)
+
N × Cache Read Cost
(N 次缓存读取成本)
逐项注释(8)
With
With:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cache
Cache:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Creation
Creation:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Write
Write:写入。
Cost
Cost:成本。
Storage
Storage:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
N
N:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Read
Read:读取。

还必须考虑:

  • Stable Prefix(稳定前缀)
  • Hit Rate(命中率)
  • Reuse Frequency(复用频率)
  • Reuse Interval(复用间隔)
  • TTL(Time To Live,缓存存活时间)
  • Cache Invalidation(缓存失效)

因此:

Cache Hit(缓存命中) ≠ Cache Saving(缓存省钱)。

真正要看:

Net Saved Cost(净节省成本)。


典型负优化:

text
System Prompt + Tool Definitions
= 50K Tokens

但每个 Request Prefix(请求前缀)变化很大

Hit Rate(命中率)
≈ 5%
逐项注释(10)
System
System:系统。
Prompt
Prompt:提示词。
Tool
Tool:工具。
Definitions
Definitions:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
K
k:数量参数;在检索语境中通常表示返回的 Top-K 条目数。
Tokens
Tokens:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Request
Request:请求。
Prefix
Prefix:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Hit
Hit:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Rate
Rate:比率或速率。

即使 Cache Infrastructure(缓存基础设施)建设得很完整:

真实账单可能几乎没降。

根因不是:

Cache 技术没有价值。

而是:

这个 Workload 的 Cacheability(可缓存性)不足。


3.4 Multi-Agent 为什么容易变贵? ​

Multi-Agent(多智能体)的成本不能理解成:

Agent 数 × 模型单价

完整成本至少可能包含:

text
Parent Planning Cost(主智能体规划成本)
+
Sub-Agent Execution Cost(子智能体执行成本)
+
Context Replication Cost(上下文复制成本)
+
Tool Cost(工具成本)
+
Coordination Cost(协调成本)
+
Fan-in / Synthesis Cost(汇聚 / 综合成本)
+
Verification Cost(验证成本)
逐项注释(12)
Parent
Parent:父级智能体。
Planning
Planning:规划。
Cost
Cost:成本。
Sub-Agent
Sub-Agent:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Execution
Execution:执行。
Context
Context:上下文。
Replication
Replication:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Tool
Tool:工具。
Coordination
Coordination:协调:多个执行者之间同步状态和职责。
Fan-in
扇入:多个并行分支在同一节点汇聚。
Synthesis
Synthesis:综合生成。
Verification
Verification:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

最隐蔽的一项通常是:

Context Replication(上下文复制)。

如果每个 Sub-Agent 都重新携带:

  • System Prompt
  • Policy(策略)
  • Tool Definitions
  • History(历史)

共享 Context 会随 Agent 数量快速复制。

因此:

Multi-Agent Cost Amplification(多智能体成本放大)不仅来自更多模型调用,也来自共享上下文和工具活动的重复消费。


不要简单问:

Multi-Agent 会不会更贵?

正确问题是:

Incremental Cost(增量成本)换来了多少 Incremental Outcome Gain(增量结果收益)?

例如:

text
Single-Agent(单智能体)
Cost = $0.05
Success = 85%

Multi-Agent + Verification
Cost = $0.08
Success = 96%
逐项注释(5)
Single-Agent
Single-Agent:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cost
Cost:成本。
Success
Success:成功。
Multi-Agent
多智能体:多个具有不同职责或能力的智能体协作完成任务。
Verification
Verification:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

普通 FAQ(常见问题):

可能不值得。

高价值 Coding Review(代码审查):

可能完全值得。

所以 Multi-Agent 的经济合理性最终取决于:

Marginal Cost vs Marginal Outcome Gain(边际成本 vs 边际结果收益)。

阶段总结 ​

成本优化的第一优先级,是停止为没有业务价值的工作付钱。


四、Economic Routing(经济路由) ​

4.1 Economic Routing 怎么做? ​

Model Routing(模型路由)只是 Economic Routing(经济路由)的一部分。

生产 Runtime 真正需要选择的是:

Execution Plan(执行计划)。

可能同时决定:

  • Model(模型)
  • Tool(工具)
  • Processing Tier(处理层级)
  • Cache Strategy(缓存策略)
  • Verification Level(验证级别)
  • Agent Topology(智能体拓扑)

可以把 Economic Routing 定义为:

在 Quality(质量)、Risk(风险)、Latency(延迟)、Reliability(稳定性)和 Budget(预算)约束下,选择 Expected Cost per Successful Outcome(预期单位成功结果成本,本文用于经济决策的工程指标)最低的可接受执行路径。


这里必须严格区分两个指标。

Expected Spend per Task(单任务预期支出) ​

把所有可能路径:

Probability(概率) × Path Cost(路径成本)

求和。

Expected Cost per Successful Outcome(预期单位成功结果成本) ​

还需要结合:

整个策略最终 Success Probability(成功概率)。

例如:

text
Cheap Model(低成本模型)

Cost = $0.02
First-pass Success(首次成功率) = 60%

失败后:
Strong Model(强模型)
额外 Cost = $0.08

Strong Model Success
= 95%
逐项注释(6)
Cheap
Cheap:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Model
Model:模型。
Cost
Cost:成本。
First-pass Success
首次通过:任务不经重试或返工即正确完成。
Strong
Strong:强等级。
Success
Success:成功。

单任务 Expected Spend:

text
0.60 × $0.02
+
0.40 × ($0.02 + $0.08)

=
$0.052

策略最终 Success Probability:

text
0.60
+
0.40 × 0.95

=
0.98

于是近似:

text
Expected Cost per Successful Outcome
(预期单位成功结果成本)

≈
$0.052 / 0.98

≈
$0.053
逐项注释(5)
Expected
Expected:期望值或预期结果。
Cost
Cost:成本。
per
per:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Successful
Successful:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Outcome
Outcome:结果。

这才应该和其他策略比较。

所以:

Route by Expected Outcome Cost, Not Unit Invocation Price(按预期结果成本路由,而不是按单次调用价格路由,本文记忆性表达)。


实际 Router(路由器)可以考虑:

  • Task Complexity(任务复杂度)
  • Risk(风险)
  • Confidence(置信度)
  • Quality Requirement(质量要求)
  • Latency Requirement(延迟要求)
  • Tenant Tier(租户层级)
  • Remaining Budget(剩余预算)

例如 Data Agent:

text
Intent Classification(意图分类)
→ Low-cost Model(低成本模型)

SQL Planning(SQL 规划)
→ Strong Model(强模型)

Formatting(格式化)
→ Code / Low-cost Model
(代码 / 低成本模型)
逐项注释(10)
Intent
Intent:意图。
Classification
Classification:分类。
Low
Low:低等级。
cost
cost:成本。
Model
Model:模型。
SQL
SQL:结构化查询语言。
Planning
Planning:规划。
Strong
Strong:强等级。
Formatting
Formatting:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Code
Code:代码。

Coding Agent:

text
File Listing(文件列表)
→ Deterministic Code(确定性代码)

Simple Classification(简单分类)
→ Low-cost Model

Complex Debug / Architecture
(复杂调试 / 架构推理)
→ Strong Model
逐项注释(13)
File
File:文件。
Listing
Listing:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Deterministic
Deterministic:确定性的。
Code
Code:代码。
Simple
Simple:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Classification
Classification:分类。
Low
Low:低等级。
cost
cost:成本。
Model
Model:模型。
Complex
Complex:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Debug
Debug:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Architecture
Architecture:架构。
Strong
Strong:强等级。

核心原则:

Intelligence Only Where Needed(只在真正需要智能的地方购买强能力,本文记忆性表达)。


Processing Tier(处理层级)也属于 Routing。

Interactive Agent:

可能值得为低 Latency 支付更多。

Background Eval(后台评测):

通常没有必要购买同等级实时 SLA。

因此:

不要为 Workload 不需要的速度付费。


API vs Self-hosted(托管接口 vs 自托管)属于高价值 P1(重要进阶)。

不能说:

Open-weight Model(开放权重模型)权重免费,所以自托管一定更便宜。

真正应该比较:

TCO(Total Cost of Ownership,总拥有成本)

包括:

  • GPU
  • Serving Cluster(推理集群)
  • Idle Capacity(空闲容量)
  • Reliability Overhead(稳定性额外开销)
  • SRE / Operations(可靠性工程 / 运维)
  • Model Upgrade(模型升级)
  • Engineering Cost(工程成本)

不存在一个通用:

“超过 X QPS 就应该自托管。”

Break-even Volume(规模盈亏平衡点)取决于:

  • Utilization
  • Peak / Average Ratio(峰均比)
  • Model Size(模型规模)
  • Batchability(可批处理性)
  • Availability Requirement(可用性要求)
  • GPU Cost
  • 运维能力

4.2 Tool Cost 怎么优化? ​

企业 Agent 真正最大的成本源不一定是 Model。

Data Agent:

text
LLM Cost(模型成本) = $0.01
Warehouse Query(数仓查询) = $0.08
逐项注释(4)
LLM
LLM:大型语言模型。
Cost
Cost:成本。
Warehouse
Warehouse:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Query
Query:查询。

Research Agent:

text
Model
+ Search
+ Browser
+ Document Parsing(文档解析)
逐项注释(5)
Model
Model:模型。
Search
Search:搜索。
Browser
Browser:浏览器。
Document
Document:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Parsing
Parsing:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

Coding Agent:

text
Model
+ Sandbox
+ Build(构建)
+ Test Execution(测试执行)
逐项注释(5)
Model
Model:模型。
Sandbox
Sandbox:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Build
Build:构建。
Test
Test:测试。
Execution
Execution:执行。

因此:

Tool Call Count ≠ Tool Cost。


首先要识别真正 Tool Meter(工具计量单位)。

Warehouse(数据仓库) ​

关注:

  • Bytes Scanned(扫描数据量)
  • Compute Time(计算时间)
  • Query Complexity(查询复杂度)
  • Cache Hit(缓存命中)
  • Result Reuse(结果复用)

Sandbox(沙箱) ​

关注:

  • CPU Seconds
  • Memory GB-Seconds
  • Duration(持续时间)

Search(搜索) ​

关注:

  • Actual Search Uses(实际搜索次数)
  • Search Result Size(搜索结果大小)

还要区分:

Agent-level Tool Call(智能体层工具调用)

和:

Provider-level Tool Usage(供应商层实际工具使用量)。

例如:

text
Agent:

web_search() × 1

Provider:

Search Query × 3
逐项注释(5)
Agent
Agent:智能体。
web_search
web_search:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。
Provider
Provider:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Search
Search:搜索。
Query
Query:查询。

真实成本不能只统计上层的一次 Tool Call。

因此 Budget 最好绑定真正 Resource Meter:

text
max_search_uses(最大搜索使用次数)
max_scanned_bytes(最大扫描字节数)
max_sandbox_seconds(最大沙箱运行秒数)
max_browser_actions(最大浏览器操作数)
逐项注释(4)
max_search_uses
max_search_uses:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。
max_scanned_bytes
max_scanned_bytes:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。
max_sandbox_seconds
max_sandbox_seconds:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。
max_browser_actions
max_browser_actions:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。

而不是只有:

text
max_tool_calls
逐项注释(1)
max_tool_calls
变量名:允许调用工具的最大次数。

Tool Result(工具结果)也会形成后续成本。

例如:

text
Search(搜索)
→ 500KB Results(500KB 搜索结果)
→ Context
→ Replan
→ 下一轮继续携带
逐项注释(5)
Search
Search:搜索。
KB
KB:该纯文本块中的状态、决策或错误枚举值。
Results
Results:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Context
Context:上下文。
Replan
Replan:重新规划。

工具本身可能只收费一次。

结果却可能反复形成 Input Cost。

因此:

Control Tool Output, Not Just Tool Calls(不仅控制工具调用,也要控制工具输出,本文记忆性表达)。


Data Agent 的一个典型 Economic Decision(经济决策):

text
Realtime Warehouse Query(实时数仓查询)
Cost = $0.20
Freshness(数据新鲜度) = 实时

Cached Dataset(缓存数据集)
Cost = $0.01
Freshness = T-1
逐项注释(8)
Realtime
Realtime:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Warehouse
Warehouse:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Query
Query:查询。
Cost
Cost:成本。
Freshness
Freshness:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cached
Cached:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Dataset
Dataset:数据集。
T-1
T-1:该纯文本块中的状态、决策或错误枚举值。

用户问:

“昨天销售额怎么样?”

Cached Dataset 可能足够。

用户问:

“现在支付成功率是多少?”

T-1 数据不可接受。

因此:

最低成本 Tool 路径仍然受到 Freshness(数据新鲜度)、Quality、Risk 和业务要求约束。

阶段总结 ​

无法消除的 Necessary Cost(必要成本),才应该通过 Economic Routing 选择满足业务目标的最低成本执行路径。


五、Budget & Governance(预算与治理) ​

5.1 为什么 Budget 必须进入 Runtime? ​

月底 Dashboard(仪表盘)只能:

解释事故。

它不能:

阻止 Agent 今天烧掉整月预算。

所以 Cost Budget(成本预算)必须进入 Runtime Decision(运行时决策)。

平台可以形成 Budget Hierarchy(预算层级):

text
Organization Budget(组织预算)
↓
Product / Agent Budget(产品 / 智能体预算)
↓
Tenant Budget(租户预算)
↓
Run Budget(单任务预算)
↓
Model / Tool / Eval Budget
(模型 / 工具 / 评测预算)
逐项注释(9)
Organization
Organization:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Budget
Budget:预算。
Product
Product:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Agent
Agent:智能体。
Tenant
Tenant:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Run
Run:单次运行。
Model
Model:模型。
Tool
Tool:工具。
Eval
Eval:评测。

同时必须区分:

Budget(预算):总共允许花多少。

Quota(配额):一个主体最多被分配多少资源。

Rate Limit(速率限制):单位时间最多消耗多快。

三者解决不同问题。


一个成熟 Runtime 的 Budget Lifecycle(预算生命周期)可以抽象成:

text
Forecast(预测)
→ Reserve(预留)
→ Execute / Enforce(执行 / 约束)
→ Settle(结算)
→ Reconcile(对账)
逐项注释(6)
Forecast
Forecast:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Reserve
Reserve:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Execute
Execute:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Enforce
Enforce:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Settle
Settle:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Reconcile
Reconcile:对账并校正。

Forecast(预测) ​

任务启动前估算:

大概还需要花多少。

Reserve(预留) ​

Fan-out(任务扇出)等并发工作启动之前:

提前占用预算空间。

Execute / Enforce(执行 / 约束) ​

Runtime 持续控制。

Settle(结算) ​

根据实际 Resource Usage 对当前 Run 做内部结算。

Reconcile(对账) ​

之后再和 Provider Billing(供应商账单)做最终对齐。


Runtime 不能只判断:

text
spent_cost < budget
逐项注释(2)
spent_cost
spent_cost:该示例中的变量、字段、函数或工具标识;其组成词描述了所承载的数据或执行动作。
budget
budget:预算。

例如:

text
Budget = $1.00
Spent = $0.90
Remaining = $0.10
逐项注释(3)
Budget
Budget:预算。
Spent
Spent:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Remaining
Remaining:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

下一步准备:

text
Sub-Agent A expected $0.08
Sub-Agent B expected $0.08
Sub-Agent C expected $0.08
逐项注释(5)
Sub-Agent
Sub-Agent:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
A
A:示例标识 A。
expected
expected:期望值或预期结果。
B
B:示例标识 B。
C
C:示例标识 C。

如果只看:

text
$0.90 < $1.00

三个都可能启动。

真正应该考虑:

text
Spent
+
Reserved
+
Expected New Work
≤
Budget
逐项注释(6)
Spent
Spent:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Reserved
Reserved:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Expected
Expected:期望值或预期结果。
New
New:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Work
Work:业务工作单元。
Budget
Budget:预算。

这就是:

Budget-aware Planning(预算感知规划)。


并发情况下尤其需要:

Cost Reservation(成本预留)。

text
Reserve(预留)
→ Execute(执行)
→ Settle(结算)
→ Release Unused Reservation
(释放未使用预留)
逐项注释(6)
Reserve
Reserve:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Execute
Execute:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Settle
Settle:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Release
Release:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Unused
Unused:未使用的。
Reservation
Reservation:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

否则多个 Branch(分支)同时读取同一个 Remaining Budget:

都认为自己有足够预算。

这种情况可以理解成:

Concurrent Budget Race(并发预算竞争,本文工程描述)。


Budget 还应该区分:

Soft Budget(软预算) ​

接近以后:

开始调整执行策略。

Hard Budget(硬预算) ​

达到以后:

不再允许启动新的非必要高成本工作。

但 Hard Budget 不意味着:

立即强制 Kill 所有运行中的任务。

因为可能还必须完成:

  • Safety Check(安全检查)
  • Audit(审计)
  • Mandatory Verification(强制验证)
  • 必要事务收尾

企业平台还需要:

Cost Forecasting(成本预测)

例如:

text
Expected Task Volume(预计任务量)
×
Task Mix(任务结构)
×
Expected Usage(预计资源使用)
×
Pricing Function(计价函数)
→
Monthly Cost Forecast(月度成本预测)
逐项注释(10)
Expected
Expected:期望值或预期结果。
Task
Task:任务。
Volume
Volume:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Mix
Mix:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Usage
Usage:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Pricing
Pricing:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Function
Function:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Monthly
Monthly:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cost
Cost:成本。
Forecast
Forecast:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

还可以做 Scenario Analysis(情景分析):

text
Base Case(基准情景)
1M Tasks / month

Growth Case(增长情景)
2M Tasks / month

New Feature Case(新功能情景)
Fan-out 3 → 8

Provider Price Change Case(供应商调价情景)
Price ±30%
逐项注释(12)
Base
Base:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Case
Case:案例。
M
M:示例变量 M。
Tasks
Tasks:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
month
month:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Growth
Growth:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
New
New:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Feature
Feature:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Fan-out
扇出:一个上游任务并行分发为多个下游任务。
Provider
Provider:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Price
Price:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Change
Change:变更。

这样 Deep Research Agent(深度研究智能体)新功能上线之前:

就能提前知道潜在月成本。

运行以后再看:

Budget Variance(预算偏差)

并通过:

Volume / Mix / Usage / Price

解释为什么偏离 Forecast。


5.2 接近预算时怎么办? ​

Runtime 不应该只有:

text
if cost > budget:
    kill()
逐项注释(4)
if
if:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
cost
cost:成本。
budget
budget:预算。
kill
kill:强制终止。

更成熟的是:

Runtime Control Loop(运行时控制闭环)

text
Observe(观察)
→ Warn(预警)
→ Optimize(优化路径)
→ Degrade(降级)
→ Stop / Escalate(停止 / 升级)
逐项注释(6)
Observe
Observe:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Warn
Warn:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Optimize
Optimize:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Degrade
Degrade:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Stop
Stop:停止。
Escalate
Escalate:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

例如:

text
Budget Usage(预算使用率) < 70%
→ Normal Path(正常路径)

80%
→ Reduce Fan-out(减少扇出)

90%
→ Stop Optional Exploration
(停止可选探索)

95%
→ Use Cheaper Acceptable Model
(使用满足要求的低成本模型)

Near Hard Limit(接近硬上限)
→ Best-effort Finish / Human Escalation
(尽力完成 / 人工升级)
逐项注释(19)
Budget
Budget:预算。
Usage
Usage:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Normal Path
正常路径:没有故障时的标准执行流程。
Reduce
Reduce:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Fan-out
扇出:一个上游任务并行分发为多个下游任务。
Stop
Stop:停止。
Optional
Optional:可选。
Exploration
Exploration:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Use
Use:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cheaper
Cheaper:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Acceptable
Acceptable:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Model
Model:模型。
Near
Near:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Hard Limit
硬限制:由确定性运行时强制执行、模型无法自行突破的上限。
Best
Best:最佳。
effort
effort:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Finish
Finish:完成状态。
Human
Human:人工或人类。
Escalation
Escalation:升级处理。

但必须遵守硬边界:

Cost Optimization 不能绕过 Safety(安全)、Permission(权限)、Compliance(合规)和 Mandatory Verification(强制验证)。


Enterprise Agent 存在 Side Effect(副作用)时,还不能在业务事务执行中途粗暴停止。

例如:

text
Create Refund(创建退款)
✅

Budget Exhausted(预算耗尽)

Write Audit Record(写审计记录)
❌
逐项注释(7)
Create
Create:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Refund
Refund:退款。
Budget
Budget:预算。
Exhausted
Exhausted:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Write
Write:写入。
Audit
Audit:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Record
Record:记录。

如果直接 Kill:

可能留下半完成业务状态。

因此可以设计:

Safe Budget Boundary(安全预算边界,本文工程概念)。

在进入昂贵且不可安全中断的 Transaction Boundary(事务边界)之前:

先确认剩余 Budget 足以完成必要动作和安全收尾。


Cost Tail(成本长尾) ​

Cost Governance 不能只优化 Average Cost。

例如:

text
P50 Cost = $0.02
P95 Cost = $0.10
P99 Cost = $2.50
逐项注释(4)
P50
P50:该纯文本块中的状态、决策或错误枚举值。
Cost
Cost:成本。
P95
P95:第 95 百分位值。
P99
P99:该纯文本块中的状态、决策或错误枚举值。

P99 是 P50 的 125 倍。

典型原因:

  • Retry Storm(重试风暴)
  • Infinite / No-progress Loop(无限 / 无进展循环)
  • Context Explosion(上下文爆炸)
  • Multi-Agent Fan-out
  • Long-running Sandbox
  • Cost Leak

所以:

Cost Tail(成本长尾,本文工程表达)是 Runtime Hard Budget 必须存在的重要理论依据之一。

Dashboard / Unit Cost Target(单位成本目标)主要优化:

正常任务的平均经济性。

Runtime Hard Budget 主要限制:

极端任务最多允许烧多少钱。


Cost Dashboard 至少应该包含:

  • Mean / Average(平均值)
  • P50
  • P95
  • P99
  • Max Cost per Run(单任务最大成本)
  • Outlier Count(异常任务数量)

Cost Regression(成本回归) ​

建议固定诊断链:

text
Cost Regression(成本回归)
→ Segment(分群)
→ Normalize Workload(归一工作负载)
→ Volume / Mix / Usage / Price
→ Resource Breakdown(资源拆解)
→ Trace Breakdown(追踪拆解)
→ Root Cause(根因)
逐项注释(13)
Cost
Cost:成本。
Regression
Regression:回归。
Segment
Segment:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Normalize
Normalize:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Workload
Workload:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Volume
Volume:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Mix
Mix:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Usage
Usage:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Price
Price:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Resource
Resource:资源。
Breakdown
Breakdown:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Trace
Trace:调用轨迹。
Root Cause
根因:能够解释问题发生机制并指导永久修复的底层原因。

不能看到:

text
v1 Average Cost = $0.06
v2 Average Cost = $0.09
逐项注释(4)
v1
v1:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Average
Average:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cost
Cost:成本。
v2
v2:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

就直接说:

v2 回归。

可能只是:

v2 的 Complex Task(复杂任务)占比更高。

所以:

先分群,再比较。


Cost Observability(成本可观测能力)自身也有成本。

如果为了 Attribution:

text
100% Trace
+
Full Prompt Payload(完整提示词载荷)
+
Full Tool Result(完整工具结果)
+
Long Retention(长期保留)
逐项注释(7)
Trace
Trace:调用轨迹。
Full
Full:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Prompt
Prompt:提示词。
Payload
Payload:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Tool Result
工具结果:外部工具执行后返回的输出。
Long
Long:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Retention
Retention:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

Observability Storage(可观测存储)自己也可能成为明显成本源。

因此可以通过:

  • Metadata vs Payload(元数据 vs 完整载荷)
  • Sampling(采样)
  • Retention Policy(保留策略)
  • Hot / Cold Storage(热 / 冷存储)

控制。

详细方法仍然属于 Observability(可观测性)章节。

阶段总结 ​

优化解决正常路径怎样更省;Budget & Governance(预算治理)解决异常路径最多允许烧多少。


六、Validation(验证闭环) ​

6.1 怎么证明 Cost Optimization 真有效? ​

看到:

text
Tokens ↓ 30%
逐项注释(1)
Tokens
Tokens:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

不能宣布:

Cost Optimization 成功。

完整生产验证应该是:

text
Baseline(基线)
→ Controlled Change(受控改动)
→ Representative Workload(代表性工作负载)
→ Usage Breakdown(资源使用拆解)
→ Cost Breakdown(成本拆解)
→ Quality Validation(质量验证)
→ Performance Validation(性能验证)
→ Reliability Validation(稳定性验证)
→ Canary Validation(灰度验证)
→ Production Validation(线上验证)
逐项注释(14)
Baseline
Baseline:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Controlled
Controlled:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Change
Change:变更。
Representative
Representative:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Workload
Workload:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Usage
Usage:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Breakdown
Breakdown:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cost
Cost:成本。
Quality
Quality:准确性或质量。
Validation
Validation:验证。
Performance
Performance:性能。
Reliability
Reliability:稳定性。
Canary
Canary:小流量灰度验证。
Production
Production:生产环境。

Representative Workload(代表性工作负载) ​

假设真实线上:

text
60% Simple Task(简单任务)
25% Multi-tool Task(多工具任务)
10% Long Context Task(长上下文任务)
5% Complex / Multi-Agent Task(复杂 / 多智能体任务)
逐项注释(7)
Simple
Simple:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Task
Task:任务。
Multi-tool
Multi-tool:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Long
Long:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Context
Context:上下文。
Complex
Complex:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Multi-Agent
多智能体:多个具有不同职责或能力的智能体协作完成任务。

Benchmark(基准测试)如果只有:

text
100% Simple Task
逐项注释(2)
Simple
Simple:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Task
Task:任务。

得到的 Cost Saving(成本节省)没有足够代表性。


至少同时检查:

维度 核心指标
Cost(成本) Cost / Task、Cost / Successful Outcome、P95 / P99 Cost
Usage(资源使用) Tokens、Model Calls、Tool Usage
Quality(质量) Task Success、Eval Score(评测分数)
Performance(性能) P50 / P95 Latency(延迟)
Reliability(稳定性) Error、Timeout、Retry
Business(业务) Successful Outcome、Human Escalation(人工升级)

典型负优化 ​

优化前:

text
Strong Model(强模型)

Cost / Task = $0.08
Task Success = 95%
Escalation = 5%
逐项注释(6)
Strong
Strong:强等级。
Model
Model:模型。
Cost
Cost:成本。
Task
Task:任务。
Task Success
任务成功:任务满足预先定义的完成条件。
Escalation
Escalation:升级处理。

优化后:

text
Cheap Model(低成本模型)

Cost / Task = $0.04 ✅
Task Success = 75% ❌
Escalation = 35% ❌
逐项注释(6)
Cheap
Cheap:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Model
Model:模型。
Cost
Cost:成本。
Task
Task:任务。
Task Success
任务成功:任务满足预先定义的完成条件。
Escalation
Escalation:升级处理。

大量任务最终变成:

text
Cheap Model
→ Fail(失败)
→ Strong Model
→ Retry Tool(重试工具)
逐项注释(6)
Cheap
Cheap:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Model
Model:模型。
Fail
Fail:失败状态。
Strong
Strong:强等级。
Retry
重试:失败后再次执行同一操作。
Tool
Tool:工具。

于是:

Cost per Successful Outcome 可能反而上涨。

这种方案不能上线。


验证时还需要防:

Outcome Definition Drift(结果定义漂移)。

如果优化前后 Success Criteria(成功标准)变化:

Cost / Success 失去可比性。

因此:

  • Evaluation Version(评测版本)
  • Dataset Version(数据集版本)
  • Success Criteria
  • Workload Mix

应该保持稳定或显式版本化。


还应该做:

Savings Attribution(节省归因)。

例如团队宣布:

text
Cost ↓ 30%
逐项注释(1)
Cost
Cost:成本。

应该继续拆成:

text
Context Reduction(上下文缩减)   -12%
Prompt Cache(提示词缓存)        -8%
Economic Routing(经济路由)      -6%
Provider Price Drop(供应商降价) -7%
Task Mix Shift(任务结构变化)     +3%
逐项注释(12)
Context
Context:上下文。
Reduction
Reduction:降低或减少。
Prompt
Prompt:提示词。
Cache
Cache:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Economic
Economic:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Routing
Routing:路由:根据条件选择模型、工具或处理路径。
Provider
Provider:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Price
Price:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Drop
Drop:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Task
Task:任务。
Mix
Mix:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Shift
Shift:分布或阶段变化。

真正 Engineering Saving(工程节省)应该尽量剥离:

  • Price Effect(价格效应)
  • Mix Effect(任务结构效应)

因此:

Constant-price Comparison(恒定价格比较)

非常重要。

否则供应商降价:

很容易被误认为团队优化成果。


Improvement Cost(持续优化成本)自身也要验证。

例如:

text
10,000 Eval Samples(1 万评测样本)
×
5 Candidate Agents(5 个候选智能体)
×
3 Evaluators(3 个评测器)
逐项注释(5)
Eval
Eval:评测。
Samples
Samples:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Candidate
Candidate:候选项。
Agents
Agents:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Evaluators
Evaluators:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

很容易产生巨量 Agent + Judge 调用。

所以 Evaluation Pipeline(评测流水线)本身也需要:

  • Sampling(采样)
  • Candidate Pruning(候选淘汰)
  • Early Stopping(提前停止)
  • Cascaded Evaluation(级联评测)
  • Eval Result Reuse(评测结果复用)

阶段总结 ​

Cost / Task 下降只是局部数字;只有 Cost per Successful Outcome 在 Quality、Performance、Reliability、Safety 等 Guardrail(护栏)没有不可接受退化时下降,才是真正的 Cost Optimization。


七、三个生产级 Case(案例) ​

Case A:Data Agent Context Regression(数据智能体上下文成本回归) ​

现象:

text
Agent v31
Cost / Task = $0.05

Agent v32
Cost / Task = $0.11
逐项注释(5)
Agent
Agent:智能体。
v31
v31:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cost
Cost:成本。
Task
Task:任务。
v32
v32:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

分群后发现:

text
Task Mix ≈ unchanged
Provider Price ≈ unchanged
Model Calls ≈ unchanged
Tool Calls ≈ unchanged

Input Tokens / Task:
20K → 70K
逐项注释(11)
Task
Task:任务。
Mix
Mix:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
unchanged
unchanged:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Provider
Provider:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Price
Price:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Model
Model:模型。
Calls
Calls:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Tool
Tool:工具。
Input
Input:输入。
Tokens
Tokens:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
K
k:数量参数;在检索语境中通常表示返回的 Top-K 条目数。

Trace(追踪)最终发现:

v32 把完整 Tool Registry(工具注册表)和大量 Schema(数据定义结构)永久加入 Standing Context(固定上下文)。

优化:

  • Tool Scoping(工具范围收敛)
  • Dynamic Tool Loading(动态工具加载)
  • Retrieve on Demand(按需检索)
  • Result Compression(结果压缩)

这套案例串联:

Measurement → Attribution → Context → Regression → Validation


Case B:Coding Agent Cheap Routing Negative Optimization(研发智能体低成本路由负优化) ​

为了省钱,把:

text
Architecture Reasoning(架构推理)
Debug(调试)
Patch Planning(补丁规划)
逐项注释(5)
Architecture
Architecture:架构。
Reasoning
Reasoning:推理。
Debug
Debug:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Patch
Patch:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Planning
Planning:规划。

全部切到 Cheap Model。

结果:

text
Single-call Cost ↓
First-pass Success ↓
Replan ↑
Test Retry ↑
Strong-model Escalation ↑
逐项注释(9)
Single-call
Single-call:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cost
Cost:成本。
First-pass Success
首次通过:任务不经重试或返工即正确完成。
Replan
Replan:重新规划。
Test
Test:测试。
Retry
重试:失败后再次执行同一操作。
Strong
Strong:强等级。
model
model:模型。
Escalation
Escalation:升级处理。

最终:

Cost per Successful Bug Fix(单成功缺陷修复成本)反而上涨。

更合理:

text
Classification / Formatting(分类 / 格式化)
→ Low-cost Model(低成本模型)

Deterministic Work(确定性工作)
→ Code(代码)

Complex Reasoning / Debug(复杂推理 / 调试)
→ Strong Model(强模型)
逐项注释(12)
Classification
Classification:分类。
Formatting
Formatting:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Low
Low:低等级。
cost
cost:成本。
Model
Model:模型。
Deterministic
Deterministic:确定性的。
Work
Work:业务工作单元。
Code
Code:代码。
Complex
Complex:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Reasoning
Reasoning:推理。
Debug
Debug:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Strong
Strong:强等级。

这套案例串联:

Pricing → Expected Cost to Success → Economic Routing → Validation


Case C:Enterprise Agent Runaway Cost(企业智能体成本失控) ​

text
Tool Backend Failure(工具后端失败)
→ Retry(重试)
→ No Progress(无进展)
→ Context Growth(上下文增长)
→ Strong Model Escalation(强模型升级)
→ Multi-Agent Fan-out(多智能体扇出)
→ Cost Tail Explosion(成本长尾爆炸)
→ Budget Exhausted(预算耗尽)
逐项注释(18)
Tool
Tool:工具。
Backend
Backend:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Failure
Failure:失败。
Retry
重试:失败后再次执行同一操作。
No
No:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Progress
Progress:进展。
Context
Context:上下文。
Growth
Growth:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Strong
Strong:强等级。
Model
Model:模型。
Escalation
Escalation:升级处理。
Multi-Agent
多智能体:多个具有不同职责或能力的智能体协作完成任务。
Fan-out
扇出:一个上游任务并行分发为多个下游任务。
Cost
Cost:成本。
Tail
Tail:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Explosion
Explosion:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Budget
Budget:预算。
Exhausted
Exhausted:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

正确多层防线:

text
Failure Classification(失败分类)
→ Idempotency / Safe Retry(幂等 / 安全重试)
→ Retry Budget(重试预算)
→ Backoff / Circuit Breaker(退避 / 熔断)
→ No-progress Detection(无进展检测)
→ Run Budget(单任务预算)
→ Fan-out Budget(扇出预算)
→ Cost Reservation(成本预留)
逐项注释(15)
Failure
Failure:失败。
Classification
Classification:分类。
Idempotency
Idempotency:幂等性:同一业务操作重复执行时,最终效果与执行一次相同。
Safe
Safe:安全的。
Retry
重试:失败后再次执行同一操作。
Retry Budget
重试预算:任务允许消耗的重试次数、时间或成本上限。
Backoff
Backoff:退避等待。
Circuit Breaker
熔断器:下游持续失败时暂时停止调用,避免故障扩散。
No-progress
No-progress:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Detection
Detection:检测。
Run
Run:单次运行。
Budget
Budget:预算。
Fan-out
扇出:一个上游任务并行分发为多个下游任务。
Cost
Cost:成本。
Reservation
Reservation:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。

这套案例串联:

Waste → Runtime Control → Budget Governance


八、六类 Cost Anti-pattern(成本反模式) ​

Over-context(过度上下文) ​

不断重复购买旧信息。

Over-execution(过度执行) ​

Step(步骤)、Replan(重新规划)、Verification(验证)超出业务需要。

Over-retry(过度重试) ​

同一个失败不断重新购买资源。

Over-fanout(过度扇出) ​

Sub-Agent、Search、Tool 无约束扩散。

Over-quality(过度质量) ​

简单任务默认购买最昂贵的能力和 SLA。

Blind Optimization(盲目优化) ​

只看 Token、Model Price 或 Cost / Task,不看 Cost / Outcome 和 Guardrail。


九、五条最高级原则 ​

原则一:Optimize Cost per Outcome(优化单位结果成本) ​

不要只优化一次模型调用多少钱。

原则二:Measure Usage Before Money(先理解资源使用,再理解金额) ​

Provider 价格会变化。

Usage 更能说明架构本身是否真正变高效。

原则三:Eliminate Waste Before Buying Cheaper Compute(先消除浪费,再购买更便宜的计算,本文记忆性表达) ​

先处理:

  • Context
  • Retry
  • Loop
  • Duplicate Work
  • Fan-out
  • Zombie Work

再讨论换更便宜模型。

原则四:Budget Must Be Enforced at Runtime(预算必须在运行时执行) ​

Dashboard 能解释事故。

Runtime Budget 才能限制事故。

原则五:Cost Optimization Is Constrained Optimization(成本优化是约束优化) ​

只有:

  • Quality
  • Performance
  • Reliability
  • Safety
  • Policy / Compliance

没有不可接受退化:

成本下降才有意义。


十、最终主知识链 ​

text
Business Outcome(业务结果)
↓
Workload(工作负载)
↓
Execution Shape(执行形态)
↓
Resource Usage(资源使用量)
↓
Pricing Function(计价函数)
↓
Cost Attribution(成本归因)
↓
Resource Efficiency(资源效率)
↓
Economic Routing(经济路由)
↓
Budget Enforcement(预算执行)
↓
Outcome Validation(结果验证)
逐项注释(17)
Business
Business:业务领域或业务规则。
Outcome
Outcome:结果。
Workload
Workload:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Execution
Execution:执行。
Shape
Shape:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Resource
Resource:资源。
Usage
Usage:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Pricing
Pricing:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Function
Function:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Cost
Cost:成本。
Attribution
Attribution:归因。
Efficiency
Efficiency:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Economic
Economic:该纯文本块中的英文节点、参数、示例值或操作名称,具体语义由所在行及相邻流程共同确定。
Routing
Routing:路由:根据条件选择模型、工具或处理路径。
Budget
Budget:预算。
Enforcement
Enforcement:强制执行。
Validation
Validation:验证。

压缩记忆:

定义结果 → 计量资源 → 理解计费 → 归因成本 → 消除浪费 → 选择经济路径 → 控制预算 → 验证结果


十一、P0 / P1 / P2 面试优先级 ​

P0:必须掌握 ​

  1. Agent Cost 是什么?
  2. 什么是 Cost per Outcome?
  3. 成本优化的目标是什么?
  4. 怎么测量 Agent 的真实成本?
  5. 模型是怎么计费的?
  6. 怎么做 Cost Attribution(成本归因)?
  7. Context 为什么这么贵?
  8. 执行为什么会产生成本浪费?
  9. Prompt Cache 什么时候省钱?
  10. Multi-Agent 为什么容易变贵?
  11. Economic Routing 怎么做?
  12. Tool Cost 怎么优化?
  13. 为什么 Budget 必须进入 Runtime?
  14. 接近预算时怎么办?
  15. 怎么证明 Cost Optimization 真有效?

P1:重要进阶 ​

  • Pricing Catalog(价格目录)
  • Pricing Version(价格版本)
  • Estimated vs Billed Cost(估算成本 vs 实际账单成本)
  • Cost Reconciliation(成本对账)
  • Constant-price Comparison(恒定价格比较)
  • Cost Ledger(成本账本)
  • Cost Receipt(成本收据,本文工程概念)
  • Volume / Mix / Usage / Price 分解
  • Long-context Pricing(长上下文计价)
  • Multimodal Pricing(多模态计价)
  • Cache Break-even(缓存盈亏平衡)
  • No-progress Detection(无进展检测)
  • Marginal Cost(边际成本)
  • Processing Tier(处理层级)
  • Expected Cost per Successful Outcome(预期单位成功结果成本,本文工程指标)
  • API vs Self-hosted(托管接口 vs 自托管)
  • Utilization(利用率)
  • Cost Forecasting(成本预测)
  • Budget Variance(预算偏差)
  • Cost Reservation(成本预留)
  • Cost Tail(成本长尾,本文工程表达)
  • Shared Cost Allocation(共享成本分摊)
  • Eval Cost(评测成本)
  • Human Escalation Cost(人工升级成本)

P2:高级边界 ​

  • Quantization(量化)
  • KV Cache(注意力键值缓存)
  • Speculative Decoding(推测解码)
  • Continuous Batching(连续批处理)
  • GPU Utilization(GPU 利用率)
  • Spot / Reserved GPU Economics(竞价 / 预留 GPU 经济性)
  • Complex FinOps Chargeback(复杂内部成本计费)

这些更属于:

LLM Infra(大语言模型基础设施) / Cloud FinOps(云成本运营)

除非岗位明确要求,否则不展开。


十二、2~3 分钟标准面试回答 ​

如果面试官问:

“你会怎么优化一个生产 Agent 的成本?”

可以这样回答:

我不会一开始就把 Agent Cost 等同于 Token Cost,也不会直接把强模型全部换成小模型。第一步是定义 Cost Unit。对生产 Agent,我通常更关注 Cost per Successful Outcome,也就是完成一个真正成功业务结果需要多少钱。因为一个单次调用很便宜但经常失败、Retry、升级或者转人工的 Agent,最终单位业务结果成本可能反而更高。

然后我会建立完整的 Resource Metering 和 Cost Attribution。Model 要区分 Input、Cached Input、Output 等 Usage;不同 Tool 应使用真实 Resource Meter,比如 Data Warehouse 看 Bytes Scanned,Sandbox 看 CPU Seconds 和 Memory Time,而不是只统计 Tool Call Count。Tool 成本还要考虑 Definition、Invocation 和 Result Reprocessing,但 Cost Ledger 要避免重复核算。每笔 Usage 应尽量关联 Tenant、Agent、Task Type、Trace、Step、Model、Tool、Agent Version 和 Prompt Version,再通过 Versioned Pricing Catalog 计算成本,并通过 Cost Reconciliation 与最终账单对齐。

模型计费本身也不是一个固定 Token 单价。真实成本受到 Usage Type、Model Capability / Cost Profile、Context Tier、Cache Strategy、Processing Tier 和 Capacity Model 等共同影响。因此模型选型不能只比较每百万 Token 单价,而应该比较整个策略的 Expected Cost per Successful Outcome。

开始优化时,我首先减少 Avoidable Cost。Agent 最典型的是 Standing Context 反复处理、Tool Definition 长期占 Context、无效 Step、Retry Loop、重复 Tool Call、过大的 Tool Result、Multi-Agent Fan-out 和已经没有业务价值却还在运行的 Zombie Work。Context 可以做 Remove、Compress 和 Retrieve on Demand;Prompt Cache 则要计算 Write、Storage、Read、Hit Rate 和 Reuse Frequency 的 Break-even。

剩余 Necessary Cost 再进入 Economic Routing,根据 Task Complexity、Risk、Quality、Latency 和 Budget 选择 Model、Tool、Processing Tier、Verification Level 和 Agent Topology。不能只提高 Cheap Model Usage Ratio,因为低成本模型失败以后再升级 Strong Model,整个成功路径反而可能更贵。

最后 Budget 必须进入 Runtime。我会同时看 Spent、Reserved 和 Expected Remaining Cost,在 Multi-Agent Fan-out 前做必要的 Cost Reservation。接近预算以后逐步减少 Fan-out、停止可选探索或选择更经济路径,但不能为了省钱跳过 Safety、Permission、Compliance 或 Mandatory Verification,也不能在有 Side Effect 的事务执行到一半时粗暴 Kill。

验证时不能只看 Token 少了多少。我会使用 Representative Workload 做 Controlled Comparison,同时看 Cost / Task、Cost / Successful Outcome、P95 / P99 Cost、Task Success、Latency、Retry 和 Reliability,并通过 Constant-price Comparison 剥离 Provider 调价影响。只有单位成功结果成本真正下降,而且其他 Guardrail 没有不可接受退化,我才会认为这次 Cost Optimization 成立。


十三、最终记忆模型 ​

三层模型 ​

Accounting(核算):钱花在哪里?

Consumption(消耗):为什么用了这么多?

Economics(经济性):这些钱花得值不值?

六个阶段 ​

Cost Fundamentals(成本基础) → Measurement & Attribution(测量与归因) → Resource Efficiency(资源效率) → Economic Routing(经济路由) → Budget & Governance(预算治理) → Validation(验证闭环)

六句话 ​

便宜不是调用便宜,而是结果便宜。

Spend 说明花了多少,Usage、Pricing 和 Attribution 解释为什么花。

先减少 Avoidable Cost(可避免成本),再优化 Necessary Cost(必要成本)。

Routing 看 Expected Cost per Successful Outcome,而不是单次调用价格。

Dashboard 解释成本,Runtime Budget 限制成本。

Guardrail 内 Cost per Successful Outcome 下降,才是真优化。


十四、一句话本质 ​

Agent Cost Engineering(智能体成本工程)的本质,是从 Business Outcome(业务结果)出发,准确计量一次 Agent 执行消耗的 Model、Tool、Compute、Storage、Memory、Evaluation 等资源,通过版本化 Pricing Function(计价函数)完成 Cost Attribution(成本归因),优先减少在业务护栏内可以避免的资源消费,再通过 Economic Routing(经济路由)优化 Necessary Cost(必要成本),并利用 Runtime Budget(运行时预算)限制极端 Cost Tail(成本长尾),最终在 Quality(质量)、Performance(性能)、Reliability(稳定性)、Safety(安全)等 Guardrail(护栏)成立的前提下,持续降低 Cost per Successful Outcome(单位成功结果成本)。


十五、封版检查 ​

Theory Coverage(理论覆盖) ​

已覆盖:

  • Accounting Model(成本核算模型)
  • Consumption Model(资源消耗模型)
  • Pricing Function(计价函数)
  • Cost Amplification(成本放大)
  • Unit Economics(单位经济性)
  • Marginal Cost(边际成本)
  • Constrained Optimization(约束优化)
  • Cost Distribution(成本分布)

通过。

Production Coverage(生产覆盖) ​

已覆盖:

  • Model / Tool / Sandbox / Memory / Eval Cost
  • Tool Definition / Invocation / Result Cost
  • Context Reprocessing
  • Tool Result Budget
  • Prompt Cache Break-even
  • Retry / Idempotency
  • No-progress Detection
  • Cancellation Propagation
  • Multi-Agent Context Replication
  • Economic Routing
  • API vs Self-hosted
  • Resource Metering
  • Pricing Catalog
  • Cost Ledger
  • Cost Attribution
  • Cost Reconciliation
  • Constant-price Comparison
  • Runtime Budget
  • Soft / Hard Budget
  • Cost Reservation
  • Safe Budget Boundary
  • Cost Forecasting
  • Cost Tail
  • Cost Regression
  • Savings Attribution
  • Production Validation

通过。

Terminology Hard Gate(术语硬检查) ​

重要技术英文使用:

English(中文解释)

非标准工程表达已明确标注。

通过。

Redundancy Hard Gate(重复硬检查) ​

正文负责讲机制。

Case 负责串联。

Anti-pattern 与最终原则只做知识压缩。

通过。

Module Boundary(模块边界) ​

继续向下深入将主要进入:

  • LLM Serving(大语言模型服务)
  • AI Infra(人工智能基础设施)
  • Distributed Systems(分布式系统)
  • Cloud FinOps(云成本运营)

而不是补 Agent Cost 的一级知识缺口。

通过。

因此正式标记为:

《第六章:Cost(成本)》V3 Final / SEALED(最终封版)