{"meta":{"title":"SDK- und CLI-Kompatibilität","intro":"Dieses Dokument beschreibt, welche Copilot-CLI-Funktionen über das SDK verfügbar sind und welche ausschließlich in der CLI verfügbar sind.","product":"GitHub Copilot","breadcrumbs":[{"href":"/de/enterprise-cloud@latest/copilot","title":"GitHub Copilot"},{"href":"/de/enterprise-cloud@latest/copilot/how-tos","title":"Vorgehensweisen"},{"href":"/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk","title":"Copilot SDK"},{"href":"/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/troubleshooting","title":"Problembehandlung"},{"href":"/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/troubleshooting/compatibility","title":"Compatibility"}],"documentType":"article"},"body":"# SDK- und CLI-Kompatibilität\n\nDieses Dokument beschreibt, welche Copilot-CLI-Funktionen über das SDK verfügbar sind und welche ausschließlich in der CLI verfügbar sind.\n\n<!-- markdownlint-disable GHD046 GHD005 -->\n\n<!-- Suppressed: GHD046 (outdated release terminology), GHD005 (hardcoded data variable) -->\n\n## Übersicht\n\nDas Copilot SDK kommuniziert über JSON-RPC Protokoll mit der CLI. Features müssen explizit über dieses Protokoll verfügbar gemacht werden, damit sie im SDK verfügbar sind. Viele interaktive CLI-Features sind terminalspezifisch und nicht programmgesteuert verfügbar.\n\n## Funktionsvergleich\n\n### ✅ Verfügbar im SDK\n\n| Funktion                                   | SDK-Methode                                            | Hinweise                                                                                                                               |\n| ------------------------------------------ | ------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |\n| **Sitzungsverwaltung**                     |                                                        |                                                                                                                                        |\n|                                            |                                                        |                                                                                                                                        |\n| Sitzung erstellen                          | `createSession()`                                      | Vollständige Konfigurationsunterstützung                                                                                               |\n| Sitzung fortsetzen                         | `resumeSession()`                                      | Mit unendlichen Sitzungsarbeitsbereichen                                                                                               |\n| Sitzung trennen                            | `disconnect()`                                         | Freigeben von In-Memory-Ressourcen                                                                                                     |\n| Zerstören der Sitzung *(veraltet)*         | `destroy()`                                            | Verwenden Sie stattdessen `disconnect()`.                                                                                              |\n| Sitzung löschen                            | `deleteSession()`                                      | Aus Speicher entfernen                                                                                                                 |\n| Sitzungen auflisten                        | `listSessions()`                                       | Alle gespeicherten Sitzungen                                                                                                           |\n| Letzte Sitzung abrufen                     | `getLastSessionId()`                                   | Für einen schnellen Überblick                                                                                                          |\n| Vordergrundsitzung abrufen                 | `getForegroundSessionId()`                             | Koordination mehrerer Sitzungen                                                                                                        |\n| Aktuelle Sitzung in den Vordergrund setzen | `setForegroundSessionId()`                             | Koordination mehrerer Sitzungen                                                                                                        |\n| **Messaging**                              |                                                        |                                                                                                                                        |\n|                                            |                                                        |                                                                                                                                        |\n| Nachricht senden                           | `send()`                                               | Mit Anlagen                                                                                                                            |\n| Senden und Warten                          | `sendAndWait()`                                        | Blockiert bis zum Abschluss                                                                                                            |\n| Lenkung (Sofortiger Modus)                 | `send({ mode: \"immediate\" })`                          | Während des Vorgangs ohne Abbruch injizieren.                                                                                          |\n| Warteschlangen (Enqueue-Modus)             | `send({ mode: \"enqueue\" })`                            | Puffer für sequenzielle Verarbeitung (Standard)                                                                                        |\n| Dateianlagen                               | `send({ attachments: [{ type: \"file\", path }] })`      | Bilder automatisch codiert und verkleinert                                                                                             |\n| Verzeichnis-Anhänge                        | `send({ attachments: [{ type: \"directory\", path }] })` | Anfügen des Verzeichniskontexts                                                                                                        |\n| Verlauf abrufen                            | `getEvents()`                                          | Alle Sitzungsereignisse                                                                                                                |\n| Abbruch                                    | `abort()`                                              | In-Flight-Anforderung stornieren                                                                                                       |\n| **Werkzeuge**                              |                                                        |                                                                                                                                        |\n|                                            |                                                        |                                                                                                                                        |\n| Registrieren von benutzerdefinierten Tools | `registerTools()`                                      | Vollständige JSON-Schemaunterstützung                                                                                                  |\n| Berechtigungssteuerung für Tools           | `onPreToolUse` hook                                    | Zulassen/Verweigern/Fragen                                                                                                             |\n| Änderung des Werkzeugergebnisses           | `onPostToolUse` hook                                   | Transformieren von Ergebnissen                                                                                                         |\n| Verfügbare/ausgeschlossene Tools           | `availableTools`, `excludedTools` Konfiguration        | Filterwerkzeuge                                                                                                                        |\n| **Modelle**                                |                                                        |                                                                                                                                        |\n|                                            |                                                        |                                                                                                                                        |\n| Modelle auflisten                          | `listModels()`                                         | Mit Funktionen, Abrechnung, Richtlinien                                                                                                |\n| Festlegen des Modells (beim Erstellen)     |                                                        |                                                                                                                                        |\n| `model` in Sitzungskonfiguration           | Pro Sitzung                                            |                                                                                                                                        |\n| Switch-Modell (Zwischensitzung)            | `session.setModel()`                                   | Auch über `session.rpc.model.switchTo()`                                                                                               |\n| Aktuelles Modell abrufen                   | `session.rpc.model.getCurrent()`                       | Aktives Modell abfragen                                                                                                                |\n| Begründungsaufwand                         |                                                        |                                                                                                                                        |\n| `reasoningEffort` Konfiguration            | Für unterstützte Modelle                               |                                                                                                                                        |\n| **Agentmodus**                             |                                                        |                                                                                                                                        |\n|                                            |                                                        |                                                                                                                                        |\n| Aktuellen Modus abrufen                    | `session.rpc.mode.get()`                               | Gibt den aktuellen Modus zurück.                                                                                                       |\n| Modus festlegen                            | `session.rpc.mode.set()`                               | Wechseln zwischen Modi                                                                                                                 |\n| **Planverwaltung**                         |                                                        |                                                                                                                                        |\n|                                            |                                                        |                                                                                                                                        |\n| Plan lesen                                 | `session.rpc.plan.read()`                              | Abrufen des plan.md-Inhalts und des Pfads                                                                                              |\n| Plan aktualisieren                         | `session.rpc.plan.update()`                            | Schreiben Sie den Inhalt von plan.md                                                                                                   |\n| Plan löschen                               | `session.rpc.plan.delete()`                            | Plan.md entfernen                                                                                                                      |\n| **Arbeitsbereichsdateien**                 |                                                        |                                                                                                                                        |\n|                                            |                                                        |                                                                                                                                        |\n| Arbeitsbereichsdateien auflisten           | `session.rpc.workspace.listFiles()`                    | Dateien im Sitzungsarbeitsbereich                                                                                                      |\n| Arbeitsbereichsdatei lesen                 | `session.rpc.workspace.readFile()`                     | Dateiinhalt lesen                                                                                                                      |\n| Arbeitsbereichsdatei erstellen             | `session.rpc.workspace.createFile()`                   | Datei im Arbeitsbereich erstellen                                                                                                      |\n| **Authentifizierung**                      |                                                        |                                                                                                                                        |\n|                                            |                                                        |                                                                                                                                        |\n| Abrufen des Authentifizierungsstatus       | `getAuthStatus()`                                      | Überprüfen des Anmeldestatus                                                                                                           |\n| Token verwenden                            |                                                        |                                                                                                                                        |\n| Option `gitHubToken`                       | Programmgesteuerte Authentifizierung                   |                                                                                                                                        |\n| **Konnektivität**                          |                                                        |                                                                                                                                        |\n|                                            |                                                        |                                                                                                                                        |\n| Pingen                                     | `client.ping()`                                        | Gesundheitsprüfung mit Serverzeitstempel                                                                                               |\n| Serverstatus abrufen                       | `client.getStatus()`                                   | Protokollversions- und Serverinformationen                                                                                             |\n| **MCP-Server**                             |                                                        |                                                                                                                                        |\n|                                            |                                                        |                                                                                                                                        |\n| Lokale/Stdio-Server                        |                                                        |                                                                                                                                        |\n| `mcpServers` Konfiguration                 | Spawn-Prozesse                                         |                                                                                                                                        |\n| Remote-HTTP/SSE                            |                                                        |                                                                                                                                        |\n| `mcpServers` Konfiguration                 | Verbinden mit Diensten                                 |                                                                                                                                        |\n| **Hooks**                                  |                                                        |                                                                                                                                        |\n|                                            |                                                        |                                                                                                                                        |\n| Vor der Werkzeugverwendung                 | `onPreToolUse`                                         | Berechtigungen, Argumente ändern                                                                                                       |\n| Nutzung nach dem Tool-Einsatz (Erfolg)     | `onPostToolUse`                                        | Ergebnisse ändern                                                                                                                      |\n| Nutzung nach dem Tool-Einsatz (Fehler)     | `onPostToolUseFailure`                                 | Beobachte fehlgeschlagene Toolaufrufe und füge Hinweise für einen erneuten Versuch ein                                                 |\n| Benutzeraufforderung                       | `onUserPromptSubmitted`                                | Ändern von Eingabeaufforderungen                                                                                                       |\n| Sitzungsstart/-ende                        |                                                        |                                                                                                                                        |\n| `onSessionStart`, `onSessionEnd`           | Lebenszyklus mit Quelle/Grund                          |                                                                                                                                        |\n| Fehlerbehandlung                           | `onErrorOccurred`                                      | Benutzerdefinierte Behandlung                                                                                                          |\n| **Ereignisse**                             |                                                        |                                                                                                                                        |\n|                                            |                                                        |                                                                                                                                        |\n| Alle Sitzungsereignisse                    |                                                        |                                                                                                                                        |\n| `on()`, `once()`                           | 40+ Ereignistypen                                      |                                                                                                                                        |\n| Streaming                                  | `streaming: true`                                      | Delta-Ereignisse                                                                                                                       |\n| **Sitzungskonfiguration**                  |                                                        |                                                                                                                                        |\n|                                            |                                                        |                                                                                                                                        |\n| Benutzerdefinierte Agents                  |                                                        |                                                                                                                                        |\n| `customAgents` Konfiguration               | Definieren von spezialisierten Agents                  |                                                                                                                                        |\n| Systemmeldung                              |                                                        |                                                                                                                                        |\n| `systemMessage` Konfiguration              | Anfügen oder Ersetzen                                  |                                                                                                                                        |\n| Benutzerdefinierter Anbieter               |                                                        |                                                                                                                                        |\n| `provider` Konfiguration                   | BYOK-Unterstützung                                     |                                                                                                                                        |\n| Unendliche Sitzungen                       |                                                        |                                                                                                                                        |\n| `infiniteSessions` Konfiguration           | Automatische Komprimierung                             |                                                                                                                                        |\n| Berechtigungshandler                       | `onPermissionRequest`                                  | Genehmigen/Ablehnen von Anforderungen                                                                                                  |\n| Benutzereingabehandler                     | `onUserInputRequest`                                   | Verarbeitung von ask\\_user                                                                                                             |\n| Fähigkeiten                                |                                                        |                                                                                                                                        |\n| `skillDirectories` Konfiguration           | Benutzerdefinierte Fähigkeiten                         |                                                                                                                                        |\n| Deaktivierte Fähigkeiten                   |                                                        |                                                                                                                                        |\n| `disabledSkills` Konfiguration             | Deaktivieren bestimmter Fähigkeiten                    |                                                                                                                                        |\n| Konfigurationsverzeichnis                  |                                                        |                                                                                                                                        |\n| `configDir` Konfiguration                  | Standardkonfigurationsspeicherort außer Kraft setzen   |                                                                                                                                        |\n| Clientname                                 |                                                        |                                                                                                                                        |\n| `clientName` Konfiguration                 | App im User-Agent identifizieren                       |                                                                                                                                        |\n| Arbeitsverzeichnis                         |                                                        |                                                                                                                                        |\n| `workingDirectory` Konfiguration           | Sitzungscwd festlegen                                  |                                                                                                                                        |\n| **Experimentell**                          |                                                        |                                                                                                                                        |\n|                                            |                                                        |                                                                                                                                        |\n| Agentverwaltung                            | `session.rpc.agent.*`                                  | Auflisten, Auswählen, Abwählen, Abrufen des aktuellen Agents                                                                           |\n| Flottenmodus                               | `session.rpc.fleet.start()`                            | Parallele Ausführung des Sub-Agents; siehe [Flottenmodus](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/features/fleet-mode) |\n| Manuelle Komprimierung                     | `session.rpc.history.compact()`                        | Auslösen der Komprimierung bei Bedarf                                                                                                  |\n| Verlaufskürzung                            | `session.rpc.history.truncate()`                       | Ereignisse ab einem bestimmten Punkt entfernen                                                                                         |\n| Sitzungsaufspaltung                        | `server.rpc.sessions.fork()`                           | Eine Sitzung zu einem bestimmten Zeitpunkt in der Historie abspalten                                                                   |\n\n### ❌ Im SDK nicht verfügbar (nur CLI)\n\n| Funktion                                   | CLI-Befehl/-Option                     | Grund                                                                        |\n| ------------------------------------------ | -------------------------------------- | ---------------------------------------------------------------------------- |\n| **Sitzungsexport**                         |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| Exportieren als Datei                      |                                        |                                                                              |\n| `--share`, `/share`                        | Nicht im Protokoll                     |                                                                              |\n| In „gist“ exportieren                      |                                        |                                                                              |\n| `--share-gist`, `/share gist`              | Nicht im Protokoll                     |                                                                              |\n| **Interaktive Benutzeroberfläche**         |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| Slash-Befehle                              |                                        |                                                                              |\n| `/help`, `/clear`, `/exit`, usw.           | NUR TUI                                |                                                                              |\n| Dialogfeld \"Agentauswahl\"                  | `/agent`                               | Interaktive Benutzeroberfläche                                               |\n| Diff-Modus-Dialog                          | `/diff`                                | Interaktive Benutzeroberfläche                                               |\n| Feedback-Dialog                            | `/feedback`                            | Interaktive Benutzeroberfläche                                               |\n| Theme-Auswahl                              | `/theme`                               | Terminal-Benutzeroberfläche                                                  |\n| Modellauswahl                              | `/model`                               | Interaktive Benutzeroberfläche (verwenden Sie stattdessen SDK `setModel()` ) |\n| In Zwischenablage kopieren                 | `/copy`                                | Terminalspezifisch                                                           |\n| Context-Management                         | `/context`                             | Interaktive Benutzeroberfläche                                               |\n| **Forschung & Geschichte**                 |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| Tiefe Forschung                            | `/research`                            | TUI-Workflow mit Websuche                                                    |\n| Sitzungsverlaufstools                      | `/chronicle`                           | Standup, Tipps, verbessern, neuindizieren                                    |\n| **Terminalfunktionen**                     |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| Farbausgabe                                | `--no-color`                           | Terminalspezifisch                                                           |\n| Bildschirmlesemodus                        | `--screen-reader`                      | Accessibility                                                                |\n| Detailliertes Diff-Rendering               | `--plain-diff`                         | Terminal-Rendering                                                           |\n| Startbanner                                | `--banner`                             | Visuelles Element                                                            |\n| Streamer-Modus                             | `/streamer-mode`                       | TUI-Anzeigemodus                                                             |\n| Alternativer Bildschirmpuffer              |                                        |                                                                              |\n| `--alt-screen`, `--no-alt-screen`          | Terminal-Rendering                     |                                                                              |\n| Mausunterstützung                          |                                        |                                                                              |\n| `--mouse`, `--no-mouse`                    | Terminaleingabe                        |                                                                              |\n| **Pfad-/Berechtigungsverknüpfungen**       |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| Alle Pfade zulassen                        | `--allow-all-paths`                    | Berechtigungshandler verwenden                                               |\n| Alle URLs zulassen                         | `--allow-all-urls`                     | Berechtigungshandler verwenden                                               |\n| Alle Berechtigungen zulassen               |                                        |                                                                              |\n| `--yolo`, `--allow-all``/allow-all`        | Berechtigungshandler verwenden         |                                                                              |\n| Granulare Toolberechtigungen               |                                        |                                                                              |\n| `--allow-tool`, `--deny-tool`              | Verwenden Sie den `onPreToolUse`-Hook  |                                                                              |\n| URL-Zugriffssteuerung                      |                                        |                                                                              |\n| `--allow-url`, `--deny-url`                | Berechtigungshandler verwenden         |                                                                              |\n| Zulässige Tools zurücksetzen               | `/reset-allowed-tools`                 | TUI-Befehl                                                                   |\n| **Verzeichnisverwaltung**                  |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| Verzeichnis hinzufügen                     |                                        |                                                                              |\n| `/add-dir`, `--add-dir`                    | In der Sitzung konfigurieren           |                                                                              |\n| Verzeichnisse auflisten                    | `/list-dirs`                           | TUI-Befehl                                                                   |\n| Verzeichnis ändern                         | `/cwd`                                 | TUI-Befehl                                                                   |\n| **Plug-In-/MCP-Verwaltung**                |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| Plug-In-Befehle                            | `/plugin`                              | Interaktive Verwaltung                                                       |\n| MCP-Serververwaltung                       | `/mcp`                                 | Interaktive Benutzeroberfläche                                               |\n| **Kontoverwaltung**                        |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| Anmeldefluss                               |                                        |                                                                              |\n| `/login`, `copilot auth login`             | OAuth-Gerätefluss                      |                                                                              |\n| Abmelden                                   |                                        |                                                                              |\n| `/logout`, `copilot auth logout`           | Direkter CLI                           |                                                                              |\n| Benutzerinformationen                      | `/user`                                | TUI-Befehl                                                                   |\n| **Sitzungsvorgänge**                       |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| Konversation leeren                        | `/clear`                               | NUR TUI                                                                      |\n| Planansicht                                | `/plan`                                | TUI-only (stattdessen SDK `session.rpc.plan.*` verwenden)                    |\n| Sitzungsverwaltung                         |                                        |                                                                              |\n| `/session`, `/resume``/rename`             | TUI Workflow                           |                                                                              |\n| Flottenmodus (interaktiv)                  | `/fleet`                               | TUI-only (stattdessen SDK `session.rpc.fleet.start()` verwenden)             |\n| **Kompetenzmanagement**                    |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| Qualifikationen verwalten                  | `/skills`                              | Interaktive Benutzeroberfläche                                               |\n| **Aufgabenverwaltung**                     |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| Anzeigen von Hintergrundaufgaben           | `/tasks`                               | TUI-Befehl                                                                   |\n| **Nutzungs- und Statistiken**              |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| Tokenverwendung                            | `/usage`                               | Abonnieren von Verwendungsereignissen                                        |\n| **Codeprüfung**                            |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| Änderungen überprüfen                      | `/review`                              | TUI-Befehl                                                                   |\n| **Delegierung**                            |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| An PR delegieren                           | `/delegate`                            | TUI Workflow                                                                 |\n| **Terminaleinrichtung**                    |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| Shell-Integration                          | `/terminal-setup`                      | Shell-spezifisch                                                             |\n| **Entwicklung**                            |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| Experimentelle Funktion umschalten         |                                        |                                                                              |\n| `/experimental`, `--experimental`          | Laufzeitkennzeichnung                  |                                                                              |\n| Verwaltung benutzerdefinierter Anweisungen | `--no-custom-instructions`             | CLI-Kennzeichnung                                                            |\n| Diagnosesitzung                            | `/diagnose`                            | TUI-Befehl                                                                   |\n| Anzeigen/Verwalten von Anweisungen         | `/instructions`                        | TUI-Befehl                                                                   |\n| Sammeln von Debugprotokollen               | `/collect-debug-logs`                  | Diagnosetool                                                                 |\n| Arbeitsbereich neu indizieren              | `/reindex`                             | TUI-Befehl                                                                   |\n| IDE-Integration                            | `/ide`                                 | IDE-spezifischer Workflow                                                    |\n| **Nicht interaktiver Modus**               |                                        |                                                                              |\n|                                            |                                        |                                                                              |\n| Prompt-Modus                               |                                        |                                                                              |\n| `-p`, `--prompt`                           | Einmalige Ausführung                   |                                                                              |\n| Interaktive Eingabeaufforderung            |                                        |                                                                              |\n| `-i`, `--interactive`                      | Automatisch ausführen, dann interaktiv |                                                                              |\n| Stille Ausgabe                             |                                        |                                                                              |\n| `-s`, `--silent`                           | Skriptfreundlich                       |                                                                              |\n| Sitzung fortsetzen                         | `--continue`                           | Zuletzt aktualisiert                                                         |\n| Agentauswahl                               | `--agent <agent>`                      | CLI-Kennzeichnung                                                            |\n\n## Behelfslösungen\n\n### Flottenmodus\n\nDer Flottenmodus ist über `session.rpc.fleet.start()` für SDK-Anwendungen verfügbar, die die Laufzeit veranlassen möchten, zur Erreichung eines übergeordneten Ziels parallele Subagents einzusetzen. Verwenden Sie sie, wenn unabhängige Teilvorgänge gleichzeitig ausgeführt und dann von der Hauptsitzung zusammengefasst werden können. Eine vollständige Anleitung finden Sie unter [Flottenmodus](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/features/fleet-mode).\n\n### Sitzungsexport\n\nDie `--share` Option ist über das SDK nicht verfügbar. Problemumgehungen:\n\n1. **Manuelles Sammeln von Ereignissen** – Abonnieren Sie Sitzungsereignisse, und erstellen Sie Ihren eigenen Export:\n\n   ```typescript\n   const events: SessionEvent[] = [];\n   session.on((event) => events.push(event));\n   // ... after conversation ...\n   const messages = await session.getEvents();\n   // Format as markdown yourself\n   ```\n\n2. **Verwenden Sie die CLI direkt zum Exportieren** – Führen Sie die CLI mit `--share` für einmalige Exporte aus.\n\n### Berechtigungsverwaltung\n\nDas SDK verwendet ein **standardmäßig verweigerndes** Berechtigungsmodell. Alle Berechtigungsanforderungen (Dateischreibvorgänge, Shellbefehle, URL-Abrufe usw.) werden verweigert, es sei denn, Ihre App stellt einen `onPermissionRequest` Handler bereit.\n\nVerwenden Sie anstelle von `--allow-all-paths` oder `--yolo` den Berechtigungshandler:\n\n```typescript\nconst session = await client.createSession({\n  onPermissionRequest: approveAll,\n});\n```\n\n### Tokenverwendungsnachverfolgung\n\nStatt `/usage` abonnieren Sie Nutzungsereignisse:\n\n```typescript\nsession.on(\"assistant.usage\", (event) => {\n  console.log(\"Tokens used:\", {\n    input: event.data.inputTokens,\n    output: event.data.outputTokens,\n  });\n});\n```\n\n### Kontextkomprimierung\n\nAnstelle von `/compact` automatische Komprimierung zu konfigurieren oder manuell auszulösen:\n\n```typescript\n// Automatic compaction via config\nconst session = await client.createSession({\n  infiniteSessions: {\n    enabled: true,\n    backgroundCompactionThreshold: 0.80,  // Start background compaction at 80% context utilization\n    bufferExhaustionThreshold: 0.95,      // Block and compact at 95% context utilization\n  },\n});\n\n// Manual compaction (experimental)\nconst result = await session.rpc.history.compact();\nconsole.log(`Removed ${result.tokensRemoved} tokens, ${result.messagesRemoved} messages`);\n```\n\n> \\[!NOTE]\n> Schwellenwerte sind Kontextauslastungsverhältnisse (0,0-1,0), keine absolute Tokenanzahl.\n\n### Planverwaltung\n\nProgrammgesteuertes Lesen und Schreiben von Sitzungsplänen:\n\n```typescript\n// Read the current plan\nconst plan = await session.rpc.plan.read();\nif (plan.exists) {\n  console.log(plan.content);\n}\n\n// Update the plan\nawait session.rpc.plan.update({ content: \"# My Plan\\n- Step 1\\n- Step 2\" });\n\n// Delete the plan\nawait session.rpc.plan.delete();\n```\n\n### Nachrichtensteuerung\n\nFügen Sie eine Nachricht in die aktuelle LLM-Runde ein, ohne abzubrechen.\n\n```typescript\n// Steer the agent mid-turn\nawait session.send({ prompt: \"Focus on error handling first\", mode: \"immediate\" });\n\n// Default: enqueue for next turn\nawait session.send({ prompt: \"Next, add tests\" });\n```\n\n## Protokollbeschränkungen\n\nDas SDK kann nur auf Features zugreifen, die über das JSON-RPC-Protokoll der CLI verfügbar gemacht werden. Wenn Sie ein CLI-Feature benötigen, das nicht verfügbar ist:\n\n1. **Auf Alternativen überprüfen** – Viele Features verfügen über SDK-Entsprechungen (siehe oben beschriebene Problemumgehungen)\n2. **Verwenden Sie die CLI direkt** – Rufen Sie für einmalige Vorgänge die CLI auf.\n3. **Anfordern des Features** – Öffnen eines Problems zum Anfordern der Protokollunterstützung\n\n## Versionskompatibilität\n\n| SDK-Protokollbereich | CLI-Protokollversion | Compatibility                             |\n| -------------------- | -------------------- | ----------------------------------------- |\n| v2–v3                | v3                   | Vollständiger Support                     |\n| v2–v3                | v2                   | Unterstützt durch automatische v2-Adapter |\n\nDas SDK verhandelt Protokollversionen mit der CLI beim Start. Das SDK unterstützt Protokollversionen 2 bis 3. Beim Herstellen einer Verbindung mit einem v2 CLI-Server passt das SDK automatisch `tool.call`- und `permission.request`-Nachrichten an das v3-Ereignismodell an – es sind keine Codeänderungen erforderlich.\n\nVersionen zur Laufzeit prüfen:\n\n```typescript\nconst status = await client.getStatus();\nconsole.log(\"Protocol version:\", status.protocolVersion);\n```\n\n## Siehe auch\n\n* [Erstellen Sie Ihre erste Copilot-gestützte App](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/getting-started)\n* [Sitzungshaken](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/hooks/hooks-overview)\n* [Verwenden von MCP-Servern mit dem GitHub Copilot SDK](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/features/mcp)\n* [Debughandbuch](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/troubleshooting/debugging)"}