💰 Token优化

"凌晨3点27分,我看着账单上的数字,终于理解了什么叫'知识就是金钱'——原来每个Token都是钱啊。"

📑 目录

定义与核心概念 Token计算 优化策略 OpenClaw实战 代码示例 成本对比

📚 定义与核心概念

Token优化(Token Optimization)是指通过各种技术手段减少LLM调用中的Token消耗,从而降低成本、提高响应速度的技术。

🎭 王家卫式理解

Token就像时间的刻度。每一次API调用,都在消耗你账户里的"时间"。优化Token,就是让你的Agent在有限的"时间"里,做更多的事情。

就像《重庆森林》里说的:"每天你都有机会跟别人擦身而过,你也许对他一无所知,不过也许有一天他会变成你的朋友或者是知己。"Token也是这样,每一个都可能是成本,也可能是价值。

Token基础

概念说明示例
Token文本的基本单位"Hello world" = 2 tokens
输入Token发送给模型的TokenPrompt + Context
输出Token模型生成的TokenResponse
上下文窗口模型能处理的最大Token数GPT-4: 128K tokens

🔢 Token计算

不同模型的Token计算方式略有不同:

# OpenAI Token计算 import tiktoken def count_tokens(text, model="gpt-4"): encoding = tiktoken.encoding_for_model(model) return len(encoding.encode(text)) # 示例 text = "你好,世界!" tokens = count_tokens(text) print(f"'{text}' = {tokens} tokens") # Claude Token计算(近似) def count_tokens_claude(text): # Claude使用不同的分词器 # 近似:1个中文字符 ≈ 2 tokens chinese_chars = len([c for c in text if '\u4e00' <= c <= '\u9fff']) english_chars = len(text) - chinese_chars return chinese_chars * 2 + english_chars // 4

🎯 优化策略

1. 提示词压缩

减少Prompt中的冗余信息:

# ❌ 冗余写法 prompt = """ 请帮我分析这段代码,并且告诉我这段代码有什么问题, 然后给出修复建议,最后总结一下。 """ # ✅ 优化写法 prompt = "分析代码,指出问题,给出修复建议。"

2. 上下文裁剪

只保留相关的上下文信息:

def trim_context(messages, max_tokens=4000): """裁剪上下文到指定Token数""" total_tokens = 0 trimmed = [] # 从最新的消息开始保留 for msg in reversed(messages): msg_tokens = count_tokens(msg['content']) if total_tokens + msg_tokens > max_tokens: break trimmed.insert(0, msg) total_tokens += msg_tokens return trimmed

3. 缓存策略

缓存重复的查询结果:

from functools import lru_cache import hashlib @lru_cache(maxsize=1000) def cached_llm_call(prompt_hash): """缓存LLM调用结果""" # 实际的LLM调用 return call_llm(prompt_hash) def get_cached_response(prompt): prompt_hash = hashlib.md5(prompt.encode()).hexdigest() return cached_llm_call(prompt_hash)

4. 批处理

将多个请求合并为一次调用:

# ❌ 多次调用 for item in items: result = llm_call(f"分析: {item}") # ✅ 批处理调用 batch_prompt = "分析以下项目:\n" + "\n".join( f"{i+1}. {item}" for i, item in enumerate(items) ) results = llm_call(batch_prompt)

🚀 OpenClaw实战

OpenClaw内置了多种Token优化机制:

OpenClaw Token管理

# openclaw.config.js - Token优化配置 module.exports = { tokenOptimization: { // 上下文压缩 contextCompression: { enabled: true, strategy: 'smart', // 'smart' | 'sliding' | 'summary' maxTokens: 8000 }, // 缓存 cache: { enabled: true, ttl: 3600, // 1小时 maxSize: 1000 }, // 模型路由 modelRouting: { simple: 'gpt-3.5-turbo', complex: 'gpt-4', code: 'claude-3-opus' }, // Token预算 budget: { perSession: 100000, perDay: 1000000, alertThreshold: 0.8 } } }

💰 成本对比

GPT-4

$30

每百万输入Token

GPT-3.5

$0.5

每百万输入Token

Claude 3

$15

每百万输入Token

💡 优化收益

通过Token优化,通常可以减少30-60%的成本。就像你学会了做饭,比点外卖省钱多了。

📚 相关推荐

Anthropic Academy
Agent Evaluation Metrics Explained
Llm Routing Explained