{"meta":{"title":"Kontext-Clearing- und Terminaltools","intro":"Verwenden Sie session.history.clearContext, wenn ein Host den aktuellen Konversationskontext ersetzen muss, ohne die Sitzung zu ersetzen. Typische Verwendungen umfassen Übergaben und hostverwaltete Kontextlebenszyklusrichtlinien.","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/context-management","title":"Context-Management"}],"documentType":"article"},"body":"# Kontext-Clearing- und Terminaltools\n\nVerwenden Sie session.history.clearContext, wenn ein Host den aktuellen Konversationskontext ersetzen muss, ohne die Sitzung zu ersetzen. Typische Verwendungen umfassen Übergaben und hostverwaltete Kontextlebenszyklusrichtlinien.\n\n<!-- markdownlint-disable GHD046 GHD005 -->\n<!-- Suppressed: GHD046 (outdated release terminology), GHD005 (hardcoded data variable) -->\n\nDas Leeren des Kontexts unterscheidet sich vom Erstellen einer neuen Sitzung: Dabei bleiben die Sitzungsidentität, System- und Entwicklernachrichten, die Konfiguration und das Ereignisprotokoll erhalten, während die für das Modell sichtbare Konversation entfernt wird.\n\n> [!IMPORTANT]\n> `clearContext` ist ein Toolhandlergrundtyp. Die Laufzeit lehnt Aufrufe ab, wenn kein Tool-Aufruf aktiv ist, Aufrufe mit einem leeren Initialisierungsprompt und Aufrufe in Remote-Sitzungen.\n\n## Ein Tool zum Löschen des Kontexts definieren\n\nEin erfolgreiches Kontextbereinigungstool sollte abschließend sein. Andernfalls kann die Agentschleife einen weiteren Modellaufruf für das frisch bereinigte Kontextfenster durchführen, bevor der initialisierte Durchgang beginnt.\n\n```typescript\nimport { approveAll, CopilotClient, defineTool } from \"@github/copilot-sdk\";\nimport type { CopilotSession } from \"@github/copilot-sdk\";\nimport { z } from \"zod\";\n\nconst client = new CopilotClient();\nlet session: CopilotSession;\n\nsession = await client.createSession({\n  onPermissionRequest: approveAll,\n  tools: [\n    defineTool(\"clear_context\", {\n      description: \"Clear the conversation and start a fresh context window\",\n      parameters: z.object({ prompt: z.string() }),\n      isTerminal: true,\n      defer: \"never\",\n      handler: async ({ prompt }) => {\n        const { messagesCleared } =\n          await session.rpc.history.clearContext({ prompt });\n        return `Cleared ${messagesCleared} messages.`;\n      },\n    }),\n  ],\n});\n```\n\nDie erforderliche `prompt` Nachricht wird zur ersten Benutzernachricht im neuen Kontext. Ein erfolgreiches Leeren sendet `session.context_cleared` mit der Anzahl der entfernten Nachrichten und der ursprünglichen Nachricht.\n\n## Terminal-Werkzeugverhalten\n\n`isTerminal` beendet den aktuellen Agenten-Turn nur dann, wenn das Tool erfolgreich ausgeführt wird. Ein Fehler, Verweigerungs-, Ablehnungs-, Timeout- oder Eingabeüberprüfungsfehler bleibt für das Modell sichtbar, sodass er wiederhergestellt oder erneut versucht werden kann.\n\nDie Option folgt den Benennungskonventionen der einzelnen Sprachen:\n\n| SDK | Werkzeugoption |\n|---|---|\n| Node.js | `isTerminal` |\n| Python | `is_terminal` |\n| Go | `IsTerminal` |\n| .NET | `CopilotToolOptions.IsTerminal` |\n| Java | \n`ToolDefinition.isTerminal(true)` oder `@CopilotTool(isTerminal = true)` |\n| Rust | `with_is_terminal(true)` |\n\nVerwenden Sie Terminalität nur bei Tools, deren erfolgreiche Ausführung den Durchgang beenden sollte. Gewöhnliche Tools sollten ihn ohne Festlegung lassen."}