| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- ---
- 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% | 强制压缩或终止当前轮次 |
|