Update avaliable. Click RELOAD to update.
📱 安装应用到主屏幕,获得更好体验
目录

AI 智能体太烧钱?这 4 个技巧让 Token 成本直降 90%

一个让人心惊的成本数字

你的第一个智能体可能只用了 500 token 的系统提示词和两个工具,但很快这些数字就会膨胀。Anthropic 之前泄露的 Claude 系统提示词大约 24,000 token,而 OpenClaw 用户曾报告向 Gemini 3.1 Pro 发送了超过 150,000 输入 token,只换来 29 个输出 token。

算笔账:一个未优化的智能体每天运行 100 条消息,每条 166K 输入 token,在 Gemini 3.1 Pro 上一个月大约 996 美元,在 Claude Opus 4.6 上更接近 2,490 美元

但有一些技巧可以把成本压到 50-100 美元/月。本文覆盖四个方向的降本设计原则,包括 Prompt Caching、工具延迟加载、模型路由和上下文清洁,每个策略都附带交互式计算器的可视化参考。

成本节省计算器示例

一、复用 Token:Prompt Caching 与 Semantic Caching

LLM 的成本不仅来自调用频率太高,还来自反复为处理相同的 Token 买单。本节覆盖两种完全不同的缓存策略:K/V 缓存(底层的 Prompt Caching 机制)和语义缓存。

K/V Caching 与 Prefix Caching

在模型生成任何内容之前,它必须先处理提示词。提示词先被 token 化,然后转成向量,在每个注意力层中被投影为 K/V 张量。推理引擎在生成过程中会缓存这些张量——但关键在于:当响应结束后,可以不丢弃这个缓存

K/V 缓存处理流程图解

下次请求进来时,检查提示词的相同部分是否已有缓存张量,如果有就直接加载,跳过重新处理。经济意义:假设处理 2,000 token 需要 1 秒,你的系统提示词是 10,000 token——每次 LLM 调用省 5 秒

关键限制:缓存匹配要求输入完全一致。多一个空格、重新排序的工具定义、放错位置的时间戳——都会导致缓存失效。此外,存储 K/V 张量不免费,大多数提供商的 TTL 窗口约为 5-10 分钟。

自托管:vLLM 前缀缓存

如果你自托管开源模型,使用 vLLM 的 --enable-prefix-caching 标志启用缓存。缓存层将提示词按块哈希,存储 K/V 张量。相关参数:

其他方案:SGLang + RadixAttention、LMCache。

API 提供商:各家的规则

提供商缓存机制节省幅度
OpenAI自动启用(≥1,024 token),精确前缀匹配,前 256 token 用于路由缓存输入最多 90% off
Anthropic需手动 cache-control 参数,TTL 5-10 分钟(可延长至 1 小时,但 2 倍存储费)缓存输入有折扣,但要付存储费

Semantic Caching:按「意思」匹配

与 Prompt Caching 不同,Semantic Caching 不是匹配精确 token,而是匹配语义相似性

语义缓存流程示意

流程:

  1. 将用户输入转为 embedding 向量
  2. 和之前缓存的请求向量比较相似度
  3. 如果足够接近(如余弦相似度 > 0.95),直接返回缓存的响应

适用场景:用户问题高度重复的任务(如客服 FAQ、内容审核、数据分类)。 不适用:所有查询都需要精确不同答案的情况。语义缓存会牺牲一定的「新鲜度」。

二、最小化固定开销:工具定义与记忆块

每次 LLM 调用都会带上系统提示词和工具定义,这部分 token 是每次都要付的固定成本。如果每个智能体有 30 个工具、每个工具定义 500 token,那就是 15,000 token 的固定开销

Lazy-Load 工具

思路很简单:不是所有工具在所有场景下都有用

工具延迟加载策略

将 30 工具的智能体按功能域分组:

─ 核心工具集(始终加载)
  ├─ read_file, write_file, search(~1,000 token)
  └─ terminal, web_search(~800 token)

─ 按需加载的工具集
  ├─ 代码审查工具集(仅需要时加载)
  ├─ 数据库操作工具集(仅需要时加载)
  └─ 浏览器自动化工具集(仅需要时加载)

通过路由层智能判断需要哪些工具集,在请求到达编码智能体之前动态组合。这样每次调用只带必要工具,固定 token 开销从 15K 降至 ~2K。

记忆快照(Memory Snapshots)

不要每次都把全部历史记忆塞进上下文。只注入当前任务相关的记忆快照。可以基于时间窗口(只看最近 N 轮对话)或基于语义检索(仅注入与当前问题向量相似的历史片段)。

三、模型路由与级联:用小模型做简单事

最直观的降本方式:让复杂问题走大模型,简单问题走小模型

路由策略

用户请求 → 分类器(小模型)→
  ├─ 简单任务(分类、提取、格式化)→ Gemini Flash / GPT-4o Mini
  ├─ 中等任务(推理、分析)→ GPT-4o / Claude Sonnet
  └─ 复杂任务(代码生成、深度推理)→ Claude Opus / o3

级联(Cascading)

级联更激进:先试最便宜的模型,如果置信度不够再升级

def cascade(query, max_depth=3):
    models = ["gemini-flash", "sonnet", "opus"]
    for i, model in enumerate(models):
        result = call_model(model, query)
        if i == max_depth - 1:
            return result
        if confidence_score(result) > 0.9:
            return result
        # 置信度不够,自动升级

做对的事

路由和级联节省显著但引入新风险:

建议:从简单路由开始(匹配关键词到对应模型),逐步过渡到基于 embedding 的语义路由。

四、保持上下文清洁:Compaction 与细粒度会话管理

脏乱的上下文不仅让模型表现变差,还会浪费大量 token

主动 Compaction

Claude Agent SDK 中的 Compaction 功能:当上下文窗口接近满时,自动将之前的对话压缩为摘要。但摘要会丢失细节——所以需要将 Compaction 与外部文件系统结合(详见 Harness Engineering 方案)。

分步会话策略

不要在一个会话里让智能体完成所有事。拆分为:

  1. 分析会话:接收需求 → 输出分析文档
  2. 规划会话:分析文档 → 输出执行计划
  3. 执行会话:执行计划 → 输出结果

每个会话只带前一阶段的输出摘要,而不是完整对话历史。

实战:一个智能体的优化前后对比

优化项优化前优化后
系统提示词24,000 token8,000 token(启用缓存)
工具定义15,000 token(30个工具)3,000 token(按需加载)
历史上下文每次带全部历史 ~100K仅带摘要 ~5K
模型全部用 Opus80% Flash + 20% Opus(路由)
月成本~$2,490~$80

权衡与风险

每个节省策略都带来权衡:

策略节省风险
Prompt Caching⭐⭐⭐缓存管理复杂度
Semantic Caching⭐⭐返回过期结果
Lazy-Load 工具⭐⭐首次调用延迟增加
模型路由⭐⭐⭐⭐小模型误判风险
级联⭐⭐⭐⭐⭐延迟增加
Compaction⭐⭐细节丢失

没有银弹。最佳方案是按实际用量组合使用——先用 Prompt Caching 这个最快见效的策略,再逐步引入其他优化。


原文参考: Agentic AI: How to Save on Tokens by Ilia Silfverskiold

版权所有,本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可。转载请注明出处:https://www.wangjun.dev//2026/05/agentic-ai-how-to-save-on-tokens/