Tools im Chat verwenden
Tools erweitern den Chat in Visual Studio Code mit spezialisierter Funktionalität zur Erledigung spezifischer Aufgaben wie Code suchen, Befehle ausführen, Webinhalte abrufen oder APIs aufrufen. VS Code unterstützt drei Arten von Tools: integrierte Tools, Model Context Protocol (MCP) Tools und Erweiterungs-Tools.
Dieser Artikel beschreibt die verschiedenen Arten von Tools, die in VS Code verfügbar sind, wie Sie sie in Ihren Chat-Prompts verwenden und wie Sie Tool-Aufrufe und -Genehmigungen verwalten.
Tool-Typen
VS Code unterstützt drei Arten von Tools, die Sie im Chat verwenden können
Integrierte Tools
VS Code bietet eine umfassende Sammlung integrierter Tools, die im Chat automatisch verfügbar sind. Diese Tools decken gängige Entwicklungsaufgaben ab und sind für die Arbeit in Ihrem Arbeitsbereich optimiert.
Integrierte Tools erfordern keine Installation oder Konfiguration und sind sofort verfügbar, sobald Sie mit der Nutzung des Chats beginnen.
Eine vollständige Liste der integrierten Tools und deren Beschreibungen finden Sie im Referenzhandbuch für Chat-Tools.
MCP-Tools
Model Context Protocol (MCP) ist ein offener Standard, der es KI-Modellen ermöglicht, externe Tools und Dienste über eine einheitliche Schnittstelle zu nutzen. MCP-Server stellen Tools zur Verfügung, die Sie zu VS Code hinzufügen können, um den Chat um zusätzliche Funktionen zu erweitern.
Sie müssen MCP-Server installieren und konfigurieren, bevor Sie deren Tools im Chat verwenden können. MCP-Server können lokal auf Ihrem Computer ausgeführt oder remote gehostet werden.
Erfahren Sie mehr über die Konfiguration von MCP-Servern in VS Code.
Erweiterungs-Tools
VS Code-Erweiterungen können Tools beisteuern, die tief in den Editor integriert sind. Erweiterungs-Tools verwenden die Language Model Tools API, um spezialisierte Funktionalität bereitzustellen und gleichzeitig auf die gesamte Bandbreite der VS Code Extension APIs zuzugreifen.
Erweiterungs-Tools sind automatisch verfügbar, wenn Sie eine Erweiterung installieren, die sie bereitstellt. Benutzer benötigen keine separate Installation oder Konfiguration über die Installation der Erweiterung selbst hinaus.
Entwickler, die Erweiterungs-Tools erstellen möchten, finden im Leitfaden zur Language Model Tools API weitere Informationen.
Tools für den Chat aktivieren
Bevor Sie Tools im Chat verwenden können, müssen Sie diese in der Chat-Ansicht aktivieren. Sie können Tools pro Anfrage aktivieren oder deaktivieren, indem Sie den Tool-Auswähler verwenden. Sie können weitere Tools hinzufügen, indem Sie MCP-Server oder Erweiterungen installieren, die Tools bereitstellen.
Wählen Sie nur die für Ihren Prompt relevanten Tools aus, um Ihre Ergebnisse zu verbessern.
So greifen Sie auf den Tool-Auswähler zu
-
Öffnen Sie die Chat-Ansicht und wählen Sie im Agenten-Auswähler **Agent** aus.
-
Wählen Sie die Schaltfläche Tools konfigurieren im Chat-Eingabefeld aus.

-
Wählen Sie Tools aus oder heben Sie die Auswahl auf, um zu steuern, welche für die aktuelle Anfrage verfügbar sind.
Verwenden Sie das Suchfeld, um die Liste der Tools zu filtern.
Wenn Sie den Chat mit Prompt-Dateien oder benutzerdefinierten Agenten anpassen, können Sie angeben, welche Tools für einen bestimmten Prompt oder Modus verfügbar sind. Erfahren Sie mehr über die Reihenfolge der Tool-Listen-Priorität.
Tools in Ihren Prompts verwenden
Wenn Sie Agenten verwenden, ermittelt der Agent anhand Ihres Prompts und des Kontexts Ihrer Anfrage automatisch, welche Tools aus den aktivierten Tools verwendet werden sollen. Der Agent wählt autonom relevante Tools aus und ruft sie bei Bedarf auf, um die Aufgabe zu erledigen.
Sie können Tools auch explizit in Ihren Prompts referenzieren, indem Sie # gefolgt vom Toolnamen eingeben. Dies ist nützlich, wenn Sie sicherstellen möchten, dass ein bestimmtes Tool verwendet wird. Geben Sie # in das Chat-Eingabefeld ein, um eine Liste der verfügbaren Tools anzuzeigen, einschließlich integrierter Tools, MCP-Tools von installierten Servern, Erweiterungs-Tools und Tool-Sets.
Beispiele für explizite Tool-Referenzen
"Fassen Sie den Inhalt von #fetch https://visualstudiocode.de/updates zusammen""Wie funktioniert Routing in Next.js? #githubRepo vercel/next.js""Beheben Sie die Probleme in #problems""Erklären Sie den Authentifizierungsfluss #codebase"
Einige Tools akzeptieren Parameter direkt im Prompt. Zum Beispiel erfordert #fetch eine URL und #githubRepo einen Repository-Namen.
Standardmäßig sind die Aufrufdetails von Tools im Chat-Verlauf ausgeblendet. Sie können sie einblenden, indem Sie in der Chat-Konversation auf die Zeile mit der Tool-Zusammenfassung klicken, oder Sie ändern das Standardverhalten mit der Einstellung chat.agent.thinking.collapsedTools (experimentell).
Tool-Genehmigung
Einige Tools erfordern Ihre Zustimmung, bevor sie ausgeführt werden können. Dies ist eine Sicherheitsmaßnahme, da Tools Aktionen ausführen können, die Dateien oder Ihre Umgebung ändern oder versuchen, Prompt-Injection-Angriffe über bösartige Tool-Ausgaben durchzuführen.
Wenn ein Tool eine Genehmigung erfordert, erscheint ein Bestätigungsdialogfeld mit den Tool-Details. Überprüfen Sie die Informationen sorgfältig, bevor Sie das Tool genehmigen. Sie können das Tool für eine einzelne Verwendung, für die aktuelle Sitzung, für den aktuellen Arbeitsbereich oder für alle zukünftigen Aufrufe genehmigen.

Tools und Agentenaktionen können zu Dateiänderungen führen. Erfahren Sie, wie Sie versehentliche Änderungen an sensiblen Dateien in Ihrem Arbeitsbereich verhindern können.
Überprüfen Sie immer sorgfältig die Tool-Parameter, bevor Sie sie genehmigen, insbesondere bei Tools, die Dateien ändern, Befehle ausführen oder auf externe Dienste zugreifen. Sehen Sie sich die Sicherheitshinweise für die Verwendung von KI in VS Code an.
Tool-Auto-Genehmigung aktivieren oder deaktivieren (experimentell)
Standardmäßig können Sie wählen, ob Sie Tools automatisch genehmigen möchten. Um versehentliche Genehmigungen zu verhindern, können Sie die automatische Genehmigung für bestimmte Tools mit der Einstellung chat.tools.eligibleForAutoApproval deaktivieren. Setzen Sie den Wert auf false, um für dieses Tool immer eine manuelle Genehmigung zu verlangen.
Organisationen können auch Geräteverwaltungsrichtlinien verwenden, um manuelle Genehmigungen für bestimmte Tools zu erzwingen. Erfahren Sie mehr in der Enterprise-Dokumentation.
URL-Genehmigung
Wenn ein Tool versucht, auf eine URL zuzugreifen, z. B. mit dem fetch-Tool, wird ein zweistufiger Genehmigungsprozess verwendet, um Sie vor bösartigen oder unerwarteten Inhalten zu schützen. VS Code zeigt ein Bestätigungsdialogfeld mit den URL-Details zur Überprüfung in der Chat-Ansicht an.
-
Vorab-Genehmigung: Genehmigung der Anfrage an die URL
Dieser Schritt stellt sicher, dass Sie der kontaktierten Domäne vertrauen, und kann verhindern, dass sensible Daten an nicht vertrauenswürdige Websites gesendet werden.

Sie haben Optionen für eine einmalige Genehmigung oder für die automatische Genehmigung zukünftiger Anfragen an die spezifische URL oder Domäne. Die Auswahl der automatischen Genehmigung hat keinen Einfluss auf die Notwendigkeit, die Ergebnisse zu überprüfen. Wenn Sie **Anfragen zulassen an** auswählen, können Sie sowohl Vorab- als auch Nachgenehmigungen für die URL oder Domäne konfigurieren.
HinweisDie Vorab-Genehmigung berücksichtigt die Funktion "Vertrauenswürdige Domänen". Wenn eine Domäne dort aufgeführt ist, erhalten Sie automatisch die Genehmigung, Anfragen an diese Domäne zu stellen, und können die Überprüfung der Antwort aufschieben.
-
Nachgenehmigung: Genehmigung des von der URL abgerufenen Antwortinhalts
Dieser Schritt stellt sicher, dass Sie den abgerufenen Inhalt überprüfen, bevor er dem Chat hinzugefügt oder an andere Tools weitergegeben wird, und verhindert so potenzielle Prompt-Injection-Angriffe.
Zum Beispiel könnten Sie eine Anfrage genehmigen, um Inhalte von einer bekannten Website wie GitHub.com abzurufen. Da der Inhalt, wie z. B. eine Problembeschreibung oder Kommentare, benutzergeneriert ist, könnte er schädliche Inhalte enthalten, die das Verhalten des Modells manipulieren könnten.
Sie haben Optionen für eine einmalige Genehmigung oder für die automatische Genehmigung zukünftiger Antworten von der spezifischen URL oder Domäne.
WichtigDer Nachgenehmigungsschritt ist nicht mit der Funktion "Vertrauenswürdige Domänen" verknüpft und erfordert immer Ihre Überprüfung. Dies ist eine Sicherheitsmaßnahme, um Probleme mit nicht vertrauenswürdigen Inhalten auf einer Domäne zu verhindern, der Sie ansonsten vertrauen würden.
Die Einstellung chat.tools.urls.autoApprove wird verwendet, um Ihre Muster für die automatische URL-Genehmigung zu speichern. Der Einstellungswert ist entweder ein boolescher Wert zum Aktivieren oder Deaktivieren von automatischen Genehmigungen für Anfragen und Antworten oder ein Objekt mit den Eigenschaften approveRequest und approveResponse für eine granulare Steuerung. Sie können exakte URLs, Glob-Muster oder Wildcards verwenden.
Beispiele für automatische URL-Genehmigung
{
"chat.tools.urls.autoApprove": {
"https://www.example.com": false,
"https://*.contoso.com/*": true,
"https://example.com/api/*": {
"approveRequest": true,
"approveResponse": false
}
}
Tool-Bestätigungen zurücksetzen
Um alle gespeicherten Tool-Genehmigungen zu löschen, verwenden Sie den Befehl Chat: Tool-Bestätigungen zurücksetzen in der Befehlspalette (⇧⌘P (Windows, Linux Ctrl+Shift+P)).
Tool-Parameter bearbeiten
Sie können die Eingabeparameter überprüfen und bearbeiten, bevor ein Tool ausgeführt wird
-
Wenn der Dialog zur Tool-Bestätigung angezeigt wird, klicken Sie auf den Pfeil neben dem Toolnamen, um dessen Details zu erweitern.
-
Bearbeiten Sie nach Bedarf beliebige Tool-Eingabeparameter.
-
Klicken Sie auf Zulassen, um das Tool mit den geänderten Parametern auszuführen.
Terminalbefehle
Der Agent kann Terminalbefehle als Teil seines Workflows zur Erledigung von Aufgaben verwenden. Wenn der Agent entscheidet, Terminalbefehle auszuführen, verwendet er das integrierte Terminal-Tool, um sie in einem integrierten Terminal innerhalb von VS Code auszuführen.
Im Chat-Verlauf zeigt der Agent die ausgeführten Befehle an. Sie können die Ausgabe des Befehls direkt im Chat einsehen, indem Sie neben dem Befehl auf Ausgabe anzeigen (>) klicken. Sie können die vollständige Ausgabe auch im integrierten Terminal einsehen, indem Sie auf Terminal anzeigen klicken.

Verwenden Sie die experimentelle Einstellung chat.tools.terminal.outputLocation, um zu konfigurieren, wo die Ausgabe von Terminalbefehlen angezeigt wird: inline im Chat oder im integrierten Terminal.
Im Terminalbereich sehen Sie die Liste der Terminals, die der Agent für eine Chatsitzung verwendet hat. Sie können Agenten-Terminals auch am Chat-Symbol in der Terminalliste erkennen.

Terminalbefehle automatisch genehmigen
Sie können konfigurieren, welche Terminalbefehle automatisch genehmigt werden, indem Sie die Einstellung chat.tools.terminal.autoApprove verwenden. Sie können sowohl erlaubte als auch verweigerte Befehle angeben
- Setzen Sie Befehle auf
true, um sie automatisch zu genehmigen - Setzen Sie Befehle auf
false, um immer eine Genehmigung zu verlangen - Verwenden Sie reguläre Ausdrücke, indem Sie Muster in
/einschließen
Zum Beispiel
{
// Allow the `mkdir` command
"mkdir": true,
// Allow `git status` and commands starting with `git show`
"/^git (status|show\\b.*)$/": true,
// Block the `del` command
"del": false,
// Block any command containing "dangerous"
"/dangerous/": false
}
Standardmäßig werden Muster gegen einzelne Unterbefehle abgeglichen. Damit ein Befehl automatisch genehmigt wird, müssen alle Unterbefehle mit einem true-Eintrag übereinstimmen und dürfen nicht mit einem false-Eintrag übereinstimmen.
Verwenden Sie für erweiterte Szenarien die Objekt-Syntax mit der Eigenschaft matchCommandLine, um die gesamte Befehlszeile anstelle einzelner Unterbefehle abzugleichen.
Zugehörige Einstellungen
- chat.tools.terminal.enableAutoApprove: automatische Genehmigungsfunktionalität dauerhaft deaktivieren
- chat.tools.terminal.blockDetectedFileWrites (experimentell): Erkennung von Dateischreibvorgängen (experimentell)
- chat.tools.terminal.ignoreDefaultAutoApproveRules (experimentell): Deaktivieren Sie alle Standardregeln (sowohl Zulassen als auch Blockieren), um die vollständige Kontrolle über alle Regeln zu erhalten.
Die automatische Genehmigung von Terminalbefehlen bietet Best-Effort-Schutz und geht davon aus, dass der Agent nicht bösartig handelt. Es ist wichtig, sich vor Prompt-Injection zu schützen, wenn Sie die automatische Terminal-Genehmigung aktivieren, da es möglich sein könnte, dass einige Befehle durchrutschen. Hier sind einige Beispiele, bei denen die Erkennung fehlschlagen kann
- VS Code verwendet PowerShell- und Bash-Tree-Sitter-Grammatiken, um Unterbefehle zu extrahieren. Muster werden daher nicht erkannt, wenn diese Grammatiken sie nicht erkennen.
- VS Code verwendet die Bash-Grammatik, da keine Zsh- oder Fish-Grammatik vorhanden ist, sodass einige Unterbefehle nicht erkannt werden.
- Die Erkennung von Dateischreibvorgängen ist derzeit minimal, sodass es möglich sein könnte, Dateien mit dem Terminal zu schreiben, was bei der Verwendung der Dateibearbeitungsagent-Tools nicht möglich wäre.
Tools mit Tool-Sets gruppieren
Ein Tool-Set ist eine Sammlung von Tools, die Sie als einzelne Einheit in Ihren Prompts referenzieren können. Tool-Sets helfen Ihnen, verwandte Tools zu organisieren und sie in Chat-Prompts, Prompt-Dateien und benutzerdefinierten Chat-Agenten einfacher zu verwenden. Einige der integrierten Tools sind Teil vordefinierter Tool-Sets, wie z. B. #edit und #search.
Ein Tool-Set erstellen
So erstellen Sie ein Tool-Set
-
Führen Sie den Befehl Chat: Tool-Sets konfigurieren aus der Befehlspalette aus und wählen Sie Neue Tool-Sets-Datei erstellen.
Wählen Sie alternativ in der Chat-Ansicht > Tool-Sets > Neue Tool-Sets-Datei erstellen.

-
Definieren Sie Ihr Tool-Set in der
.jsonc-Datei, die sich öffnet.Ein Tool-Set hat die folgende Struktur
{ "reader": { "tools": ["changes", "codebase", "problems", "usages"], "description": "Tools for reading and gathering context", "icon": "book" } }Eigenschaften von Tool-Sets
tools: Array von Tool-Namen (integrierte Tools, MCP-Tools oder Erweiterungs-Tools)description: Kurze Beschreibung, die im Tool-Auswähler angezeigt wirdicon: Symbol für das Tool-Set (siehe Referenz für Produkt-Icons)
Ein Tool-Set verwenden
Referenzieren Sie ein Tool-Set in Ihren Prompts, indem Sie # gefolgt vom Tool-Set-Namen eingeben
"Analysieren Sie den Codebase auf Sicherheitsprobleme #reader""Wo ist die DB-Verbindungszeichenfolge definiert? #search"
Im Tool-Auswähler sind Tool-Sets als zusammenklappbare Gruppen verwandter Tools verfügbar. Sie können ganze Tool-Sets auswählen oder die Auswahl aufheben, um mehrere verwandte Tools schnell gleichzeitig zu aktivieren oder zu deaktivieren.
Häufig gestellte Fragen
Woher weiß ich, welche Tools verfügbar sind?
Geben Sie # in das Chat-Eingabefeld ein, um eine Liste aller verfügbaren Tools anzuzeigen. Sie können auch den Tool-Auswähler im Chat verwenden, um die Liste der aktiven Tools anzuzeigen und zu verwalten.
Ich erhalte die Fehlermeldung "Kann nicht mehr als 128 Tools pro Anfrage haben."
Eine Chat-Anfrage kann maximal 128 Tools gleichzeitig aktiviert haben. Wenn Sie eine Fehlermeldung erhalten, die besagt, dass 128 Tools pro Anfrage überschritten wurden
-
Öffnen Sie den Tool-Auswähler in der Chat-Ansicht und wählen Sie einige Tools oder ganze MCP-Server ab, um die Anzahl zu reduzieren.
-
Alternativ können Sie virtuelle Tools mit der Einstellung github.copilot.chat.virtualTools.threshold aktivieren, um große Tool-Sets automatisch zu verwalten.
Warum verwendet der Agent die Eingabeaufforderung nicht als Shell?
Der Agent verwendet die Shell, die Sie als Standard für das Terminal konfiguriert haben, außer wenn es sich um cmd handelt. Das liegt daran, dass die Shell-Integration mit der Eingabeaufforderung nicht unterstützt wird, was bedeutet, dass der Agent nur sehr begrenzte Sicht auf das hat, was im Terminal passiert. Anstatt direkte Signale zu erhalten, wann Befehle ausgeführt werden oder beendet wurden, muss sich der Agent auf Timeouts verlassen und darauf warten, dass das Terminal inaktiv wird, um fortzufahren. Dies führt zu einer langsamen und fehleranfälligen Erfahrung.
Sie können den Agenten dennoch so konfigurieren, dass er die Eingabeaufforderung mit der Einstellung chat.tools.terminal.terminalProfile.windows verwendet, dies führt jedoch im Vergleich zur Verwendung von PowerShell zu einer schlechteren Erfahrung.
"chat.tools.terminal.terminalProfile.windows": {
"path": "C:\\WINDOWS\\System32\\cmd.exe"
}
Kann ich alle Tools und Terminalbefehle automatisch genehmigen?
Diese Einstellung deaktiviert alle manuellen Genehmigungen, einschließlich potenziell destruktiver Aktionen. Sie entfernt wichtige Sicherheitsvorkehrungen und erleichtert einem Angreifer die Kompromittierung des Rechners. Aktivieren Sie diese Einstellung nur, wenn Sie die Auswirkungen verstehen. Weitere Informationen finden Sie in der Sicherheitsdokumentation.
Um allen Tools und Terminalbefehlen die Ausführung ohne Aufforderung zur Benutzerbestätigung zu ermöglichen, aktivieren Sie die Einstellung chat.tools.global.autoApprove. Diese Einstellung gilt global für alle Ihre Arbeitsbereiche!
Was ist der Unterschied zwischen Tools und Chat-Teilnehmern?
Chat-Teilnehmer sind spezialisierte Assistenten, die es Ihnen ermöglichen, domänenspezifische Fragen im Chat zu stellen. Stellen Sie sich einen Chat-Teilnehmer als Domänenexperten vor, dem Sie Ihre Chat-Anfrage übergeben und der sich um den Rest kümmert.
Tools werden als Teil eines Agenten-Workflows aufgerufen, um bestimmte Aufgaben beizutragen und auszuführen. Sie können mehrere Tools in einer einzigen Chat-Anfrage einbeziehen, aber nur ein Chat-Teilnehmer kann gleichzeitig aktiv sein.
Kann ich eigene Tools erstellen?
Ja. Sie können Tools auf zwei Arten erstellen
- Entwickeln Sie eine VS Code-Erweiterung, die Tools über die Language Model Tools API bereitstellt.
- Erstellen Sie einen MCP-Server, der Tools bereitstellt. Sehen Sie sich den MCP-Entwicklerleitfaden an.