Použití režimu agenta GitHub Copilot (Preview) v SQL Server Management Studio

Režim Agent služby GitHub Copilot (Preview) v aplikaci SQL Server Management Studio (SSMS) umožňuje zadat cíl na vysoké úrovni v přirozeném jazyce a nechat Copilot, aby na něm pracoval spouštěním dotazů, čtením souborů a iterativním vylepšováním vlastních výstupů, dokud není úkol dokončen nebo není vyžadován váš zásah.

Poznámka:

Režim agenta GitHub Copilot v aplikaci SQL Server Management Studio (SSMS) je momentálně ve fázi Preview.

Na rozdíl od režimu Ask, který se zastaví po jedné odpovědi, režim agenta pokračuje ve spouštění kroků, vyvolá nástroje a upřesňuje jeho přístup, dokud nedosáhne vašeho cíle. Všechny dotazy a příkazy se spouštějí v kontextu přihlášení a oprávnění uživatele, pokud není v přední části databáze CONSTITUTION.mdzadán uživatel vlastní databáze nebo přihlášení SQL . Další informace najdete v tématu Konuční kontext pro GitHub Copilot v SQL Server Management Studio.

Important

Režim agenta může za vás spouštět dotazy a provádět změny databáze. Copilot vás před spuštěním každého dotazu nebo příkazu požádá o schválení. Před jejich schválením pečlivě zkontrolujte navrhované akce. Vynucujte řízení přístupu pomocí oprávnění SQL Serveru podle principu nejmenších oprávnění. Bezpečnostní hranicí je vynucování oprávnění v SQL Serveru, nikoli schvalovací systém Copilotu.

Režim dotazování a režim agenta

Pomocí následující tabulky se můžete rozhodnout, který režim odpovídá vašemu úkolu:

Režim dotazování Režim agenta
Jak to funguje Jedna odpověď na jeden prompt; kód aplikujete ručně Vícekrokové provádění; opakuje se, dokud není dosaženo cíle
Spuštění Dotazy pouze pro čtení Dotazy a příkazy se spouštějí s vaším schválením
Změny schématu Vygeneruje T-SQL, abyste mohli spustit Může spouštět změny schématu, pokud je schválíte a vaše přihlášení má oprávnění.
Nejvhodnější pro Zkoumání nápadů, kontrola vygenerovaného kódu před použitím Komplexní úlohy s více kroky, šetření, analýza a iterativní vývoj
Přerušení Jedna odpověď, kterou můžete kdykoli zrušit Kdykoli můžete zrušit

Předpoklady

Použití režimu agenta

V režimu agenta Copilot funguje samostatně a určuje příslušný kontext výzvy. Režim agenta pro GitHub Copilot v SSMS používá místní server MCP, sql-tools pro integraci a dodává se s předdefinovanou sadou nástrojů.

  1. V aplikaci SSMS vyberte View>GitHub Copilot Chat a otevřete okno chatu.
  2. V dolní části okna chatu rozbalte rozevírací seznam režimu a vyberte Agent.
  3. V pravém dolním rohu okna chatu vyberte ikonu Nástroje a zobrazte dostupné nástroje.
  4. Rozbalením sql-tools zobrazíte předdefinované nástroje. Najeďte myší na název nástroje, abyste se dozvěděli víc o tom, co dělá. Pokud zrušíte výběr všech nástrojů, režim agenta nefunguje podle očekávání.
  5. Nelze zakázat SSMS seznam nástrojů.
  6. Zadejte výzvu popisující cíl vysoké úrovně a uveďte název databáze nebo serveru, se kterou pracujete. Režim agenta nedědí kontext z aktivního editoru dotazů.

Important

Nejlepších výsledků dosáhnete tak, že do výzvy zahrnete databázi nebo server. Toto zahrnutí snižuje nejednoznačnost a počet volání nástrojů. Pokud nezadáte informace o připojení, Copilot přečte seznam připojení, aby určil, které připojení se má použít, nebo požádá o upřesnění, kterou databázi nebo server použít.

  1. Pokud chcete odeslat výzvu, vyberte Odeslat nebo stiskněte Enter.

    Příklady výzev k zahájení práce:

    - 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. Režim agenta může vyvolat několik nástrojů pro dokončení vaší žádosti. Například při čtení informací o schématu, generování Transact-SQL a analýza výsledků. Aktivní nástroj se v chatu zobrazuje při provádění každého kroku.

  3. Jakmile je Copilot připraven spustit dotaz nebo příkaz, pozastaví se a požádá vás o schválení. Zkontrolujte navrženou akci a potom výběrem možnosti Povolit pokračujte, nebo výběrem možnosti Přeskočit tento krok přeskočte.

    Rozsah schválení můžete nakonfigurovat pomocí rozevíracího seznamu Povolit :

    Option Účinek
    Povolit jednorázově Schválí toto jediné vyvolání.
    Povolit pro toto sezení Schválí tento nástroj pro zbytek aktuální relace chatu.
    Povolit vždy Schválí tento nástroj pro všechna následná vyvolání.

    Pokud chcete obnovit nastavení schválení nástroje, přejděte na Tools>Options>GitHub>Copilot>Nástroje.

  4. Copilot monitoruje výsledek každého kroku. Pokud dotaz vrátí chybu nebo výsledek, který nesplňuje váš cíl, Copilot reviduje svůj přístup a pokusí se znovu automaticky.

  5. Po dokončení úkolu Copilot shrne, co udělal. Zkontrolujte všechny změny použité v databázi nebo editoru dotazů.

Seznamte se s nástroji režimu agenta

V režimu agenta Copilot k dokončení vaší žádosti můžete použít následující nástroje:

Poznámka:

Režim agenta funguje jenom s databázemi a objekty, ke kterým máte přístup nebo se k němu můžete připojit, nebo pomocí přihlašovacích údajů v souboru databáze CONSTITUTION.md . Nemá zvýšená oprávnění nad rámec těch, které už vaše přihlašovací údaje mají.

Pokud chcete zobrazit a spravovat nástroje dostupné v režimu agenta, vyberte v okně chatu ikonu Nástroje . Na základě výsledku nástroje může Copilot vyvolat další nástroje k dosažení celkového požadavku. Pokud například při úpravě kódu T-SQL dojde k chybě syntaxe, Copilot může prozkoumat jiný přístup a navrhnout jinou změnu.

Režim agenta můžete také rozšířit o servery MCP pro připojení Copilot k externím nástrojům a službám. Nástroje dostupné pro server MCP nejsou povolené automaticky. Jejich zaškrtávací políčka jsou ve výchozím nastavení nezaškrtnutá a chcete-li nástroje aktivovat, musíte je vybrat.

Správa schválení nástrojů

Copilot vyžaduje potvrzení před spuštěním jakéhokoli dotazu nebo vyvoláním externího nástroje. Tento krok vás chrání před nezamýšlenými změnami. Ve výchozím nastavení každá akce vyžaduje explicitní schválení.

Při schvalování nástroje nastavte trvalost pomocí rozevíracího seznamu Povolit :

  • Povolit tuto relaci: v aktuální relaci chatu se nezobrazí žádná další výzva k tomuto nástroji.
  • Povolit vždy: uloženo mezi relacemi pro tento nástroj

Pokud chcete zkontrolovat a resetovat schválení, přejděte na Nástroje>Options>GitHub>Copilot>Tools.

Přijetí nebo zahození úprav

Když režim agenta použije změny u otevřených souborů, zobrazí se v okně chatu souhrn celkových změn . Vyberte každý soubor, který chcete zkontrolovat změny jednotlivě. Úpravy provedené v jednotlivých částech kódu můžete zachovat nebo vrátit zpět pomocí tlačítek Zachovat a Zpět. V seznamu Celkových změn můžete také vybrat Možnost Zachovat nebo Zpět pro všechny úpravy provedené od posledního výběru možnosti Zachovat nebo Zpět.

Zobrazení souhrnu více souborů

Počínaje verzí SSMS 22.6 můžete při Copilot úpravách více souborů zkontrolovat všechny změny v jediném souhrnném zobrazení a nemusíte přepínat mezi soubory jednotlivě.

  1. Poté, co Copilot dokončí úpravy, vyberte v pracovní sadě Copilot Chat tlačítko Otevřít zobrazení souhrnu změn.
  2. Otevře se jedna karta, která zobrazuje všechny změněné soubory s uvedenými rozdíly.
  3. Změny můžete přijmout nebo vrátit zpět na různých úrovních členitosti:
  • Ve všech souborech najednou pomocí globálních tlačítek Ponechat soubory a Vrátit soubory.
  • U každého souboru pomocí tlačítek Zachovat všechny změny a Vrátit vše.
  • Pro každou změnu jednotlivých kódů použijte příkaz Keep (Ctrl + Y) a Zpět (Ctrl + N).
  1. Pomocí ovládacích prvků v levém horním rohu okna můžete:
  • Sbalení veškerého obsahu souboru a zobrazení pouze záhlaví souborů pro rychlý přehled
  • Pomocí dalších a předchozích tlačítek můžete rychle procházet změny mezi rozdílovými bloky. Můžete také vybrat libovolný soubor, který chcete otevřít samostatně, a zobrazit jeho úplný kontext.

Přerušení žádosti o režim agenta

Pokud chcete kdykoli ukončit probíhající žádost o režim agenta, vyberte v okně chatu možnost Storno . Zrušení zastaví všechny spuštěné nástroje a čekající dotazy. Všechny již spuštěné a schválené dotazy se automaticky nevrátí zpět. Po zrušení operace s více kroky v případě potřeby ověřte stav databáze.

Scenarios

Následující příklady ukazují, jak režim agenta zpracovává běžné SQL Server úlohy. Tyto příklady představují reprezentativní výzvy. Přizpůsobte je databázi a cílům.

Vytvoření a otestování uložené procedury

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.

Režim agenta načte schéma vaší databáze, aby identifikoval příslušné tabulky, vytvoří koncept uložené procedury, spustí CREATE PROCEDURE příkaz a pak spustí testovací spuštění s ukázkovými parametry pro ověření výstupu.

Optimalizace výkonu dotazů

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.

Režim agenta může vygenerovat odhadovaný plán provádění dotazu, použít Query Store k vyhledání plánu nebo použít skutečný plán, pokud ho zahrnete jako referenci. Identifikuje v dotazu a plánech provádění vzory, včetně chybějících indexů. Navrhuje konkrétní změny kódu a schématu, včetně CREATE INDEX příkazů, a může implementovat změny, pokud je schválíte. Před použitím změn v produkční databázi vždy implementujte změny v testovacím nebo vývojovém prostředí.

Zkoumání protokolů

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.

Režim agenta zkontroluje soubory ERRORLOG pro instanci, vytvoří seznam zjištěných problémů a vygeneruje návrhy pro řešení.

Auditování a oprava mezer oprávnění

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.

Režim agenta se dotazuje na zobrazení katalogu oprávnění, identifikuje mezery, generuje GRANT příkazy a provede je, pokud je schválíte.

Kontext spuštění a oprávnění

Všechny dotazy a příkazy, které režim agenta spouští, se spouštějí v kontextu vašeho ověřeného účtu, pokud pro GitHub Copilot v CONSTITUTION.md databáze neurčíte uživatele databáze nebo přihlášení SQL jako agentExecuteAsUser.

  • Pokud vaše přihlášení nemá oprávnění k úpravě tabulky, režim agenta ho nemůže změnit ani v případě, že navrhovaný dotaz schválíte.
  • Systém schvalování Copilotu nepředstavuje bezpečnostní hranici. Použijte zásadu nejnižších oprávnění v databázi: udělte uživatelům pouze oprávnění, která potřebují pro konkrétní objekty.
  • Informace o databázích, u kterých chcete zadat uživatele databáze nebo přihlášení SQL Serveru, najdete v tématu Kontext spuštění pro GitHub Copilot v aplikaci SQL Server Management Studio.
  • Pokud je pro databázi určen uživatel databáze nebo přihlášení SQL a uživatel služby GitHub Copilot nemá oprávnění IMPERSONATE, nemůže používat GitHub Copilot pro tuto databázi.

Ve výchozím nastavení je režim agenta nakonfigurovaný jako READ_ONLY. Pokud vaše přihlášení nebo účet agentExecuteAsUser má oprávnění k úpravě dat nebo schématu databáze, GitHub Copilot tyto dotazy ve výchozím nastavení nespustí.

V souboru mcp.json můžete změnit režim READ_WRITE agenta. Pokud ale vaše přihlášení nebo agentExecuteAsUser účet nemá oprávnění k úpravě dat nebo schématu databáze, všechny tyto dotazy selžou kvůli oprávněním zabezpečení SQL.

Nejčastější dotazy

Spouští režim agenta dotazy automaticky, aniž by se mě zeptal?

No. Režim agenta žádá o schválení před provedením každého dotazu nebo příkazu. Můžete zvolit možnost povolit nástroj pro aktuální relaci nebo vždy omezit výzvy ke schválení.

Co se stane, když dotaz selže?

Režim agenta zjistí chybu, analyzuje ji a automaticky reviduje její přístup. Pokusí se problém vyřešit bez dalšího zásahu z vaší strany. Pokud se chyba po několika pokusech nevyřeší, nahlásí chybu a požádá o pokyny.

Jak se režim agenta liší od režimu Ptejte se?

Režim dotazování vrátí jednu odpověď a zastaví se. Rozhodnete se, jestli se má vygenerovaný kód použít. Režim agenta spouští několik kroků samostatně, spouští dotazy s vaším schválením, monitoruje výsledky a iteruje. Režim Ptejte se, když chcete mít plnou kontrolu nad každým krokem; Režim agenta použijte pro složité úlohy s více kroky, kde poskytujete pouze pokyny.

Můžu používat režim agenta se servery MCP?

Yes. Abyste mohli používat nástroje MCP, musíte být v režimu agenta. Viz Použití serverů MCP s GitHub Copilot v SQL Server Management Studio.

Jak můžu jako správce řídit režim agenta pro svoji organizaci?

Správci řídí režim agenta prostřednictvím řídicího panelu GitHub Copilot. Další informace najdete v tématu Ovládací prvky pro správce pro GitHub Copilot v SQL Server Management Studio.