Skip to main content

会话限制

会话限制允许应用程序为Copilot会话设置 AI 信用额度预算。 在创建或恢复会话时使用 sessionLimits ,为当前会计窗口设置软上限。

在本文中

配置会话限制

maxAiCredits 设为该会话当前结算窗口的 AI 点数软上限。 模型调用返回后会检查使用情况,因此在运行时阻止下一个模型调用之前,一个响应可以超过配置的值。 SDK 在创建或恢复会话时将此值转发到 Copilot CLI。

代码语言 navigation

TypeScript
const session = await client.createSession({
    onPermissionRequest: approveAll,
    sessionLimits: {
        maxAiCredits: 30,
    },
});

const resumed = await client.resumeSession(session.sessionId, {
    onPermissionRequest: approveAll,
    sessionLimits: {
        maxAiCredits: 30,
    },
});

观察预算事件

应用程序可以订阅会话事件,以便在软上限发生变化或会话进入预算耗尽流程时更新 UI。

事件类型发出时重要字段
session.session_limits_changed活动会话限制已更改。 值 null``sessionLimits 表示没有活动限制。sessionLimits.maxAiCredits?
session.usage_checkpoint运行时会记录持久化的累计用量,以用于恢复和计费。
totalNanoAiutotalPremiumRequests?
session_limits_exhausted.requested会话已进入预算耗尽流程,需要用户先做出决定才能继续。
requestIdmaxAiCreditsusedAiCredits
session_limits_exhausted.completed已修复达到限制时的提示问题。
requestIdresponse.actionresponse.additionalAiCredits?response.maxAiCredits?

请使用适用于您所用 SDK 语言的生成事件类型。 例如,TypeScript 通过 event.type 缩小类型范围:

session.on((event) => {
    if (event.type === "session_limits_exhausted.requested") {
        showBudgetDialog({
            requestId: event.data.requestId,
            maxAiCredits: event.data.maxAiCredits,
            usedAiCredits: event.data.usedAiCredits,
        });
    }
});