Skip to content
FunCoding

Search

Search docs, Skills and MCP

恢复模型、Auto tier 与传输

设置 Auto 路由偏好,区分 pending 与生效状态,并处理 WebSocket Responses 恢复问题。

This page has not been translated into English yet. The original Chinese version is shown below.

恢复会话可以更换模型与 reasoning effort,也可以调整 CAPI Auto 路由偏好和 Responses 传输。恢复历史与更改未来模型调用配置是两个不同动作。

Auto tier

model: "auto" 时,capi.autoTier 可取 efficiency、balance、intelligence 或 fast。它用于 V2 Auto 路由,V1 Auto 请求不受影响。

fast 是 integrator-only 延迟预设,不是第一方 Copilot 产品的通用偏好。SDK 不决定资格,不把它作为默认,也不在旧 runtime 不支持时自动回退;错误按 runtime 返回。

创建与恢复的持久化规则

创建时省略 tier 使用 runtime 默认路由。冷恢复会恢复保存的 tier,显式传入可覆盖本次激活的偏好;旧会话没有保存 tier 时继续默认行为。

恢复已经驻留在 runtime 的会话时,省略值保留当前偏好,相同值无操作,不同值请求安全切换,不能改变正在执行的 turn。session.start 和 session.resume 的可选 data.autoTier 可展示所选偏好。

活动会话切换

const result = await session.setAutoTier("intelligence");
if (result.status === "pending") {
    // 请求已接受,尚未生效。
}

runtime 等后续使用 auto 的用户轮次成功获得可用模型后才提交变化。pending 不表示生效,新的尚未被轮次领取的请求会替代旧请求。

生效时观察 session.model_change;失败时观察临时事件 session.auto_tier_switch_failed,reason 为 policy_rejected、request_failed、setup_failed 或 unsupported,原偏好保留。该失败事件不保存,也不在恢复时重放。

通过 model.getCurrent RPC 可查看已提交的 autoTier、尚未领取的 pendingAutoTier 和正在激活的 activatingAutoTier。

省略与重置不同

TypeScript session.setAutoTier(null) 回到提供方默认。也可用 setModel("auto", { autoTier: "balance" }) 同时选择 auto 和偏好,autoTier: null 表示重置;非 auto 模型不能携带此选项。

Python 使用 None、Rust 使用其重置变体;Go、.NET、Java 另有 reset flag 区分“未设置”与“重置”。省略始终表示保留当前偏好,不应全部序列化成 null。

WebSocket Responses

capi.enableWebSocketResponses 默认 true;模型声明 ws:/responses endpoint 时使用 WebSocket。代理环境连不上,或恢复时报 400 input item ID does not belong to this connection,可在恢复调用中切到 HTTP:

const session = await client.resumeSession("user-123-task-456", {
    capi: { enableWebSocketResponses: false },
});

该 false 设置等效于禁用 WebSocket 的 COPILOT_CLI_DISABLE_WEBSOCKET_RESPONSES 环境开关,二者布尔方向相反。它控制传输方式,不是更换模型提供方。