{"meta":{"title":"Sitzungsgrenzwerte","intro":"Sitzungslimits ermöglichen es einer Anwendung, ein KI-Guthabenbudget für eine Copilot Sitzung festzulegen. Verwenden Sie sessionLimits beim Erstellen oder Fortsetzen einer Sitzung, um eine weiche Obergrenze für den aktuellen Abrechnungszeitraum festzulegen.","product":"GitHub Copilot","breadcrumbs":[{"href":"/de/copilot","title":"GitHub Copilot"},{"href":"/de/copilot/how-tos","title":"Vorgehensweisen"},{"href":"/de/copilot/how-tos/copilot-sdk","title":"Copilot SDK"},{"href":"/de/copilot/how-tos/copilot-sdk/features","title":"Funktionen"},{"href":"/de/copilot/how-tos/copilot-sdk/features/session-limits","title":"Sitzungsgrenzwerte"}],"documentType":"article"},"body":"# Sitzungsgrenzwerte\n\nSitzungslimits ermöglichen es einer Anwendung, ein KI-Guthabenbudget für eine Copilot Sitzung festzulegen. Verwenden Sie sessionLimits beim Erstellen oder Fortsetzen einer Sitzung, um eine weiche Obergrenze für den aktuellen Abrechnungszeitraum festzulegen.\n\n<!-- markdownlint-disable GHD046 GHD005 -->\n<!-- Suppressed: GHD046 (outdated release terminology), GHD005 (hardcoded data variable) -->\n\n## Konfigurieren eines Sitzungslimits\n\nSetzt `maxAiCredits` auf den Softcap für AI Credits für den aktuellen Abrechnungszeitraum der Sitzung. Die Verwendung wird nach der Rückgabe von Modellaufrufen überprüft, sodass eine Antwort den konfigurierten Wert überschreiten kann, bevor die Laufzeit den nächsten Modellaufruf blockiert. Das SDK leitet diesen Wert beim Erstellen oder Fortsetzen der Sitzung an die Copilot CLI weiter.\n\n<div class=\"ghd-codetabs\">\n<div class=\"ghd-codetab\" data-lang=\"typescript\" data-label=\"TypeScript\"><div class=\"ghd-codetab-fallback-label\" role=\"heading\" aria-level=\"3\">TypeScript</div>\n\n<!-- docs-validate: skip -->\n\n```typescript\nconst session = await client.createSession({\n    onPermissionRequest: approveAll,\n    sessionLimits: {\n        maxAiCredits: 30,\n    },\n});\n\nconst resumed = await client.resumeSession(session.sessionId, {\n    onPermissionRequest: approveAll,\n    sessionLimits: {\n        maxAiCredits: 30,\n    },\n});\n```\n\n</div>\n\n<div class=\"ghd-codetab\" data-lang=\"python\" data-label=\"Python\"><div class=\"ghd-codetab-fallback-label\" role=\"heading\" aria-level=\"3\">Python</div>\n\n<!-- docs-validate: skip -->\n\n```python\nsession = await client.create_session(\n    on_permission_request=PermissionHandler.approve_all,\n    session_limits={\n        \"max_ai_credits\": 30,\n    },\n)\n\nresumed = await client.resume_session(\n    session.session_id,\n    on_permission_request=PermissionHandler.approve_all,\n    session_limits={\n        \"max_ai_credits\": 30,\n    },\n)\n```\n\n</div>\n\n<div class=\"ghd-codetab\" data-lang=\"go\" data-label=\"Go\"><div class=\"ghd-codetab-fallback-label\" role=\"heading\" aria-level=\"3\">Go</div>\n\n<!-- docs-validate: skip -->\n\n```golang\nsession, err := client.CreateSession(ctx, &copilot.SessionConfig{\n    OnPermissionRequest: copilot.PermissionHandler.ApproveAll,\n    SessionLimits: &rpc.SessionLimitsConfig{\n        MaxAiCredits: copilot.Float64(30),\n    },\n})\n\nresumed, err := client.ResumeSession(ctx, session.SessionID, &copilot.ResumeSessionConfig{\n    OnPermissionRequest: copilot.PermissionHandler.ApproveAll,\n    SessionLimits: &rpc.SessionLimitsConfig{\n        MaxAiCredits: copilot.Float64(30),\n    },\n})\n```\n\n</div>\n\n<div class=\"ghd-codetab\" data-lang=\"dotnet\" data-label=\".NET\"><div class=\"ghd-codetab-fallback-label\" role=\"heading\" aria-level=\"3\">.NET</div>\n\n<!-- docs-validate: skip -->\n\n```csharp\nvar session = await client.CreateSessionAsync(new SessionConfig\n{\n    OnPermissionRequest = PermissionHandler.ApproveAll,\n    SessionLimits = new SessionLimitsConfig\n    {\n        MaxAiCredits = 30,\n    },\n});\n\nvar resumed = await client.ResumeSessionAsync(session.SessionId, new ResumeSessionConfig\n{\n    OnPermissionRequest = PermissionHandler.ApproveAll,\n    SessionLimits = new SessionLimitsConfig\n    {\n        MaxAiCredits = 30,\n    },\n});\n```\n\n</div>\n\n<div class=\"ghd-codetab\" data-lang=\"java\" data-label=\"Java\"><div class=\"ghd-codetab-fallback-label\" role=\"heading\" aria-level=\"3\">Java</div>\n\n<!-- docs-validate: skip -->\n\n```java\nCopilotSession session = client\n        .createSession(new SessionConfig()\n                .setOnPermissionRequest(PermissionHandler.APPROVE_ALL)\n                .setSessionLimits(new SessionLimitsConfig(30.0)))\n        .get();\n\nCopilotSession resumed = client\n        .resumeSession(session.getSessionId(), new ResumeSessionConfig()\n                .setOnPermissionRequest(PermissionHandler.APPROVE_ALL)\n                .setSessionLimits(new SessionLimitsConfig(30.0)))\n        .get();\n```\n\n</div>\n\n<div class=\"ghd-codetab\" data-lang=\"rust\" data-label=\"Rust\"><div class=\"ghd-codetab-fallback-label\" role=\"heading\" aria-level=\"3\">Rust</div>\n\n<!-- docs-validate: skip -->\n\n```rust\nlet limits = SessionLimitsConfig {\n    max_ai_credits: Some(30.0),\n};\n\nlet session = client\n    .create_session(\n        SessionConfig::default()\n            .approve_all_permissions()\n            .with_session_limits(limits.clone()),\n    )\n    .await?;\n\nlet resumed = client\n    .resume_session(\n        ResumeSessionConfig::new(session.id().clone())\n            .approve_all_permissions()\n            .with_session_limits(limits),\n    )\n    .await?;\n```\n\n</div>\n\n</div>\n\n## Budgetereignisse überwachen\n\nAnwendungen können Session-Ereignisse abonnieren, um die UI zu aktualisieren, wenn sich die Softcap ändert oder die Session in den Ablauf für ausgeschöpftes Budget eintritt.\n\n| Ereignistyp | Wenn sie ausgegeben wird | Wichtige Felder |\n|---|---|---|\n| `session.session_limits_changed` | Die Grenzwerte für aktive Sitzungen wurden geändert. Ein `null``sessionLimits` Wert bedeutet, dass keine Grenzwerte aktiv sind. | `sessionLimits.maxAiCredits?` |\n| `session.usage_checkpoint` | Die Laufzeit zeichnet aggregierte Nutzungsdaten zur Wiederaufnahme und Abrechnung dauerhaft auf. | \n`totalNanoAiu`, `totalPremiumRequests?` |\n| `session_limits_exhausted.requested` | Die Sitzung hat den Ablauf bei ausgeschöpftem Budget erreicht und erfordert eine Entscheidung des Benutzers, bevor sie fortgesetzt werden kann. | \n`requestId`, `maxAiCredits``usedAiCredits` |\n| `session_limits_exhausted.completed` | Die Meldung zum erreichten Limit wurde behoben. | \n`requestId`, , `response.action``response.additionalAiCredits?``response.maxAiCredits?` |\n\nVerwenden Sie die generierten Ereignistypen für die verwendete SDK-Sprache. Beispielsweise grenzt TypeScript mithilfe von `event.type` ein:\n\n```typescript\nsession.on((event) => {\n    if (event.type === \"session_limits_exhausted.requested\") {\n        showBudgetDialog({\n            requestId: event.data.requestId,\n            maxAiCredits: event.data.maxAiCredits,\n            usedAiCredits: event.data.usedAiCredits,\n        });\n    }\n});\n```"}