会话预热
适用于 OpenCode V2;核验日期:2026-11-12。
Warming 在暂时停止输入期间发送真实模型请求,以维持上游提示缓存或短期状态。默认关闭,会消耗额度并可能计费,不是免费后台优化。
json1{ 2 "$schema": "https://opencode.ai/config.json", 3 "warming": true 4}
默认在 cache.ttl 的 90% 时预热;模型没有 TTL 时每四分钟一次,窗口为最后一次普通请求后的三十分钟。只有主会话参与,子代理不预热。
# 调整时长#
json1{ 2 "warming": { 3 "interval": "5 minutes", 4 "duration": "30 minutes" 5 } 6}
interval 与 duration 必须是大于零的有限时长,显式 interval 要小于 duration。auto 间隔长于预热窗口时跳过,因为缓存寿命已覆盖该窗口。提供商或模型的 settings.cache.warming 可以覆盖全局设置,模型优先级更高。
# 请求怎样运行#
预热使用当前模型、代理、指令及会话上下文,追加临时保活提示并丢弃响应,不添加历史,不派发本地工具调用,也不进入工具循环。它仍是向提供商发送上下文,因此同样受模型数据条款约束。
普通模型请求或压缩会重置计时,预热自身不会延长活动窗口。已有模型请求执行时不会同时预热;失败只记日志,不破坏会话。发现缓存未命中时会停止,直到下一次普通请求。
# 何时值得启用#
先比较实际缓存命中、响应时间和额外费用。短间隔或长窗口会增加请求量,还可能占用限流额度。默认无 TTL 的模型在连续三十分钟窗口内最多尝试七次。
json{ "warming": false }
不需要时显式关闭,并检查提供商或模型是否另有覆盖设置。