56 lines
2.0 KiB
Plaintext
56 lines
2.0 KiB
Plaintext
---
|
||
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% | 强制压缩或终止当前轮次 |
|