token-budget.mdx 2.0 KB

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