Använd GitHub Copilot agentläge (förhandsversion) i SQL Server Management Studio

GitHub Copilot agentläge (förhandsversion) i SQL Server Management Studio (SSMS) kan du ange ett mål på hög nivå på naturligt språk och få Copilot arbeta igenom det genom att köra frågor, läsa filer och iterera på sina egna utdata tills uppgiften har slutförts eller dina indata behövs.

Anmärkning

GitHub Copilot agentläget i SQL Server Management Studio (SSMS) är för närvarande i förhandsversion.

Till skillnad från Ask-läget, som stoppas efter ett enda svar, fortsätter agentläget att köra steg, anropa verktyg och förfina sin metod tills den når ditt mål. Alla frågor och kommandon körs i kontexten för användarens inloggning och behörigheter, såvida inte en anpassad databasanvändare eller SQL-inloggning anges i den främre delen av databasens CONSTITUTION.md. Mer information finns i Execution-kontext för GitHub Copilot i SQL Server Management Studio.

Important

Agentläget kan köra frågor och göra databasändringar åt dig. Copilot begär ditt godkännande innan du kör varje fråga eller kommando. Granska de föreslagna åtgärderna noggrant innan du godkänner dem. Tillämpa åtkomstkontroll med hjälp av SQL Servers behörigheter enligt principen om minsta privilegium. Säkerhetsgränsen är SQL Servers tillämpning av behörigheter, inte Copilots system för godkännande.

Ask-läge jämfört med agentläge

Använd följande tabell för att bestämma vilket läge som passar din uppgift:

Ask-läge Agentläge
Så här fungerar det Enskilt svar per fråga; du tillämpar kod manuellt Körning i flera steg; itererar tills målet har nåtts
Avrättning Skrivskyddade frågor Frågor och kommandon körs med ditt godkännande
Schemaändringar Genererar T-SQL som du kan köra Kan köra schemaändringar om du godkänner dem och inloggningen har behörighet
Bäst för Utforska idéer, granska genererad kod innan du tillämpar Komplexa uppgifter i flera steg, undersökning, analys och iterativ utveckling
Avbrott Enkelt svar, du kan avbryta när som helst Du kan när som helst avbryta

Förutsättningar

Använda agentläge

I agentläge fungerar Copilot självständigt och avgör relevant kontext för din fråga. Agentläge för GitHub Copilot i SSMS använder en lokal MCP-server, sql-tools för dess integrering och levereras med en fördefinierad uppsättning verktyg.

  1. I SSMS väljer du View>GitHub Copilot Chat för att öppna chattfönstret.
  2. Längst ned i chattfönstret expanderar du listrutan läge och väljer Agent.
  3. Längst ned till höger i chattfönstret väljer du ikonen Verktyg för att se tillgängliga verktyg.
  4. Expandera sql-tools för att se de fördefinierade verktygen. Hovra över verktygsnamnet om du vill veta mer om vad det gör. Om du avmarkerar alla verktyg fungerar inte agentläget som förväntat.
  5. Du kan inte inaktivera SSMS listan över verktyg.
  6. Ange din fråga som beskriver målet på hög nivå och ta med namnet på databasen eller servern som du arbetar mot. Agentläget ärver inte kontexten från den aktiva frågeredigeraren.

Important

Ta med databasen eller servern i prompten för bästa resultat. Den här inkluderingen minskar tvetydigheten och antalet verktygsanrop. Om du inte inkluderar anslutningsinformation läser Copilot din anslutningslista för att identifiera en anslutning som ska användas eller ber om förtydligande om vilken databas eller server som ska användas.

  1. Om du vill skicka din fråga väljer du Skicka eller tryck på Retur.

    Exempel på uppmaningar om att komma igång:

    - In the WideWorldImporters database on the SalesPRD server, analyze the `Sales.usp_QuarterlySalesSummary` stored procedure and its execution plan and tell me how to improve it
    - The AdventureWorks database on the SalesPRD server had high CPU between 1PM and 2PM today, investigate what caused it
    - Find the SQL Agent jobs on the SalesPRD server that failed in the last 24 hours, analyze the history and explain what happened and how to fix the jobs
    
  2. Agentläget kan anropa flera verktyg för att slutföra din begäran. Till exempel när du läser schemainformation, genererar Transact-SQL och analyserar resultat. Det aktiva verktyget visas i chatten när varje steg körs.

  3. När Copilot är redo att köra en fråga eller ett kommando pausar den och ber om ditt godkännande. Granska den föreslagna åtgärden och välj sedan Tillåt att fortsätta eller Stäng för att hoppa över det steget.

    Du kan konfigurera godkännandets omfattning med hjälp av listrutan Tillåt :

    Option Effect
    Tillåt en gång Godkänner det här enskilda anropet
    Tillåt för den här sessionen Godkänner det här verktyget för resten av den aktuella chattsessionen
    Tillåt alltid Godkänner det här verktyget för alla efterföljande anrop

    Om du vill återställa inställningarna för verktygsgodkännande går du till Tools>Options>GitHub>Copilot>Tools.

  4. Copilot övervakar resultatet av varje steg. Om en fråga returnerar ett fel eller ett resultat som inte uppfyller målet ändrar Copilot sin metod och försöker igen automatiskt.

  5. När uppgiften är klar sammanfattar Copilot vad den gjorde. Granska eventuella ändringar som tillämpas på databasen eller frågeredigeraren.

Förstå verktyg för agentläge

I agentläge kan Copilot använda följande verktyg för att slutföra din begäran:

Anmärkning

Agentläget fungerar bara med databaser och objekt som du kan komma åt eller ansluta till, eller med hjälp av autentiseringsuppgifter i databasfilen CONSTITUTION.md . Den har inte utökade behörigheter utöver de som dina autentiseringsuppgifter redan har.

Om du vill visa och hantera de verktyg som är tillgängliga i agentläge väljer du ikonen Verktyg i chattfönstret. Baserat på resultatet av ett verktyg kan Copilot anropa andra verktyg för att utföra den övergripande begäran. Om en T-SQL-kodredigering till exempel resulterar i ett syntaxfel kan Copilot utforska en annan metod och föreslå en annan ändring.

Du kan också utöka agentläget med MCP-servrar för att ansluta Copilot till externa verktyg och tjänster. Verktygen som är tillgängliga för en MCP-server aktiveras inte automatiskt. Deras kryssrutor avmarkeras som standard och du måste välja dem för att aktivera verktygen.

Hantera verktygsgodkännanden

Copilot begär bekräftelse innan du kör en fråga eller anropar ett externt verktyg. Det här steget skyddar dig från oavsiktliga ändringar. Som standard kräver varje åtgärd ett uttryckligt godkännande.

När du godkänner ett verktyg använder du listrutan Tillåt för att ange beständighet:

  • Tillåt för den här sessionen: inga ytterligare frågor om verktyget i den aktuella chattsessionen
  • Tillåt alltid: sparas mellan sessioner för verktyget

Om du vill granska och återställa godkännanden går du till Tools>Options>GitHub>Copilot>Tools.

Acceptera eller ignorera redigeringar

När agentläget tillämpar ändringar för att öppna filer visas en sammanfattning av totalt antal ändringar i chattfönstret. Välj varje fil för att granska ändringarna individuellt. Du kan behålla eller ångra ändringar som gjorts i varje kodavsnitt med hjälp av knapparna Behåll och Ångra . I listan Totalt antal ändringar kan du också välja Behåll eller Ångra för alla ändringar som gjorts sedan den senaste gången du valde Behåll eller Ångra.

Sammanfattningsvy för flera filer

Från och med SSMS 22.6, när Copilot redigerar flera filer, kan du granska alla ändringar i en enda sammanfattningsvy i stället för att växla mellan filer individuellt.

  1. När Copilot har slutfört redigeringen väljer du knappen Öppna ändringar i sammanfattningsvyn i Copilot Chat arbetsuppsättning.
  2. En enskild flik öppnas som visar alla ändrade filer med skillnaderna i listan.
  3. Du kan acceptera eller ångra ändringar på olika detaljnivåer:
  • För alla filer samtidigt, med de globala knapparna Behåll filer och Ångra filer.
  • För varje fil med knapparna Behåll alla ändringar och Ångra alla .
  • För varje enskild kodändring använder du Behåll (Ctrl + Y) och Ångra (Ctrl + N).
  1. Använd kontrollerna i det övre vänstra hörnet i fönstret för att:
  • Dölj allt filinnehåll om du bara vill se filhuvuden för en snabb översikt
  • Navigera mellan olika segment med hjälp av nästa och föregående knappar för att snabbt gå igenom ändringar Du kan också välja valfri fil för att öppna den separat och se dess fullständiga kontext.

Avbryta en begäran om agentläge

Om du vill stoppa en pågående begäran om agentläge när som helst väljer du Avbryt i chattfönstret. Att avbryta stoppar alla verktyg som körs och frågor som väntar. Förfrågningar som redan har körts och godkänts återställs inte automatiskt. Kontrollera databasens status efter att du har avbrutit en flerstegsåtgärd, vid behov.

Scenarios

I följande exempel visas hur agentläget hanterar vanliga SQL Server uppgifter. De här exemplen är representativa uppmaningar. Anpassa dem till din databas och dina mål.

Skapa och testa en lagrad procedur

Within the WideWorldImporters database on the PRD-Sales server, create a stored procedure named Sales.GetTopCustomers that accepts a date range and a row count, and returns the top N customers by total order value in that date range. Include error handling and test it with sample parameters.

Agentläget läser schemat för databasen för att identifiera lämpliga tabeller, utarbetar den lagrade proceduren, kör -instruktionen CREATE PROCEDURE och kör sedan en testkörning med exempelparametrar för att verifiera utdata.

Optimera frågeprestanda

The query in the active editor, connected to AdventureWorks on the TEST-AW server is running slowly. Analyze its execution plan and suggest options to improve performance.

Agentläget kan generera en uppskattad körningsplan för din fråga, använda Query Store för att hitta planen eller använda en faktisk plan om du inkluderar den som referens. Den identifierar antimönster i frågan och körplanerna, inklusive saknade index. Den föreslår specifika kod- och schemaändringar, inklusive CREATE INDEX instruktioner, och kan implementera ändringarna om du godkänner det. Implementera alltid ändringar i en test- eller utvecklingsmiljö innan du tillämpar dem på en produktionsdatabas.

Undersöka loggar

Analyze the SQL ERRORLOG for the PRD-HR server for the last month and give me a list of errors and problems and solutions for fixing them.

Agentläget granskar ERRORLOG-filerna för instansen, skapar en lista över identifierade problem och genererar förslag på lösning.

Granska och åtgärda behörighetsluckor

Review the permissions for the Reporting role in the CustomerSales database on the PRD-Sales server and identify any tables in the Sales schema that it can't access. Add the missing SELECT permissions.

Agentläget frågar behörighetskatalogvyerna, identifierar luckor, genererar GRANT instruktioner och kör dem om du godkänner det.

Körningskontext och behörigheter

Alla frågor och kommandon som agentläget kör körs i kontexten för ditt autentiserade konto, såvida du inte anger en databasanvändare eller SQL-inloggning för GitHub Copilot i databasens CONSTITUTION.md som agentExecuteAsUser.

  • Om inloggningen inte har behörighet att ändra en tabell kan agentläget inte heller ändra den, även om du godkänner den föreslagna frågan.
  • Copilots system för godkännande är inte en säkerhetsgräns. Tillämpa principen om lägsta behörighet i databasen: ge användarna endast de behörigheter de behöver för specifika objekt.
  • Databaser där du vill ange en databasanvändare eller SQL-inloggning finns i Execution-kontext för GitHub Copilot i SQL Server Management Studio.
  • Om en databasanvändare eller SQL-inloggning har tilldelats en databas och användaren av GitHub Copilot inte har behörigheten IMPERSONATE, kan de inte använda GitHub Copilot för den databasen.

Agentläget är som standard konfigurerat som READ_ONLY. Om din inloggning, eller agentExecuteAsUser konto, har behörighet att ändra data eller databasschemat, kör GitHub Copilot inte dessa frågor som standard.

Du kan ändra agentläget till READ_WRITE i filen mcp.json. Men om din inloggning eller agentExecuteAsUser ditt konto inte har behörighet att ändra data eller databasschemat misslyckas sådana frågor på grund av SQL-säkerhetsbehörigheter.

Vanliga frågor och svar

Kör agentläget frågor automatiskt utan att fråga mig?

No. Agentläget begär ditt godkännande innan varje fråga eller kommando körs. Du kan välja att tillåta ett verktyg för den aktuella sessionen eller alltid minska antalet godkännandefrågor.

Vad händer om en fråga misslyckas?

Agentläget identifierar felet, analyserar det och ändrar dess metod automatiskt. Den försöker lösa problemet utan ytterligare indata från dig. Om det inte kan lösa felet efter flera försök rapporterar det felet och ber om vägledning.

Hur skiljer sig agentläget från askläget?

Ask-läget returnerar ett enda svar och stoppar. Du bestämmer om du vill tillämpa den genererade koden. Agentläget kör flera steg autonomt, kör frågor med ditt godkännande, övervakar resultat och itererar. Använd Ask-läge när du vill ha fullständig kontroll över varje steg. använd agentläge för komplexa uppgifter i flera steg där du endast ger vägledning.

Kan jag använda agentläge med MCP-servrar?

Ja. Du måste vara i agentläge för att kunna använda MCP-verktyg. Se Använd MCP-servrar med GitHub Copilot i SQL Server Management Studio.

Hur styr jag agentläge för min organisation som administratör?

Administratörer styr agentläget via GitHub Copilot instrumentpanel. Mer information finns i Admin-kontroller för GitHub Copilot i SQL Server Management Studio.