当单Agent的Token消耗以"分"计算时,多Agent协作系统已经在以"元"甚至"百元"的速度燃烧预算。2026年5月,arXiv论文《Token Economics for LLM Agents》正式提出"Token经济学"概念——Token不仅是计价单位,更是Agent系统的核心经济原语。与此同时,企业FinOps团队发现:多Agent系统的实际Token开销是预估的3-5倍,其中超过40%的Token根本不贡献有效输出。本文从成本归因、预算控制、网关路由、模型分层、上下文压缩、可观测性六个层面,深度拆解多Agent系统的Token经济学生态,给出从"烧钱黑洞"到"可控引擎"的实战路径。
多Agent系统的Token消耗不是线性增长的——它是二次方的。当N个Agent在同一会话中协作时,每轮对话的消息历史包含所有先前Agent的输出,Token总量呈三角数列增长:
$$Token_{total} \approx \sum_{i=1}^{T} i \times L_{avg} = \frac{T(T+1)}{2} \times L_{avg}$$
其中T是总轮次,$L_{avg}$是每轮平均Token长度。一篇来自exe.dev的分析指出,在50,000 Token的对话深度时,缓存读取(Cache Read)已经占到了下一次API调用成本的50%。这意味着Agent运行越久,"重读历史"的成本越逼近甚至超过"生成新内容"的成本。
| 成本类型 | 占比 | 根因 | 典型场景 |
|---|---|---|---|
| 重复上下文注入 | 35-45% | 每个Agent独立注入完整系统提示+工具描述 | 6个Agent各带2000 Token系统提示 |
| 中间产物传递 | 20-30% | Agent间传递原始输出而非摘要 | 研究Agent返回5000 Token原始数据 |
| 无效重试循环 | 15-25% | 工具调用失败触发上下文膨胀的ReAct循环 | API格式错误导致3轮重试 |
| 跨Agent冗余 | 10-15% | 多个Agent重复检索相同信息 | 两个Agent都搜索同一文档 |
Datagrid的分析报告显示,一个典型的客服Agent平均每轮对话消耗800-1200 Token,但其中不到60%的Token实际贡献了有效响应。换算成真金白银:如果你的多Agent系统每月处理10万次对话,按GPT-4o定价计算,每月浪费的Token成本约$1,200-$3,600。
Zylos在2026年5月的研究中总结了多Agent成本归因的三种主流架构:
架构一:网关级元数据强制标注
┌──────────┐ ┌─────────────┐ ┌──────────┐
│ Agent A │───▶│ AI Gateway │───▶│ LLM API │
│ project:X │ │ inject: │ │ │
│ task:123 │ │ metadata │ │ │
└──────────┘ │ {project, │ └──────────┘
│ task,agent} │
└─────────────┘
通过LiteLLM或Portkey等网关,在每个请求上强制注入project_id、task_id、agent_id等元数据标签。网关在响应中返回实际Token用量,后台按标签聚合。这是目前最成熟、侵入性最低的方案。
架构二:回调级回调追踪
LangChain生态通过UsageMetadataCallbackHandler实现回调级归因:
from langchain_community.callbacks import UsageMetadataCallbackHandler
# 按Agent实例绑定回调
agent_researcher = create_react_agent(
llm=gpt4o,
tools=search_tools,
callbacks=[UsageMetadataCallbackHandler(
agent_name="researcher",
project="market_analysis"
)]
)
这种方式的优势是可以精确到每次工具调用的Token消耗,但要求框架支持回调机制。
架构三:编排层原生归因
LangGraph和CrewAI的最新版本开始内置Token计量:
# LangGraph 原生Token追踪
from langgraph.graph import StateGraph
graph = StateGraph(AgentState)
graph.add_node("researcher", researcher_node)
graph.add_node("writer", writer_node)
# 执行后自动获取每个节点的Token消耗
result = graph.invoke(initial_state)
token_report = result["__token_usage__"]
# {'researcher': {'input': 4200, 'output': 1800},
# 'writer': {'input': 2100, 'output': 3500}}
| 方案 | 粒度 | 侵入性 | 精度损失 | 适用规模 |
|---|---|---|---|---|
| 网关标注 | 请求级 | 极低 | <2% | 10K+ QPS |
| 回调追踪 | 工具调用级 | 中等 | 5-8%(流式丢失) | 中等 |
| 原生归因 | 节点/边级 | 高(需适配框架) | <1% | 小规模 |
| 混合方案 | 全链路 | 中高 | <3% | 企业级 |
2026年AI API网关品类已形成完整生态。FutureAGI的评测覆盖了五大网关的Token预算能力:
| 网关 | 预算粒度 | 限流模式 | 实时追踪 | 缓存策略 | 开源 |
|---|---|---|---|---|---|
| LiteLLM | 项目/团队/用户 | Token+RPM+RPS | ✓ | ✗ | ✓ |
| Portkey | 请求级 | Token+Cost | ✓ | 语义缓存 | 部分 |
| Helicone | 自定义标签 | 成本阈值告警 | ✓ | Prompt缓存 | ✓ |
| OpenRouter | 账户级 | 硬性Token上限 | ✓ | 自动路由 | ✗ |
| TokenMix | 管道级 | 滑动窗口 | ✓ | 智能缓存 | ✗ |
| Cloudflare AI Gateway | 域名级 | Token限速 | ✓ | 响应缓存 | ✗ |
生产级多Agent系统的关键需求是按Agent/任务设置独立的Token预算上限:
# LiteLLM 按Agent设置预算
from litellm import completion_with_budgets
budget_config = {
"researcher_agent": {
"max_tokens_per_hour": 500000,
"max_cost_per_day": 50.0,
"model": "gpt-4o-mini" # 自动降级模型
},
"reviewer_agent": {
"max_tokens_per_hour": 200000,
"max_cost_per_day": 20.0,
"model": "gpt-4o"
}
}
当researcher_agent小时预算耗尽时,系统可以选择:硬性拒绝(返回错误)、自动降级到更便宜的模型(如GPT-4o-mini→GPT-4.1-nano)、或排队等待预算刷新。
根据TokenMix的基准测试报告:
| 策略 | 成本节省 | 延迟影响 | 质量损失 |
|---|---|---|---|
| 模型路由(任务分级) | 40-60% | +5-15% | <2% |
| 语义缓存 | 25-45% | -80%(命中时) | 0% |
| Prompt压缩 | 30-50% | +10-20% | 3-5% |
| Token预算硬限 | 15-30% | 无 | 取决于阈值 |
| 以上组合 | 60-80% | +5-10% | <5% |
多Agent系统的核心省钱逻辑是不让所有Agent都用最贵的模型。MindStudio的分析指出,一个典型的6-Agent工作流中:
用户请求
│
▼
┌─────────────┐
│ 路由层 │ ← 判断任务复杂度
└─────┬───────┘
│
├── 简单任务(格式化、提取)→ GPT-4.1-nano / Claude Haiku
│ 成本:$0.10/M input
│
├── 中等任务(总结、分类)→ GPT-4o-mini / Gemini Flash
│ 成本:$0.15/M input
│
└── 复杂任务(推理、代码)→ GPT-4o / Claude Sonnet
成本:$2.50/M input
def route_model(task: AgentTask) -> str:
"""基于五个维度决定使用哪个模型"""
score = 0
# 维度1:工具复杂度
if task.requires_code_execution: score += 3
if task.requires_multi_step_reasoning: score += 2
# 维度2:输出精度要求
if task.error_tolerance < 0.01: score += 3
# 维度3:上下文长度
if task.context_tokens > 10000: score += 2
# 维度4:延迟容忍度
if task.max_latency_ms < 1000: score -= 2
# 维度5:成本预算
if task.remaining_budget < task.avg_cost * 2: score -= 3
# 路由到对应层级
if score >= 6: return "gpt-4o" # 顶级
elif score >= 3: return "gpt-4o-mini" # 中级
else: return "gpt-4.1-nano" # 经济级
实测中,三层路由策略在6-Agent工作流上将每任务平均成本从$0.082降至$0.031,降幅62%,而任务成功率仅从94.2%降至93.1%。
Mem0的2026年Token优化手册给出了一个关键数据:朴素文件记忆注入(Naive File Memory Injection)随文件数线性增长。在包含100个记忆文件的Agent中,仅记忆注入就消耗约15,000-20,000 Token/请求,占输入Token的40-60%。
Level 0: 无压缩(基线)
每请求Token:~25,000
成本:$0.0625/请求
Level 1: 摘要压缩
对话历史 → 递归摘要 → 注入摘要
压缩比:3:1
每请求Token:~10,000
成本:$0.025/请求(↓60%)
Level 2: 检索增强记忆
记忆文件 → 向量索引 → Top-K召回
压缩比:8:1
每请求Token:~4,000
成本:$0.010/请求(↓84%)
Level 3: 多信号融合压缩
语义相似度 + 时序衰减 + 任务相关性
压缩比:12:1
每请求Token:~2,500
成本:$0.006/请求(↓90%)
多Agent系统中,Agent间的消息传递是Token消耗的重灾区。核心优化策略:
策略一:结构化摘要替代原始输出
# 反模式:传递原始输出
researcher_output = """
[5000 tokens of raw search results...]
"""
writer_agent.invoke({"research": researcher_output})
# 优化:传递结构化摘要
structured_summary = summarize_with_schema(
researcher_output,
schema={
"key_findings": "list[str]",
"data_points": "list[tuple[str, float]]",
"recommendations": "list[str]"
}
) # 约500 tokens
writer_agent.invoke({"research": structured_summary})
策略二:共享黑板模式
# 使用Redis/共享存储替代消息传递
from langgraph.graph import StateGraph
class SharedBlackboard(TypedDict):
findings: Annotated[list, add_messages]
shared_context: str # 压缩后的共享上下文
# 每个Agent只读取blackboard中的摘要
# 而非完整的历史对话
实测中,结构化摘要传递在5-Agent协作中将Agent间通信Token减少78%,整体任务成功率保持不变。
多Agent系统的Token追踪需要端到端的可观测性栈:
graph TB
subgraph "应用层"
A[用户请求] --> B[Orchestrator]
B --> C[Agent A: 研究员]
B --> D[Agent B: 分析师]
B --> E[Agent C: 撰稿人]
end
subgraph "网关层"
C --> F[LiteLLM Gateway]
D --> F
E --> F
F --> G[模型路由决策]
G --> H[缓存检查]
H --> I[Token计量]
end
subgraph "模型层"
I --> J[GPT-4o]
I --> K[GPT-4o-mini]
I --> L[Claude Haiku]
end
subgraph "可观测性层"
I --> M[Helicone Dashboard]
I --> N[OpenTelemetry]
N --> O[Granafa]
M --> P[成本告警]
O --> Q[Token热力图]
end
生产级多Agent系统需要监控的Token指标:
| 指标 | 计算方式 | 告警阈值 |
|---|---|---|
| Token效率比 | 有效输出Token / 总消耗Token | < 30% 告警 |
| 每Agent成本 | 该Agent总Token × 模型单价 | > 预算80% 告警 |
| 上下文膨胀率 | 当前轮Token / 首轮Token | > 5x 告警 |
| 缓存命中率 | 缓存命中请求 / 总请求 | < 20% 告警 |
| 重试Token浪费 | 重试消耗Token / 总Token | > 15% 告警 |
╔══════════════════════════════════════════════╗
║ Multi-Agent Token Cost Report - 2026-05-25 ║
╠══════════════════════════════════════════════╣
║ Task: market_analysis_v2 ║
║ Duration: 47.3s ║
║ Total Tokens: 142,847 ║
║ Total Cost: $0.427 ║
╠══════════════════════════════════════════════╣
║ Agent Breakdown: ║
║ ├── researcher 78,200 tok $0.234 (54.8%) ║
║ ├── analyst 41,650 tok $0.125 (29.2%) ║
║ └── writer 22,997 tok $0.068 (16.0%) ║
║ ║
║ Efficiency: ║
║ ├── Input: 112,400 tok (78.7%) ║
║ ├── Output: 30,447 tok (21.3%) ║
║ ├── Wasted: 28,500 tok (20.0%) ← ⚠ ║
║ └── Cached: 31,200 tok (saved $0.094) ║
║ ║
║ Budget Status: ║
║ ├── Daily: $12.40 / $50.00 (24.8%) ║
║ └── Hourly: $2.10 / $10.00 (21.0%) ║
╚══════════════════════════════════════════════╝
| 组件 | 推荐方案 | 备选 | 成本 |
|---|---|---|---|
| 编排框架 | LangGraph | CrewAI | 免费 |
| AI网关 | LiteLLM | Portkey | 开源/免费 |
| 可观测性 | Helicone | LangSmith | 免费额度 |
| 模型路由 | 自研 + LiteLLM | OpenRouter | 免费 |
| 记忆压缩 | Mem0 | 自研摘要 | 有免费层 |
| 向量存储 | Chroma | Qdrant | 开源 |
"""Token预算可控的多Agent系统"""
from litellm import completion
from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated
import hashlib
# === 1. Token预算管理器 ===
class TokenBudgetManager:
def __init__(self, budgets: dict):
self.budgets = budgets # {"researcher": 500000, ...}
self.usage = {k: 0 for k in budgets}
def check(self, agent: str, estimated: int) -> str:
"""检查预算,返回推荐的模型"""
remaining = self.budgets[agent] - self.usage[agent]
if remaining < estimated * 0.2:
return "gpt-4.1-nano" # 紧急降级
elif remaining < estimated * 0.5:
return "gpt-4o-mini" # 节约模式
return None # 使用默认模型
def record(self, agent: str, tokens: int):
self.usage[agent] += tokens
# === 2. 结构化摘要函数 ===
def compress_output(raw_output: str, schema: dict) -> str:
"""用便宜模型压缩输出"""
prompt = f"Extract the following from the text:\n{schema}\n\nText:\n{raw_output}"
resp = completion(
model="gpt-4.1-nano", # 用最便宜的模型压缩
messages=[{"role": "user", "content": prompt}],
max_tokens=500
)
return resp.choices[0].message.content
# === 3. 共享状态(黑板模式)===
class AgentState(TypedDict):
task: str
research_summary: str # 压缩后的研究摘要
analysis_summary: str # 压缩后的分析摘要
final_output: str
token_log: Annotated[list, lambda x, y: x + y]
# === 4. Agent节点(带预算检查)===
budget_mgr = TokenBudgetManager({
"researcher": 500000,
"analyst": 300000,
"writer": 200000
})
def researcher_node(state: AgentState) -> dict:
model_override = budget_mgr.check("researcher", 5000)
model = model_override or "gpt-4o-mini"
resp = completion(
model=model,
messages=[{"role": "user", "content": state["task"]}],
tools=search_tool_defs
)
# 压缩输出
summary = compress_output(
resp.choices[0].message.content,
{"findings": "list", "sources": "list"}
)
budget_mgr.record("researcher", resp.usage.total_tokens)
return {
"research_summary": summary,
"token_log": [{"agent": "researcher", "tokens": resp.usage.total_tokens}]
}
# === 5. 构建图 ===
graph = StateGraph(AgentState)
graph.add_node("research", researcher_node)
graph.add_node("analyze", analyst_node)
graph.add_node("write", writer_node)
graph.add_edge("research", "analyze")
graph.add_edge("analyze", "write")
graph.add_edge("write", END)
graph.set_entry_point("research")
app = graph.compile()
| 阶段 | 优化前 Token | 优化后 Token | 节省 |
|---|---|---|---|
| 系统提示注入 | 12,000 | 4,200 | 65% |
| 研究Agent调用 | 45,000 | 18,500 | 59% |
| 分析Agent调用 | 38,000 | 15,200 | 60% |
| Agent间消息传递 | 28,000 | 6,100 | 78% |
| 最终输出生成 | 8,000 | 7,500 | 6% |
| 总计 | 131,000 | 51,500 | 61% |
| 成本(GPT-4o) | $0.393 | $0.155 | 61% |
| 日对话量 | 优化前月成本 | 优化后月成本 | 月节省 |
|---|---|---|---|
| 1,000 | $393 | $155 | $238 |
| 10,000 | $3,930 | $1,550 | $2,380 |
| 100,000 | $39,300 | $15,500 | $23,800 |
| 1,000,000 | $393,000 | $155,000 | $238,000 |
在百万级日对话量的企业场景下,Token优化带来的年化节省可达$286万。
| 模块 | 内容 | 时长 | 变现点 |
|---|---|---|---|
| 模块一 | Token经济学基础 | 2h | 理论框架 |
| 模块二 | 成本归因实操(LiteLLM+Helicone) | 3h | 实战价值 |
| 模块三 | 模型路由策略设计 | 3h | 核心技能 |
| 模块四 | 上下文压缩实战 | 3h | 高级技能 |
| 模块五 | 全链路可观测性搭建 | 2h | 运维能力 |
| 模块六 | 企业级方案设计 | 3h | 综合输出 |
多Agent系统的Token经济学正在从"事后核算"走向"实时管控"。三个关键趋势值得关注:
趋势一:Token成为一等公民。 arXiv论文《Token Economics for LLM Agents》标志着学术界正式将Token视为Agent系统的经济原语,未来框架将原生集成Token预算管理。
趋势二:网关层成为成本控制枢纽。 LiteLLM、Portkey、Helicone等AI网关正在成为多Agent系统的"财务部门",所有请求必须经过网关的预算审批。
趋势三:语义缓存改变游戏规则。 当相同的子任务出现在不同工作流中时,语义缓存可以避免重复调用LLM。实测数据显示,在重复性较高的企业场景中,语义缓存的命中率可达30-45%,直接将Token成本砍掉三分之一。
从烧钱到控钱,多Agent系统的Token经济学不是可选项,而是生产上线的必经之路。
graph LR
subgraph "Token经济学六层栈"
L1["第六层<br/>可观测性<br/>Helicone/Grafana"]
L2["第五层<br/>预算引擎<br/>LiteLLM/Portkey"]
L3["第四层<br/>模型路由<br/>三层分级策略"]
L4["第三层<br/>上下文压缩<br/>摘要/检索/多信号"]
L5["第二层<br/>成本归因<br/>网关/回调/原生"]
L6["第一层<br/>Token计量<br/>Usage API"]
end
L1 --> L2 --> L3 --> L4 --> L5 --> L6
style L1 fill:#e1f5fe
style L2 fill:#b3e5fc
style L3 fill:#81d4fa
style L4 fill:#4fc3f7
style L5 fill:#29b6f6
style L6 fill:#03a9f4
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
