题目
如何为系统指令、历史消息、工具定义、检索结果和输出分配 Token 预算?
答案
先确认模型上下文上限以及输入、输出预算的计算方式,再为输出和协议开销留出空间,剩余部分才分配给输入。不要把上下文塞满后才发现无法生成答案。 优先保留稳定指令、当前目标、关键约束和完整的未结束调用记录。历史消息保留最近必要部分,旧内容压缩;工具只加载相关定义;检索证据按相关性和信息增益筛选。 可按任务动态分配:代码修改需要更多源码,知识问答需要更多证据,短信息抽取则不必保留大量历史。任何固定比例都只能作为起点。 ![上下文预算,先留输出再分输入](https://cs-wiki.oss-cn-shanghai.aliyuncs.com/question/agent-development/extra-token-budget-7cd8c6229ff3e3c1.png) 组装后用对应 Tokenizer 或服务提供的计数能力再检查一次,并留少量余量。超预算时按明确优先级缩减,不要机械截断末尾,尤其不能截断参数 JSON、工具结果配对或关键业务限制。