Używanie trybu agenta GitHub Copilot (wersja zapoznawcza) w SQL Server Management Studio

Tryb agenta GitHub Copilot (wersja zapoznawcza) w programie SQL Server Management Studio (SSMS) umożliwia określenie ogólnego celu w języku naturalnym i zlecenie Copilotowi jego realizacji poprzez wykonywanie zapytań, odczytywanie plików oraz iteracyjne udoskonalanie własnych wyników aż do ukończenia zadania lub do momentu, gdy będzie potrzebne Twoje dane wejściowe.

Uwaga / Notatka

Tryb agenta usługi GitHub Copilot w aplikacji SQL Server Management Studio (SSMS) jest obecnie dostępny w wersji zapoznawczej.

W przeciwieństwie do trybu zapytaj, który zatrzymuje się po pojedynczej odpowiedzi, tryb agenta kontynuuje wykonywanie kroków, wywoływanie narzędzi i udoskonalanie jego podejścia do momentu osiągnięcia celu. Wszystkie zapytania i polecenia są wykonywane w kontekście logowania i uprawnień użytkownika, chyba że niestandardowy użytkownik bazy danych lub identyfikator logowania SQL jest określony w pierwszej części bazy danych CONSTITUTION.md. Aby uzyskać więcej informacji, zobacz kontekst wykonywania dla usługi GitHub Copilot w programie SQL Server Management Studio.

Ważna

Tryb agenta może wykonywać zapytania i wprowadzać zmiany bazy danych w Twoim imieniu. Copilot żąda zatwierdzenia przed uruchomieniem każdego zapytania lub polecenia. Przed ich zatwierdzeniem należy uważnie przejrzeć proponowane działania. Wymuś kontrolę dostępu przy użyciu uprawnień SQL Server zgodnych z zasadą najmniejszych uprawnień. Granicą zabezpieczeń jest mechanizm egzekwowania uprawnień w SQL Server, a nie system zatwierdzania Copilot.

Tryb zapytań a tryb agenta

Użyj poniższej tabeli, aby zdecydować, który tryb pasuje do zadania:

Tryb zapytań Tryb agenta
Jak to działa Pojedyncza odpowiedź na monit; ręcznie stosujesz kod Wykonywanie wieloetapowe; iteruje do momentu osiągnięcia celu
Wykonanie Zapytania tylko do odczytu Zapytania i polecenia są wykonywane za Twoją zgodą
Zmiany schematu Generuje język T-SQL do uruchomienia Może wykonać zmiany schematu, jeśli je zatwierdzisz, a Twoje konto ma odpowiednie uprawnienia
Najlepsze dla Eksplorowanie pomysłów, przeglądanie wygenerowanego kodu przed zastosowaniem Złożone zadania wieloetapowe, badanie, analiza i programowanie iteracyjne
Przerwy Pojedyncza odpowiedź, którą można anulować w dowolnym momencie Możesz anulować w dowolnym momencie

Wymagania wstępne

Korzystanie z trybu agenta

W trybie agenta Copilot działa autonomicznie i określa odpowiedni kontekst monitu. Tryb agenta dla GitHub Copilot w programie SSMS używa lokalnego serwera MCP, sql-tools na potrzeby integracji i jest dostarczany ze wstępnie zdefiniowanym zestawem narzędzi.

  1. W programie SSMS wybierz pozycję View>GitHub Copilot Chat aby otworzyć okno czatu.
  2. W dolnej części okna czatu rozwiń listę rozwijaną Tryb i wybierz pozycję Agent.
  3. W prawym dolnym rogu okna czatu wybierz ikonę Narzędzia, aby wyświetlić dostępne narzędzia.
  4. Rozwiń sql-tools, aby wyświetlić predefiniowane narzędzia. Umieść kursor na nazwie narzędzia, aby dowiedzieć się więcej o tym, co robi. Jeśli usuniesz zaznaczenie wszystkich narzędzi, tryb agenta nie będzie działać zgodnie z oczekiwaniami.
  5. Nie można wyłączyć SSMS listy narzędzi.
  6. Wprowadź monit opisujący cel wysokiego poziomu i podaj nazwę bazy danych lub serwera, z którym pracujesz. Tryb agenta nie dziedziczy kontekstu z aktywnego edytora zapytań.

Ważna

Aby uzyskać najlepsze wyniki, dołącz bazę danych lub serwer w wierszu polecenia. Włączenie to zmniejsza niejednoznaczność i liczbę wywołań narzędzi. Jeśli nie dołączysz informacji o połączeniu, Copilot odczytuje listę połączeń, aby zidentyfikować połączenie do użycia lub poprosi o wyjaśnienie, której bazy danych lub serwera użyć.

  1. Aby przesłać monit, wybierz pozycję Wyślij lub naciśnij klawisz Enter.

    Przykładowe polecenia na początek:

    - 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. Tryb agenta może wywołać wiele narzędzi w celu ukończenia żądania. Na przykład podczas odczytywania informacji o schemacie, generowania Transact-SQL i analizowania wyników. Aktywne narzędzie pojawia się w czacie w miarę wykonywania kolejnych kroków.

  3. Gdy Copilot jest gotowy do wykonania zapytania lub polecenia, wstrzymuje i pyta o zatwierdzenie. Przejrzyj proponowaną akcję, a następnie wybierz pozycję Zezwalaj , aby kontynuować, lub Odrzuć , aby pominąć ten krok.

    Zakres zatwierdzania można skonfigurować przy użyciu listy rozwijanej Zezwalaj :

    Option Efekt
    Zezwól tym razem Zatwierdza to pojedyncze wywołanie
    Zezwalaj na tę sesję Zatwierdza użycie tego narzędzia do końca bieżącej sesji czatu
    Zezwalaj zawsze Zatwierdza to narzędzie dla wszystkich kolejnych wywołań

    Aby zresetować ustawienia zatwierdzania narzędzi, przejdź do Tools>Options>GitHub>Copilot>Tools.

  4. Copilot monitoruje wynik każdego kroku. Jeśli zapytanie zwraca błąd lub wynik, który nie spełnia twojego celu, Copilot poprawia swoje podejście i spróbuje ponownie automatycznie.

  5. Po zakończeniu zadania Copilot podsumowuje to, co zrobił. Przejrzyj wszelkie zmiany zastosowane do bazy danych lub edytora zapytań.

Omówienie narzędzi trybu agenta

W trybie agenta Copilot może użyć następujących narzędzi do ukończenia żądania:

Uwaga / Notatka

Tryb agenta działa tylko z bazami danych i obiektami, z którymi można uzyskać dostęp lub nawiązać połączenie, albo przy użyciu poświadczeń w pliku bazy danych CONSTITUTION.md . Nie ma podwyższonych uprawnień wykraczających poza te, które już mają Twoje dane logowania.

Aby wyświetlić narzędzia dostępne w trybie agenta i zarządzać nimi, wybierz ikonę Narzędzia w oknie czatu. Na podstawie wyniku narzędzia copilot może wywołać inne narzędzia, aby zrealizować ogólne żądanie. Jeśli na przykład edytowanie kodu T-SQL spowoduje błąd składni, Copilot może zbadać inne podejście i zasugerować inną zmianę.

Możesz również rozszerzyć tryb agenta przy użyciu serwerów MCP aby połączyć Copilot z zewnętrznymi narzędziami i usługami. Narzędzia dostępne dla serwera MCP nie są automatycznie włączone. Ich pola wyboru są domyślnie wyczyszczone i należy je wybrać, aby aktywować narzędzia.

Zarządzanie zatwierdzeniami narzędzi

Copilot prosi o potwierdzenie przed uruchomieniem jakiegokolwiek zapytania lub wywołaniem zewnętrznego narzędzia. Ten krok chroni Cię przed niezamierzonym zmianami. Domyślnie każda akcja wymaga jawnego zatwierdzenia.

Podczas zatwierdzania narzędzia użyj listy rozwijanej Zezwalaj , aby ustawić trwałość:

  • Zezwalaj na tę sesję: nie ma dalszych monitów o to narzędzie w bieżącej sesji czatu
  • Zezwalaj zawsze: zapisywane między sesjami dla tego narzędzia

Aby przejrzeć i zresetować akceptacje, przejdź do Tools>Options>GitHub>Copilot>Tools.

Akceptowanie lub odrzucanie edycji

Gdy tryb agenta zostanie zastosowany do otwartych plików, w oknie czatu zostanie wyświetlone podsumowanie Total changes (Łączna liczba zmian ). Wybierz każdy plik, aby przejrzeć zmiany indywidualnie. Możesz zachować lub cofnąć edycje wprowadzone w każdej sekcji kodu przy użyciu przycisków Zachowaj i Cofnij . Alternatywnie na liście Total changes (Łączna liczba zmian ) wybierz pozycję Keep or Undo ( Zachowaj lub Cofnij ) dla wszystkich zmian wprowadzonych od czasu ostatniego wybrania opcji Zachowaj lub Cofnij.

Widok podsumowania wielu plików

Od wersji SSMS 22.6, gdy Copilot edytuje wiele plików, możesz przejrzeć wszystkie zmiany w jednym widoku podsumowującym zamiast przełączać się między nimi pojedynczo.

  1. Po zakończeniu edycji przez funkcję Copilot wybierz przycisk Otwórz widok podsumowania zmian w obszarze roboczym Copilot Chat.
  2. Zostanie otwarta pojedyncza karta przedstawiająca wszystkie zmienione pliki z wymienionymi różnicami.
  3. Możesz zaakceptować lub cofnąć zmiany na różnych poziomach szczegółowości:
  • Jednocześnie we wszystkich plikach, za pomocą globalnych przycisków Zachowaj pliki i Anuluj zmiany w plikach.
  • Dla każdego pliku za pomocą przycisków Zachowaj wszystkie zmiany i Cofnij wszystkie .
  • Dla każdej pojedynczej zmiany w kodzie użyj Zachowaj (Ctrl + Y) i Cofnij (Ctrl + N).
  1. Użyj kontrolek w lewym górnym rogu okna, aby:
  • Zwiń całą zawartość pliku, aby wyświetlić tylko nagłówki plików w celu szybkiego omówienia
  • Przechodź między fragmentami różnic za pomocą przycisków Dalej i Wstecz, aby szybko poruszać się po zmianach. Możesz również wybrać dowolny plik, aby otworzyć go osobno i wyświetlić jego pełny kontekst.

Przerywanie żądania trybu agenta

Aby w dowolnym momencie zatrzymać trwające żądanie trybu agenta, wybierz pozycję Anuluj w oknie czatu. Anulowanie powoduje zatrzymanie wszystkich uruchomionych narzędzi i oczekujących zapytań. Wszystkie zapytania, które zostały już wykonane i zatwierdzone , nie zostaną automatycznie wycofane. W razie potrzeby sprawdź stan bazy danych po anulowaniu operacji wieloetapowej.

Scenarios

W poniższych przykładach pokazano, jak tryb agenta obsługuje typowe zadania SQL Server. Te przykłady to przykładowe polecenia. Dostosuj je do bazy danych i celów.

Utwórz i przetestuj procedurę składowaną

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.

Tryb agenta odczytuje schemat bazy danych, aby zidentyfikować odpowiednie tabele, przygotowuje projekt procedury składowanej, wykonuje instrukcję CREATE PROCEDURE, a następnie uruchamia testowe wykonanie z przykładowymi parametrami, aby zweryfikować wyniki.

Optymalizowanie wydajności zapytań

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.

Tryb agenta może wygenerować szacowany plan wykonania zapytania, użyć Query Store do znalezienia planu lub użyć rzeczywistego planu, jeśli zostanie on uwzględniony jako odwołanie. Identyfikuje antywzorce w zapytaniu i planach wykonania, w tym brakujące indeksy. Proponuje konkretne zmiany w kodzie i schemacie danych, w tym instrukcje CREATE INDEX, i może wprowadzić te zmiany, jeśli je zatwierdzisz. Zawsze implementuj zmiany w środowisku testowym lub programistycznym przed zastosowaniem ich do produkcyjnej bazy danych.

Przeanalizuj dzienniki

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.

Tryb agenta przegląda pliki ERRORLOG dla wystąpienia, tworzy listę zidentyfikowanych problemów i generuje sugestie dotyczące rozwiązania.

Przeprowadzanie inspekcji i naprawianie luk uprawnień

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.

Tryb agenta wysyła zapytania do widoków wykazu uprawnień, identyfikuje luki, generuje GRANT instrukcje i wykonuje je w przypadku zatwierdzenia.

Kontekst wykonywania i uprawnienia

Wszystkie zapytania i polecenia wykonywane w trybie Agent są wykonywane w kontekście uwierzytelnionego konta, chyba że określisz użytkownika bazy danych lub login SQL dla usługi GitHub Copilot w elemencie CONSTITUTION.md bazy danych jako agentExecuteAsUser.

  • Jeśli logowanie nie ma uprawnień do modyfikowania tabeli, tryb agenta nie może go zmodyfikować, nawet jeśli zatwierdzisz proponowane zapytanie.
  • System zatwierdzania rozwiązania Copilot nie stanowi granicy bezpieczeństwa. Zastosuj zasadę najniższych uprawnień w bazie danych: przyznaj użytkownikom tylko uprawnienia, których potrzebują na określonych obiektach.
  • W przypadku baz danych, dla których chcesz określić użytkownika bazy danych lub login SQL, zobacz Kontekst wykonywania dla GitHub Copilot w SQL Server Management Studio.
  • Jeśli użytkownik bazy danych lub login SQL jest przypisany do bazy danych, a użytkownik korzystający z GitHub Copilot nie ma uprawnienia IMPERSONATE, nie może używać GitHub Copilot w przypadku tej bazy danych.

Domyślnie tryb agenta jest skonfigurowany jako READ_ONLY. Jeśli Twój login lub konto agentExecuteAsUser ma uprawnienia do modyfikowania danych lub schematu bazy danych, GitHub Copilot domyślnie nie wykonuje tych zapytań.

W pliku mcp.json można zmienić tryb Agenta na READ_WRITE. Jeśli jednak konto logowania lub konto agentExecuteAsUser nie ma uprawnień do modyfikowania danych albo schematu bazy danych, takie zapytania zakończą się niepowodzeniem z powodu uprawnień zabezpieczeń SQL.

Często zadawane pytania

Czy tryb agenta wykonuje zapytania automatycznie, nie pytając mnie?

No. Tryb agenta żąda zatwierdzenia przed wykonaniem każdego zapytania lub polecenia. Możesz zezwolić na używanie narzędzia w bieżącej sesji lub zawsze, aby ograniczyć liczbę monitów o zatwierdzenie.

Co się stanie, jeśli zapytanie zakończy się niepowodzeniem?

Tryb agenta wykrywa błąd, analizuje go i zmienia swoje podejście automatycznie. Próbuje rozwiązać problem bez dalszych działań z Twojej strony. Jeśli nie można usunąć błędu po kilku próbach, zgłasza błąd i prosi o wskazówki.

W jaki sposób tryb agenta różni się od trybu zapytaj?

Tryb pytania zwraca jedną odpowiedź i na tym kończy działanie. Decydujesz, czy zastosować wygenerowany kod. Tryb agenta uruchamia wiele kroków autonomicznie, wykonuje zapytania z zatwierdzeniem, monitoruje wyniki i iteruje. Użyj trybu zapytaj, gdy chcesz mieć pełną kontrolę nad każdym krokiem; używaj trybu agenta dla złożonych zadań wieloetapowych, w których podajesz tylko wskazówki.

Czy mogę używać trybu agenta z serwerami MCP?

Tak. Aby korzystać z narzędzi MCP, musisz być w trybie agenta. Zobacz Użyj serwerów MCP z GitHub Copilot w programie SQL Server Management Studio.

Jak mogę kontrolować tryb agenta dla mojej organizacji jako administrator?

Administratorzy kontrolują tryb agenta za pomocą pulpitu nawigacyjnego GitHub Copilot. Aby uzyskać więcej informacji, zobacz Mechanizmy kontroli administracyjnej usługi GitHub Copilot w programie SQL Server Management Studio.