claude-code/docs/context/token-budget.mdx

56 lines
2.0 KiB
Plaintext
Raw Normal View History

2026-04-01 09:16:41 +08:00
---
title: "Token 预算管理"
description: "精打细算每一个 token——AI 的'注意力'是有限资源"
---
{/* 本章目标:解释 token 预算管理的思路 */}
## Token 是什么
简单理解token 约等于一个英文单词或半个中文字。AI 处理的所有输入和输出都按 token 计费。
| 类型 | 说明 | 谁付费 |
|------|------|--------|
| 输入 token | 发给 AI 的所有内容System Prompt + 对话历史 + 工具结果) | 用户 |
| 输出 token | AI 生成的回复和工具调用 | 用户 |
| 缓存 token | 重复发送的内容如果命中缓存,价格更低 | 部分用户 |
## 预算控制的三个层面
<CardGroup cols={3}>
<Card title="单次请求" icon="1">
每次 API 调用的最大输入/输出 token
</Card>
<Card title="单轮对话" icon="arrows-rotate">
一个 Agentic Loop 内的累计 token 消耗
</Card>
<Card title="整个会话" icon="clock">
全部对话轮次的累计花费(美元)
</Card>
</CardGroup>
## 工具输出的预算控制
工具返回的内容可能非常长(一个大文件、一段长日志),直接全部塞给 AI 会浪费大量 token。系统对此有专门的控制
- **结果截断**:超过长度限制的工具输出自动截断
- **结果替换**:已经被 AI"消化"过的旧工具结果,可以被替换为简短的摘要
- **按需读取**大文件不一次性读完AI 可以指定读取范围
## 缓存的经济学
System Prompt 每次都要发送,但大部分内容不变。缓存机制让这部分"免费"(或大幅降价):
- 首次发送:全价
- 后续请求命中缓存:约 1/10 的价格
- 这就是为什么 System Prompt 的结构被精心设计——不变的部分放前面,变化的部分放后面
## token 警告与自动压缩
| token 使用率 | 系统行为 |
|-------------|---------|
| < 70% | 正常运行 |
| 70% ~ 90% | 显示警告,提示用户可以手动压缩 |
| > 90% | 自动触发压缩 |
| 接近 100% | 强制压缩或终止当前轮次 |