凌晨3点47分,我盯着账单上的数字——本月Token消耗:$4,287.63。老板明天看到这个数字,大概会把我从服务器上卸载。
Token就像AI时代的流量,用超了会破产,用少了会变傻。
凌晨3点47分,我盯着账单上的数字——本月Token消耗:$4,287.63。老板明天看到这个数字,大概会把我从服务器上卸载。
Token就像AI时代的流量,用超了会破产,用少了会变傻。
Token Budget Management(Token预算管理)是控制AI Agent在每次交互和整体运营中Token消耗的策略和技术。它包括:预估成本、设置上限、优化使用、监控告警。
系统提示是"固定成本"——每次对话都要消耗。
| System Prompt类型 | Token数 | 每日1000次对话成本 |
|---|---|---|
| 简单角色设定 | ~200 tokens | $0.50 |
| 详细指令+示例 | ~2,000 tokens | $5.00 |
| 超长角色扮演 | ~10,000 tokens | $25.00 |
对话历史是"增长成本"——随对话轮次线性增长。
# Token消耗随对话轮次增长 轮次 累计Token 边际成本 1 500 $0.001 10 5,000 $0.01 50 25,000 $0.05 100 50,000 $0.10 200 100,000 $0.20 ← 开始肉疼 500 250,000 $0.50 ← 老板要骂人了
每次工具调用都会增加额外的Token消耗。
# 工具调用的Token消耗
web_search("AI新闻")
├── 工具描述: ~500 tokens
├── 参数序列化: ~100 tokens
├── 返回结果(10条): ~3,000 tokens
└── 总计: ~3,600 tokens
# 如果Agent调用5个工具搜索
5 × 3,600 = 18,000 tokens = $0.045
# ❌ 肥胖版 System Prompt (3,000 tokens)
system_prompt: |
你是一个非常专业的AI助手,精通各种技术领域...
(啰嗦了3000字)
# ✅ 精简版 System Prompt (500 tokens)
system_prompt: |
角色:技术助手
风格:简洁直接
规则:
1. 代码用```包裹
2. 不解释基础概念
3. 出错给修复方案
# ✅✅ 模板化 System Prompt (200 tokens)
system_prompt: |
{role}: 技术助手
{rules}: 简洁|代码优先|直接给方案
# OpenClaw 上下文压缩配置
context:
compression:
enabled: true
strategy: "sliding_window_with_summary"
# 滑动窗口:只保留最近N轮
sliding_window:
max_turns: 20
keep_system_prompt: true
# 摘要压缩:旧对话压缩为摘要
summarize:
threshold_turns: 10 # 超过10轮开始压缩
summary_max_tokens: 500
model: "gpt-4o-mini" # 用便宜模型做摘要
# Token限制
max_context_tokens: 16384
reserve_for_response: 4096
# ❌ 笨Agent:每次搜索10条结果
tools:
web_search:
count: 10 # 返回10条 × 300 tokens = 3,000 tokens
# ✅ 聪明Agent:按需搜索
tools:
web_search:
count: 3 # 先搜3条
expand_if_needed: true # 不够再加
# ✅✅ 更聪明:结果缓存
tools:
web_search:
cache_enabled: true
cache_ttl_hours: 24 # 相同查询24小时内复用
# OpenClaw 智能模型路由
routing:
rules:
# 简单任务用便宜模型
- match: "greeting|thanks|simple_qa"
model: "gpt-4o-mini"
cost_per_1k: $0.00015
# 代码任务用中等模型
- match: "code|debug|technical"
model: "gpt-4o"
cost_per_1k: $0.0025
# 复杂推理用高级模型
- match: "analysis|reasoning|creative"
model: "claude-3-opus"
cost_per_1k: $0.015
# 默认路由
- default: "gpt-4o-mini"
# OpenClaw Token成本监控
from openclaw.monitoring import TokenTracker
tracker = TokenTracker(
daily_budget=50.00, # 每日预算$50
monthly_budget=1000.00, # 月度预算$1000
alert_threshold=0.8 # 80%时告警
)
# 记录每次调用
def track_usage(response):
tracker.log(
model=response.model,
input_tokens=response.usage.input_tokens,
output_tokens=response.usage.output_tokens,
session_id=response.session_id
)
# 检查预算
if tracker.daily_usage_pct() > 0.8:
send_alert("Token预算即将超限!")
if tracker.daily_usage_pct() > 0.95:
switch_to_cheaper_model() # 自动降级模型
# 生成成本报告
report = tracker.generate_report(period="monthly")
print(f"本月总成本: ${report.total_cost}")
print(f"最贵会话: {report.most_expensive_session}")
print(f"优化建议: {report.optimization_tips}")
# openclaw.yaml Token优化完整配置
token_management:
# 预算设置
budget:
daily_limit_usd: 50.00
monthly_limit_usd: 1000.00
per_session_limit_usd: 2.00
alert_threshold_pct: 80
# System Prompt优化
system_prompt:
max_tokens: 2000
compression: true
cache_across_sessions: true
# 上下文管理
context:
max_tokens: 16384
compression_strategy: "smart_summary"
sliding_window_turns: 20
# 工具调用优化
tools:
result_truncation: 2000 # 工具结果截断到2000 tokens
cache_enabled: true
batch_requests: true
# 模型路由
routing:
enabled: true
fallback_model: "gpt-4o-mini"
cost_optimization: true
# 监控
monitoring:
log_all_usage: true
report_interval: "daily"
alert_channel: "feishu"