4.6 令牌预算与上下文动态管理

在有限的上下文窗口内运行长时任务,需要对令牌使用进行精细管理。本节介绍令牌预算的组成、动态管理策略,以及三级预算控制体系。

4.6.1 令牌预算的关键概念

在 LLM 智能体系统中,每个 API 调用都有令牌成本和延迟成本。在有限的上下文窗口(如 Claude 的 200k 令牌)内,需要精细的令牌预算管理,确保:

  1. 不超过上下文限制:防止 API 调用失败

  2. 保持可用余额:为推理输出预留空间

  3. 最大化有效上下文:在有限令牌内承载最多有用信息

  4. 支持长对话:通过动态压缩和历史管理支持跨越多轮的对话

令牌预算分配结构:

图 4-6:令牌预算分配图

令牌预算的组成

令牌预算的详细构成情况如下所示:

预算项目
分配
说明

总令牌预算

200,000

Claude Sonnet

系统提示词

~500

系统级指令

消息历史

~50,000

上下文消息

工具 Schema

~5,000

工具定义

用户输入

~2,000

当前查询

可用预留

~142,500

总计

  推理预留

100,000

思考过程

  实际可用

~42,500

可用输出空间

令牌计数的准确性

使用令牌计数器精确追踪令牌使用情况:

4.6.2 令牌预算管理策略

1. 前向估计

在发送请求前估计可能的令牌消耗:

2. 自动压缩

当令牌使用接近阈值时,自动压缩历史:

3. 历史片段化

选择性地移除消息,保留最重要的部分:

4.6.3 Claude Code 的 200k 阈值警告

Claude Code 在构建消息时采用分层的令牌预算管理:

4.6.4 OpenClaw 的 70% 上下文触发

OpenClaw 采用更激进的提前压缩策略:

4.6.5 三级预算控制体系

生产级系统仅靠单次请求的令牌预算管理远远不够。成熟的 Harness 需要建立 三级预算控制体系,从单次调用到全局账期逐层约束:

控制层级
控制粒度
典型阈值
超限策略

Per-Request

单次 API 调用

4k-100k output tokens

截断输出、降级模型

Per-Task

一个完整任务(可能包含多轮循环)

50-200 次 API 调用 / 1M tokens

强制总结、终止循环

Per-Day/Month

账期级全局预算

$50/天、$1000/月

排队、降级、拒绝服务

三级预算控制与前面介绍的多模型路由(详见 10.3.4 节)协同使用效果更佳:当账期预算紧张时,路由器可以自动将更多请求降级到低成本模型,在不中断服务的前提下控制支出。

4.6.6 本节小结

令牌预算管理是长时智能体任务的关键:

  1. 前向估计 在发送请求前预估令牌使用,防止超限

  2. 自动压缩 在令牌使用接近阈值时触发,保留最重要的信息

  3. 历史片段化 选择性保留消息,平衡信息完整性与令牌成本

  4. Claude Code 的 200k 阈值警告 提前感知预算压力,主动调整策略

  5. OpenClaw 的 70% 触发 更激进地进行记忆整合,维持较低的上下文使用

  6. 三级预算控制 从单次请求到账期级逐层约束,防止成本失控

这些策略相互配合,使得智能体能够在有限的上下文窗口内处理长时任务,同时将成本控制在可预测的范围内。

最后更新于