发帖前必读
要解决的问题
目前未知模型的上下文窗口通常按 200K 处理,CLAUDE_CODE_AUTO_COMPACT_WINDOW 又只能全局设置,无法为同一 Provider 下的不同模型分别配置。
第三方 Provider 完成模型映射后,实际模型信息没有参与中央上下文预算,可能导致:
- 状态栏显示的上下文占用不准确。
- 自动压缩触发过早或过晚。
- 小窗口模型在压缩前就被 Provider 拒绝。
[1m] 等本地设置与第三方模型实际能力不一致。
- OpenAI、Gemini、Grok 的超窗错误无法稳定触发反应式压缩。
相关代码主要位于:
src/utils/context.ts
src/services/compact/autoCompact.ts
src/query.ts
src/utils/model/modelCapabilities.ts
- 各第三方 Provider 的 model mapping 和 API adapter
建议方案
增加以 Provider + 实际模型 ID 为键的模型能力配置,支持分别设置上下文窗口和最大输出,并让状态栏、自动压缩及超窗恢复统一使用该配置。
考虑过的替代方案
继续使用全局 CLAUDE_CODE_AUTO_COMPACT_WINDOW,但它无法支持同一 Provider 下窗口不同的多个模型。
为各 Provider 增加单独的环境变量,但它仍然无法区分同一 Provider 下的不同模型。
维护第三方模型硬编码表,但它无法覆盖本地模型、自定义端点和用户自定义部署。
补充信息
建议同时将 OpenAI、Gemini 和 Grok 常见的上下文超限错误统一转换为内部的 Prompt is too long,作为配置不准确时的反应式压缩兜底。
该功能不需要为每个 Provider 实现独立的压缩算法,只需要让现有统一压缩逻辑获得准确的模型上下文能力。
发帖前必读
要解决的问题
目前未知模型的上下文窗口通常按 200K 处理,
CLAUDE_CODE_AUTO_COMPACT_WINDOW又只能全局设置,无法为同一 Provider 下的不同模型分别配置。第三方 Provider 完成模型映射后,实际模型信息没有参与中央上下文预算,可能导致:
[1m]等本地设置与第三方模型实际能力不一致。相关代码主要位于:
src/utils/context.tssrc/services/compact/autoCompact.tssrc/query.tssrc/utils/model/modelCapabilities.ts建议方案
增加以
Provider + 实际模型 ID为键的模型能力配置,支持分别设置上下文窗口和最大输出,并让状态栏、自动压缩及超窗恢复统一使用该配置。考虑过的替代方案
继续使用全局
CLAUDE_CODE_AUTO_COMPACT_WINDOW,但它无法支持同一 Provider 下窗口不同的多个模型。为各 Provider 增加单独的环境变量,但它仍然无法区分同一 Provider 下的不同模型。
维护第三方模型硬编码表,但它无法覆盖本地模型、自定义端点和用户自定义部署。
补充信息
建议同时将 OpenAI、Gemini 和 Grok 常见的上下文超限错误统一转换为内部的
Prompt is too long,作为配置不准确时的反应式压缩兜底。该功能不需要为每个 Provider 实现独立的压缩算法,只需要让现有统一压缩逻辑获得准确的模型上下文能力。