会话预热

适用于 OpenCode V2;核验日期:2026-11-12。

Warming 在暂时停止输入期间发送真实模型请求,以维持上游提示缓存或短期状态。默认关闭,会消耗额度并可能计费,不是免费后台优化。

json
1{
2  "$schema": "https://opencode.ai/config.json",
3  "warming": true
4}

默认在 cache.ttl 的 90% 时预热;模型没有 TTL 时每四分钟一次,窗口为最后一次普通请求后的三十分钟。只有主会话参与,子代理不预热。

# 调整时长#

json
1{
2  "warming": {
3    "interval": "5 minutes",
4    "duration": "30 minutes"
5  }
6}

interval 与 duration 必须是大于零的有限时长,显式 interval 要小于 duration。auto 间隔长于预热窗口时跳过,因为缓存寿命已覆盖该窗口。提供商或模型的 settings.cache.warming 可以覆盖全局设置,模型优先级更高。

# 请求怎样运行#

预热使用当前模型、代理、指令及会话上下文,追加临时保活提示并丢弃响应,不添加历史,不派发本地工具调用,也不进入工具循环。它仍是向提供商发送上下文,因此同样受模型数据条款约束。

普通模型请求或压缩会重置计时,预热自身不会延长活动窗口。已有模型请求执行时不会同时预热;失败只记日志,不破坏会话。发现缓存未命中时会停止,直到下一次普通请求。

# 何时值得启用#

先比较实际缓存命中、响应时间和额外费用。短间隔或长窗口会增加请求量,还可能占用限流额度。默认无 TTL 的模型在连续三十分钟窗口内最多尝试七次。

json
{ "warming": false }

不需要时显式关闭,并检查提供商或模型是否另有覆盖设置。

# 官方来源#