Schnellstart: Verwenden des GitHub-Copilot-Agent-Modus

Im Agentmodus kann GitHub Copilot die von der MSSQL-Erweiterung für Visual Studio Code bereitgestellten Tools orchestrieren. Wenn die Erweiterung installiert und aktiv ist, kann GitHub Copilot Microsoft SQL Server Verbindungen auflisten, eine Verbindung mit einem Server und einer Datenbank herstellen, Schemametadaten abrufen und Abfragen ausführen, alles aus Anweisungen in natürlicher Sprache, mit Ihrer Genehmigung für jede Aktion.

Alle Aktionen verwenden denselben Verbindungskontext und dieselben Anmeldeinformationen wie die MSSQL-Erweiterung. Der Agentmodus führt keine weiteren Authentifizierungs- oder Berechtigungsänderungen ein.

Tip

Verwenden Sie den Agentmodus für mehrstufige Arbeitsabläufe, umfangreiche Erkundungen und delegierte Änderungen. Verwenden Sie Fragemodus, wenn Sie eine einzelne Antwort oder eine einmalige Abfrage benötigen. Verwenden Sie den Planungsmodus, wenn Sie vor dem Schreiben von Transact-SQL (T-SQL)-Data Definition Language (DDL) einen Entwurf durchdenken müssen.

Wichtige Erkenntnisse

  • Der Agentmodus nimmt MSSQL-Erweiterungstools automatisch auf. Keine @mssql Nennung erforderlich.
  • Jeder Toolaufruf erfordert Ihre Genehmigung vor der Ausführung.
  • Der Agentmodus ist über seine Tools schemafähig : Jeder Toolaufruf gibt echte Daten aus Ihrer verbundenen Datenbank zurück.
  • Informationen zum Architekturkontext auf allen Oberflächen finden Sie unter How GitHub Copilot works with the MSSQL extension.

Wann der Agentmodus verwendet werden sollte

Der Agentmodus eignet sich am besten für:

  • Mehrstufige Workflows. Stelle eine Verbindung mit LocalDev her, wechsle zu AdventureWorks und zeige mir dann jede Tabelle mit einem Fremdschlüssel auf Customer.
  • Erkundung in großem Maßstab. "Suchen Sie alle gespeicherten Prozeduren, die auf SalesOrderHeader verweisen, und fassen Sie zusammen, was jeder tut."
  • Delegierte Änderungen. "Fügen Sie jeder Tabelle im Schema "Vertrieb" Überwachungsspalten hinzu, und generieren Sie die zugehörigen gespeicherten Prozeduren neu."

Verwenden Sie den Ask-Modus , wenn eine einzelne Frage oder eine Einzelabfrage Ihren Bedarf beantwortet. Verwenden Sie Schrägstrichbefehle , wenn Sie bereits wissen, welche Aktion Sie verwenden möchten. Verwenden Sie den Planmodus , wenn Sie einen schriftlichen Plan vor Änderungen wünschen.

Ausführliche Informationen dazu, wie der Agentmodus Tools auswählt und ausführt, finden Sie in der Visual Studio Code Dokumentation zum Agentmodus.

Was ist der Agentmodus?

Im Agentmodus kann GitHub Copilot SQL-bezogene Aktionen mithilfe der MSSQL-Erweiterung ausführen, und die Benutzerbestätigung ist vor der Ausführung erforderlich.

Sie können diese Aktionen aufrufen, indem Sie Chatvariablen wie #mssql_connectz. B. oder entsprechende Anforderungen in natürlicher Sprache ausgeben, z. B.:

Connect to my Library database using my LocalDev profile

Screenshot der Chatoberfläche des GitHub Copilot Agent Mode.

MSSQL-Agentmodus-Toolreferenz

Dieser Abschnitt enthält eine detaillierte Referenz zu den SQL-spezifischen Tools, die im GitHub Copilot Agent Mode verfügbar sind. Die MSSQL-Erweiterung trägt diese Tools bei, sodass GitHub Copilot Aktionen über Chatvariablen oder Aufforderungen in natürlicher Sprache ausführt. Alle Tools erfordern eine Benutzerbestätigung vor der Ausführung.

Screenshot von der Liste der SQL-spezifischen Tools, die von der MSSQL-Erweiterung im Copilot Agent Mode bereitgestellt werden.

Tip

Sie können auch Chatvariablen wie #mssql_connect verwenden, um diese Tools direkt aufzurufen oder Eingabeaufforderungen in natürlicher Sprache zu schreiben, zum Beispiel, indem Sie Aufforderungen in natürlicher Sprache schreiben:

Connect to my development database

GitHub Copilot behandelt die Toolauswahl automatisch.

Verbindungsverwaltung

TPoolname Description
connect Stellt eine Verbindung zu einer Datenbank mithilfe eines gespeicherten Verbindungsprofils oder eines angegebenen Servers und einer angegebenen Datenbank her.
disconnect Beendet die aktuelle aktive Verbindungssitzung.
change_database Ändert die Datenbank für eine vorhandene Verbindungssitzung.
get_connection_details Ruft Verbindungsdetails für eine bestimmte MSSQL-Verbindung ab.
list_servers Listet alle gespeicherten SQL Server-Verbindungsprofile in Ihrer Umgebung auf.
list_databases Listet alle verfügbaren Datenbanken für einen verbundenen MSSQL-Server auf.

Examples

Verwenden Sie die folgenden Ausdrücke, um mit GitHub Copilot zu interagieren.

- Connect to my LocalDev environment
- Disconnect from my current database
- List my available connection profiles
- List all databases in the localhost server
- Set the active connection to localhost
- Set AdventureWorks as the active database
- Get the connection string for AdventureWorks on localhost

Screenshot eines Beispiels mit einem Agent-Tool zum Herstellen einer Verbindung mit einer Datenbank im GitHub Copilot-Chat.

Funktionsweise der Verbindungslogik

Der GitHub Copilot Agent Mode unterstützt flexible Methoden zum Herstellen einer Verbindung mit Ihrer SQL-Datenbank, entweder durch Verweisen auf gespeicherte Profile oder durch direkte Angabe eines Servers und einer Datenbank. Hier erfahren Sie, wie die Verbindungslogik funktioniert.

Wenn Sie eine Verbindung mit einem gespeicherten Profil herstellen:

  1. Sie stellen eine Verbindung her, indem Sie auf den Namen eines gespeicherten Verbindungsprofils verweisen.
  2. GitHub Copilot verwendet das mssql_list_servers Tool, um zu überprüfen, ob das Profil vorhanden ist.
  3. Das mssql_connect Tool verwendet dann die gespeicherten profileId und zugehörigen Parameter, um die Verbindung herzustellen.

Wenn Sie eine Verbindung herstellen, indem Sie einen Server und eine Datenbank angeben:

  • Wenn ein gespeichertes Profil mit dem angegebenen Server und der angegebenen Datenbank übereinstimmt:

    1. GitHub Copilot verwendet mssql_list_servers , um die Übereinstimmung zu finden.
    2. Anschließend wird mssql_connect mit dem vollständigen Profil aufgerufen.
  • Wenn ein gespeichertes Profil nur mit dem Server übereinstimmt:

    1. GitHub Copilot findet das entsprechende Serverprofil.
    2. Es wird versucht, eine Verbindung herzustellen, indem die vom Benutzer angeforderte Datenbank in dieses Profil eingefügt wird.
    3. Wenn die Verbindung fehlschlägt, wird ein Fehler angezeigt.
  • Wenn kein Profil mit dem angegebenen Server übereinstimmt:

    • GitHub Copilot meldet einen Fehler.

Dieses flexible Abgleichssystem ermöglicht es GitHub Copilot, verschiedene Verbindungsszenarien zu verarbeiten. Dadurch wird der Benutzeraufwand minimiert, während sichere, bestätigbare Aktionen sichergestellt werden.

Schema-Untersuchung

TPoolname Description
show_schema Zeigt ein allgemeines Diagramm ihres verbundenen Datenbankschemas an, einschließlich Tabellen und Beziehungen.
list_schemas Listet alle Schemas in einer Datenbank für einen verbundenen MSSQL-Server auf.
list_tables Listet alle Tabellen in einer Datenbank für einen verbundenen MSSQL-Server auf.
list_views Listet alle Ansichten in einer Datenbank für einen verbundenen MSSQL-Server auf.
list_functions Listet alle Funktionen in einer Datenbank für einen verbundenen MSSQL-Server auf.

Examples

Verwenden Sie die folgenden Ausdrücke, um mit GitHub Copilot zu interagieren.

- Show me the schema for this database
- Show me all tables in the current database
- List all views from this MSSQL database
- Give me a list of all the functions available in this schema
- What schemas are available in this database?

Screenshot einer Animation, die das Datenbankschema-Visualisierungswerkzeug im Copilot-Agent-Modus zeigt.

Abfrageausführung

TPoolname Description
run_query Führt eine SQL-Abfrage für die verbundene Datenbank aus.

Examples

Verwenden Sie die folgenden Ausdrücke, um mit GitHub Copilot zu interagieren.

- Give me the top five posts published this week
- Execute the current file to find how many comments each post has
- Get all categories along with the number of posts in each

Screenshot eines Beispiels mit einem Agenttool zum Herstellen einer Verbindung mit einer Datenbank und Abrufen von Daten.

Screenshot eines weiteren Beispiels mit einem Agenttool zum Herstellen einer Verbindung mit einer Datenbank und Abrufen von Daten.

Wie Tools im Agentmodus verwaltet werden

GitHub Copilot kann MSSQL-spezifische Tools und andere von der Erweiterung bereitgestellte Tools nutzen, während es Ihre Anforderung verarbeitet. Sie können diese Tools in der Agentmodus-Schnittstelle im Menü "Extras " sehen, wo Sie auch bestimmte Tools aktivieren oder deaktivieren können.

Wenn Sie ein Tool aufrufen, insbesondere wenn es mit Ihrem Computer oder Ihrer Datenbank interagiert, fordert GitHub Copilot eine Bestätigung auf, um eine sichere Ausführung sicherzustellen. Sie können das Tool nur für die aktuelle Sitzung, den Arbeitsbereich oder dauerhaft zulassen.

Weitere Informationen zur Sichtbarkeit und Genehmigung von Tools finden Sie unter Verwalten von Toolgenehmigungen.

Bestätigungsworkflow für den Agentmodus

Wenn GitHub Copilot ein Tool auswählt, werden Sie mit einem Bestätigungsdialogfeld aufgefordert, in dem Details zur angeforderten Aktion angezeigt werden. Sie müssen die Anforderung explizit genehmigen, bevor sie alle Befehle ausführen kann, die mit Ihrem Computer oder Ihrer Datenbank interagieren:

  • Zulassen in dieser Sitzung
  • In diesem Arbeitsbereich zulassen
  • Immer zulassen

Dieser Bestätigungsschritt trägt dazu bei, sichere, absichtliche Interaktionen mit Ihrer Entwicklungsumgebung sicherzustellen.

Note

Weitere Informationen dazu, wie die Bestätigung für alle Tools im Agentmodus funktioniert, finden Sie in der Visual Studio Code-Dokumentation zu Toolgenehmigungen.

Promptkatalog für den Agentenmodus

Verwenden Sie diese Anweisungen in natürlicher Sprache, um MSSQL-Erweiterungstools über den Agentmodus aufzurufen. Für jede Kategorie ist ein entsprechender Slash-Befehl oder Prompt im Fragmodus als Querverweis angegeben.

Verbindungsverwaltung

Connect to my LocalDev profile and set AdventureWorks as the active database.
List all my saved connection profiles and tell me which one I'm currently connected to.
Disconnect from my current database.

Entsprechende Schrägstrichbefehle: /connect, /listServers, /changeDatabase, /disconnect.

Schema-Untersuchung

Show me every table in the SalesLT schema, grouped by whether they're
referenced by a foreign key from another table.
Find all stored procedures that reference SalesLT.SalesOrderHeader and
summarize what each one does in one sentence.
Which tables in the current database have no primary key?

Äquivalente fragen Aufforderungen: siehe Mit dem @mssql Teilnehmer chatten.

Abfrageausführung

Run a query to count the number of active customers in SalesLT.Customer,
then show me the top 10 by order total.
Show me the execution plan for this query: SELECT ... FROM ...
Execute the last query I ran against my Dev database instead.

Mehrstufige Workflows

Connect to LocalDev, switch to AdventureWorks, list all tables with a
foreign key to SalesLT.Customer, and save the list to a file called
customer-dependents.md.
Find every stored procedure that uses dynamic SQL and open each one
in a new editor tab so I can review them.

Delegierte Schemaänderungen

Note

Schemaänderungen eignen sich gut dafür, zunächst im Planmodus ausgeführt zu werden. Planen Sie die Änderungen, überprüfen Sie sie, und übergeben Sie dann den Plan zum Agentmodus für die Ausführung.

Add createdAt and updatedAt audit columns to every table in the Sales
schema that doesn't already have them. Use DATETIME2(7) with a default
of GETUTCDATE().
Regenerate every stored procedure that inserts into SalesLT.Customer
to include the new email column.