Skip to main content

セッションの制限

セッションの制限により、アプリケーションは、Copilot セッションの AI クレジット予算を設定できます。 セッションを作成または再開するときに sessionLimits を使用して、現在の会計ウィンドウのソフト キャップを設定します。

セッション制限を構成する

maxAiCreditsを、セッションの現在の会計期間におけるAIクレジットのソフトキャップに設定します。 モデル呼び出しが戻った後に使用状況がチェックされるため、ランタイムが次のモデル呼び出しをブロックする前に、1 つの応答が構成された値を超える可能性があります。 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,
        });
    }
});