Machen Sie Chat zu einem Experten in Ihrem Arbeitsbereich
Chat wird deutlich hilfreicher, wenn er ein tiefes Verständnis Ihrer gesamten Codebasis hat, nicht nur einzelner Dateien. Der Arbeitsbereichskontext ist der zugrundeliegende Mechanismus, der es der KI ermöglicht, Ihr Projekt zu durchsuchen, zu verstehen, wie Komponenten verbunden sind, und Antworten zu liefern, die auf Ihrem tatsächlichen Code basieren. Dies ermöglicht es Ihnen, allgemeine Fragen wie "Wo wird die Authentifizierung behandelt?" oder "Wie füge ich einen neuen API-Endpunkt hinzu?" zu stellen und genaue Antworten basierend auf Ihrer spezifischen Codebasis zu erhalten.
Dieser Artikel erklärt, wie der Arbeitsbereichskontext funktioniert, wie Sie Ihren Arbeitsbereichsindex für optimale Ergebnisse verwalten und wie Sie @workspace und #codebase verwenden, um ihn in Ihren Prompts zu nutzen.
Die Intelligenz hinter dem Arbeitsbereichskontext passt sich automatisch an die Größe und Einrichtung Ihres Projekts an und stellt sicher, dass Sie genaue Ergebnisse erhalten, egal ob Sie an einem kleinen persönlichen Projekt oder einer großen Unternehmenscodebasis arbeiten.
So funktioniert der Arbeitsbereichskontext
VS Code verwendet intelligente Suchstrategien, um den relevantesten Code für Ihre Fragen zu finden. Anstatt einen einzigen Ansatz zu verwenden, wählt es automatisch die beste Methode basierend auf Ihrer Projektgröße und den verfügbaren Ressourcen aus. VS Code kann mehrere Strategien parallel ausführen und dann diejenige auswählen, die die besten Ergebnisse am schnellsten liefert.
Welche Quellen werden für den Kontext verwendet?
Der Arbeitsbereichskontext durchsucht dieselben Quellen, die ein Entwickler beim Navigieren einer Codebasis in VS Code verwenden würde
- Alle indizierbaren Dateien im Arbeitsbereich (Arbeitsbereichsindex), außer denen, die von einer
.gitignore-Datei ignoriert werden - Verzeichnisstruktur mit verschachtelten Ordnern und Dateinamen
- Codesymbole und Definitionen (Klassen, Funktionen, Variablen)
- Aktuell ausgewählter oder sichtbarer Text im aktiven Editor
Der Arbeitsbereichsindex kann remote von GitHub verwaltet oder lokal auf Ihrem Rechner gespeichert werden. Weitere Details finden Sie im Abschnitt Arbeitsbereichsindex.
.gitignore wird umgangen, wenn Sie eine Datei geöffnet haben oder Text in einer ignorierten Datei ausgewählt haben.
Suchstrategie
Bei kleinen Projekten kann der gesamte Arbeitsbereich direkt in den Chat-Kontext aufgenommen werden. Bei größeren Projekten verwendet VS Code verschiedene Strategien, um die relevantesten Informationen für Ihren Prompt in den Chat-Kontext aufzunehmen.
Die folgenden Schritte beschreiben, wie VS Code den Arbeitsbereichskontext erstellt
-
Ermitteln Sie, welche Informationen aus dem Arbeitsbereich zur Beantwortung Ihrer Frage benötigt werden, einschließlich des Gesprächsverlaufs, der Arbeitsbereichsstruktur und der aktuellen Editorauswahl.
-
Sammeln Sie relevante Code-Schnipsel aus dem Arbeitsbereichsindex mit verschiedenen Ansätzen
- GitHubs Code-Suche
- Lokale semantische Suche, um Code zu finden, der der Bedeutung Ihrer Frage entspricht, nicht nur exakte Schlüsselwörter
- Textbasierte Suche nach Dateinamen und Inhalten
- VS Codes Sprachintelligenz, um Details wie Funktionssignaturen, Parameter und mehr hinzuzufügen.
-
Wenn der resultierende Kontext zu groß ist, um in das Kontextfenster zu passen, werden nur die relevantesten Teile beibehalten.
Arbeitsbereichsindex
Chat in VS Code verwendet einen Index, um Ihre Codebasis schnell und präzise nach relevanten Code-Schnipseln zu durchsuchen. Dieser Index kann entweder von GitHub verwaltet oder lokal auf Ihrem Rechner gespeichert werden.
Der Remote-Index wird aus dem committeten Zustand Ihres Repositorys auf GitHub oder Azure DevOps erstellt. Das bedeutet, dass nicht committete Änderungen in Ihrem lokalen Arbeitsbereich nicht im Remote-Index enthalten sind.
Wenn Sie lokale, nicht committete Änderungen haben, verwendet VS Code einen hybriden Ansatz, der den Remote-Index mit lokaler Dateiverfolgung kombiniert. VS Code erkennt, welche Dateien seit dem indizierten Commit geändert wurden, und liest auch den aktuellen Dateiinhalt aus dem Editor für Echtzeit-Inhalte.
Den Typ des verwendeten Index und seinen Indizierungsstatus können Sie im Copilot-Status-Dashboard in der VS Code Statusleiste anzeigen.

Remote-Index
VS Code kann Remote-Code-Suchindizes verwenden, um KI die schnelle Suche in Ihrer Codebasis zu ermöglichen, selbst bei großen Codebasen. Die Remote-Code-Suche ist derzeit für Arbeitsbereiche verfügbar, die GitHub- oder Azure DevOps-Repositorys verwenden.
GitHub Remote-Indizierung
VS Code erstellt und verwendet automatisch Remote-Code-Suchindizes für alle GitHub-basierten Repositorys in Ihrem Arbeitsbereich. Melden Sie sich mit Ihrem GitHub-Konto in VS Code an, und der Chat beginnt automatisch mit der Verwendung aller verfügbaren Remote-Code-Suchindizes.
Repositorys werden automatisch indiziert, wenn @workspace oder #codebase zum ersten Mal im Chat verwendet wird. Sie können die Indizierung auch erzwingen, indem Sie den Befehl Remote-Arbeitsbereichsindex erstellen in der Befehlspalette ausführen (⇧⌘P (Windows, Linux Ctrl+Shift+P)).
Der Index muss nur einmal pro Repository erstellt werden. Danach wird der Index automatisch auf dem neuesten Stand gehalten. Das Erstellen des Index ist schnell für kleine und mittelgroße Projekte, kann aber etwas dauern, wenn Ihr Repository Hunderttausende von Dateien enthält. Der Remote-Index funktioniert am besten, wenn GitHub eine relativ aktuelle Version Ihres Codes hat. Stellen Sie also sicher, dass Sie Ihren Code regelmäßig nach GitHub pushen.
Derzeit funktioniert die Remote-Indizierung für GitHub-Repositorys, die auf GitHub.com oder GitHub Enterprise Cloud gehostet werden. Sie wird nicht für Repositorys unterstützt, die GitHub Enterprise Server verwenden.
Azure DevOps Remote-Indizierung
VS Code kann auch Remote-Indizes für Azure DevOps-Repositorys verwenden. Diese Indizes werden automatisch erstellt und verwaltet. Melden Sie sich mit Ihrem Microsoft-Konto in VS Code an, damit der Chat die Remote-Indizes verwenden kann. Überprüfen Sie das Copilot-Statusleistenelement auf den aktuellen Indexstatus und erhalten Sie einen Anmeldelink, wenn Ihr Konto nicht über die erforderlichen Berechtigungen für den Zugriff auf das Azure DevOps-Repository verfügt.
Lokaler Index
Wenn Sie keinen Remote-Index verwenden können, zum Beispiel weil Sie kein GitHub- oder Azure DevOps-Repository verwenden, kann VS Code einen erweiterten semantischen Index verwenden, der lokal auf Ihrem Rechner gespeichert wird, um schnelle, qualitativ hochwertige Suchergebnisse zu liefern. Derzeit sind lokale Indizes auf 2500 indizierbare Dateien beschränkt.
So erstellen Sie einen lokalen Index
-
Das Projekt hat weniger als 750 indizierbare Dateien: VS Code erstellt automatisch einen erweiterten lokalen Index.
-
Das Projekt hat zwischen 750 und 2500 indizierbare Dateien: Führen Sie den Befehl Lokalen Arbeitsbereichsindex erstellen in der Befehlspalette aus (⇧⌘P (Windows, Linux Ctrl+Shift+P)) – dies sollte nur einmal ausgeführt werden.
-
Das Projekt hat mehr als 2500 indizierbare Dateien: Verwenden Sie einen einfachen Index.
Das Erstellen des anfänglichen lokalen Index oder das Aktualisieren des Index bei vielen geänderten Dateien, z. B. beim Wechseln von Git-Branches, kann einige Zeit dauern. Sie können den aktuellen lokalen Indexstatus im Copilot-Status-Dashboard in der Statusleiste überwachen.
Einfacher Index
Wenn Ihr Projekt keinen Remote-Index hat und mehr als 2500 indizierbare Dateien enthält, greift VS Code auf einen einfachen Index zurück, um Ihre Codebasis zu durchsuchen. Dieser Index verwendet einfachere Algorithmen, um Ihre Codebasis zu durchsuchen, und ist für die lokale Arbeit mit größeren Codebasen optimiert.
Der einfache Index sollte für viele Arten von Chat-Prompts gut funktionieren. Wenn Sie jedoch feststellen, dass der Chat Schwierigkeiten hat, relevante Antworten auf Fragen zu Ihrer Codebasis zu liefern, sollten Sie ein Upgrade auf einen Remote-Index in Betracht ziehen.
Welcher Inhalt ist im Arbeitsbereichsindex enthalten
VS Code indiziert relevante Textdateien, die Teil Ihres aktuellen Projekts sind. Dies ist nicht auf bestimmte Dateitypen oder Programmiersprachen beschränkt, VS Code überspringt jedoch automatisch einige gängige Dateitypen, die normalerweise für Arbeitsbereichsfragen nicht relevant sind, wie z. B. .tmp- oder .out-Dateien.
Der Arbeitsbereichsindex schließt auch alle Dateien aus, die von VS Code über die Einstellung files.exclude ausgeschlossen sind oder die Teil der .gitignore-Datei sind.
VS Code indiziert derzeit auch keine Binärdateien wie Bilder oder PDFs.
Verwenden Sie den Arbeitsbereichskontext im Chat
Wenn Sie eine arbeitsbereichsbezogene Frage im Chat stellen, hängt das Verhalten zur Bestimmung des Arbeitsbereichskontexts davon ab, welchen Agenten Sie verwenden
-
Agent/Plan
Wenn Sie Agenten verwenden, führt der Agent basierend auf Ihrem Prompt automatisch eine *agentische* Codebasis-Suche durch. Das bedeutet, dass der Agent nach einer anfänglichen Suche zur Bestimmung des Arbeitsbereichskontexts möglicherweise weitere, gezieltere Suchen durchführt, um die Informationen zu sammeln, die er zur Beantwortung Ihrer Frage benötigt.
Sie müssen das Tool
#codebasenicht explizit in Ihrem Prompt referenzieren, können dies aber tun, wenn Sie sicherstellen möchten, dass der Arbeitsbereichskontext für Ihre Frage verwendet wird. Dies ist nützlich, wenn Ihr Prompt mehrdeutig ist und möglicherweise so interpretiert wird, dass kein Arbeitsbereichskontext benötigt wird. -
Fragen/Bearbeiten
In "Fragen" oder "Bearbeiten" führt VS Code eine Absichtserkennung für Ihren Prompt durch, um festzustellen, ob er Arbeitsbereichskontext benötigt. Wenn Arbeitsbereichskontext benötigt wird, führt VS Code eine Codebasis-Suche durch und fügt die relevanten Code-Schnipsel zum Chat-Kontext hinzu. Im Gegensatz zur Verwendung von Agenten werden keine Folge-Suchen durchgeführt.
Sie müssen das Tool
#codebasenicht explizit in Ihrem Prompt referenzieren, können dies aber tun, wenn Sie sicherstellen möchten, dass der Arbeitsbereichskontext für Ihre Frage verwendet wird. Dies ist nützlich, wenn Ihr Prompt mehrdeutig ist und möglicherweise so interpretiert wird, dass kein Arbeitsbereichskontext benötigt wird.
Tipps zur Verwendung des Arbeitsbereichskontexts
Die Art und Weise, wie Sie Ihre Frage formulieren, kann die Qualität des Kontexts und die Genauigkeit der Antwort erheblich beeinflussen. Um die Ergebnisse zu optimieren, beachten Sie folgende Tipps
- Seien Sie spezifisch und detailliert in Ihrer Frage, vermeiden Sie vage oder mehrdeutige Begriffe wie "was macht das", wobei "das" als die letzte Antwort, die aktuelle Datei oder das gesamte Projekt interpretiert werden könnte.
- Integrieren Sie Begriffe und Konzepte in Ihren Prompt, die wahrscheinlich in Ihrem Code oder seiner Dokumentation vorkommen.
- Fügen Sie explizit relevanten Kontext hinzu, indem Sie Code auswählen, Dateien referenzieren oder #-Kontextelemente erwähnen, wie z. B. Debug-Kontext, Terminalausgabe und mehr.
- Antworten können aus mehreren Referenzen stammen, z. B. "Finden Sie Ausnahmen ohne Catch-Block" oder "Geben Sie Beispiele dafür, wie handleError aufgerufen wird". Erwarten Sie jedoch keine umfassende Codeanalyse über Ihre gesamte Codebasis, wie z. B. "Wie oft wird diese Funktion aufgerufen?" oder "Beheben Sie alle Fehler in diesem Projekt".
- Wenn Sie nach Informationen außerhalb des Codes fragen, wie z. B. "Wer hat zu dieser Datei beigetragen?" oder "Fassen Sie Review-Kommentare für diesen Ordner zusammen", stellen Sie sicher, dass Sie die entsprechenden Tools oder MCP-Server konfigurieren, wenn Sie Agenten verwenden.
Private Repositories
Um erweiterte Suchfunktionen für private Repositorys zu ermöglichen, benötigen wir zusätzliche Berechtigungen. Wenn wir feststellen, dass wir diese Berechtigungen noch nicht haben, werden wir sie beim Start anfordern. Sobald sie gewährt wurden, werden wir die Sitzung sicher für die Zukunft speichern.

Erfahren Sie mehr über Sicherheit, Datenschutz und Transparenz im GitHub Copilot Trust Center.
Häufig gestellte Fragen
Was ist der Unterschied zwischen @workspace und #codebase?
Konzeptionell ermöglichen sowohl @workspace als auch #codebase Ihnen, Fragen zu Ihrer gesamten Codebasis zu stellen. Es gibt jedoch einige Unterschiede in der Art und Weise, wie Sie sie verwenden können
-
@workspaceist ein Chat-TeilnehmerDer
@workspace-Teilnehmer ist ein Fachexperte, der sich auf die Beantwortung von Fragen zu Ihrer Codebasis spezialisiert hat. Das Sprachmodell übergibt den gesamten Chat-Prompt an den Teilnehmer, der sein Wissen über die Codebasis nutzt, um eine Antwort zu geben. Das Sprachmodell kann keine zusätzlichen Verarbeitungen durchführen oder andere Tools aufrufen, wenn ein Chat-Teilnehmer verwendet wird. Ein Chat-Prompt kann nur einen Chat-Teilnehmer enthalten. -
#codebaseist ein Chat-ToolDas
#codebase-Tool ist auf die Suche nach relevanten Informationen in Ihrer Codebasis spezialisiert. Es ist eines von vielen Tools, die das Sprachmodell zur Beantwortung Ihres Chat-Prompts aufrufen kann. Das Sprachmodell kann entscheiden, das#codebase-Tool mehrmals aufzurufen, abwechselnd mit anderen Tools, um die Informationen zu sammeln, die es zur Beantwortung Ihrer Frage benötigt. Ein Chat-Prompt kann mehrere Tools enthalten.
Es wird empfohlen, #codebase in Ihren Chat-Prompts zu verwenden, da dies mehr Flexibilität bietet.