Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La modalità agente di GitHub Copilot (anteprima) in SQL Server Management Studio (SSMS) consente di specificare un obiettivo di alto livello in linguaggio naturale e di fare in modo che Copilot se ne occupi eseguendo query, leggendo file e iterando sui propri risultati finché l'attività non è completata o non è necessario un tuo intervento.
Note
La modalità agente di GitHub Copilot in SQL Server Management Studio (SSMS) è attualmente in anteprima.
A differenza della modalità Ask, che si arresta dopo una singola risposta, la modalità Agente continua a eseguire i passaggi, richiamando gli strumenti e affinando l'approccio fino a raggiungere l'obiettivo. Tutte le query e i comandi vengono eseguiti nel contesto del login e delle autorizzazioni dell'utente, a meno che nell'intestazione del CONSTITUTION.md del database non venga specificato un utente di database personalizzato o un account di accesso SQL. Per altre informazioni, vedi Contesto di esecuzione per GitHub Copilot in SQL Server Management Studio.
Importante
La modalità agente può eseguire query e apportare modifiche al database per conto dell'utente. Copilot richiede l'approvazione prima di eseguire ogni query o comando. Esaminare attentamente le azioni proposte prima di approvarle. Applicare il controllo di accesso usando le autorizzazioni con privilegi minimi di SQL Server. Il perimetro di sicurezza è l'applicazione delle autorizzazioni di SQL Server, non il sistema di approvazione di Copilot.
Modalità Ask e modalità Agente
Usare la tabella seguente per decidere quale modalità si adatta all'attività:
| Modalità Richiesta | Modalità agente | |
|---|---|---|
| Funzionamento | Risposta singola per richiesta; si applica il codice manualmente | Esecuzione in più passaggi; esegue l'iterazione fino a raggiungere l'obiettivo |
| Esecuzione | Solo query di sola lettura | Le query e i comandi vengono eseguiti previa approvazione dell'utente |
| Modifiche dello schema | Genera T-SQL per l'esecuzione | È possibile eseguire modifiche dello schema se vengono approvate e l'account di accesso dispone dell'autorizzazione |
| Migliore per | Esplorazione di idee, revisione del codice generato prima dell'applicazione | Attività complesse articolate in più fasi, indagine, analisi e sviluppo iterativo |
| Interruzione | Risposta singola, è possibile annullare in qualsiasi momento | È possibile annullare in qualsiasi momento |
Prerequisiti
- SSMS 22.7 o versione successiva con il carico di lavoro Di assistenza per intelligenza artificiale.
- Un account GitHub con accesso a Copilot. In alternativa, use GitHub Copilot gratuitamente in SQL Server Management Studio.
Usare la modalità agente
In modalità Agente, Copilot opera in modo autonomo e determina il contesto pertinente per la richiesta. La modalità agente per GitHub Copilot in SSMS usa un server MCP locale, sql-tools per l'integrazione e viene fornito con un set predefinito di strumenti.
- In SSMS selezionare View>GitHub Copilot Chat per aprire la finestra della chat.
- Nella parte inferiore della finestra di chat, espandi il menu a discesa della modalità e seleziona Agent.
- Nella parte inferiore destra della finestra della chat selezionare l'icona Strumenti per visualizzare gli strumenti disponibili.
- Espandere
sql-toolsper visualizzare gli strumenti predefiniti. Passare il puntatore del mouse sul nome dello strumento per altre informazioni sulle operazioni. Se si deselezionano tutti gli strumenti, la modalità Agent non funziona come previsto. - Non è possibile disabilitare l'elenco
SSMSdegli strumenti. - Immettere la richiesta che descrive l'obiettivo generale e includere il nome del database o del server su cui si sta lavorando. La modalità agente non eredita il contesto dall'editor di query attivo.
Importante
Per ottenere risultati ottimali, includere il database o il server nel prompt. Questa inclusione riduce l'ambiguità e il numero di chiamate agli strumenti. Se non si includono informazioni di connessione, Copilot legge l'elenco di connessioni per identificare una connessione da usare o chiede chiarimenti su quale database o server usare.
Per inviare il prompt, selezionare Invia o premere INVIO.
Istruzioni di esempio per iniziare:
- 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 jobsLa modalità agente potrebbe richiamare più strumenti per completare la richiesta. Ad esempio, durante la lettura delle informazioni sullo schema, la generazione di Transact-SQL e l'analisi dei risultati. Lo strumento attivo viene visualizzato nella chat durante l'esecuzione di ogni passaggio.
Quando Copilot è pronto per eseguire una query o un comando, sospende e richiede l'approvazione. Esaminare l'azione proposta e quindi selezionare Consenti di procedere oppure Ignora per ignorare tale passaggio.
È possibile configurare l'ambito di approvazione usando l'elenco a discesa Consenti :
Opzione Effetto Consenti una sola volta Approva questa singola chiamata Consenti per questa sessione Approva questo strumento per il resto della sessione di chat corrente Consenti sempre Approva questo strumento per tutte le chiamate successive Per reimpostare le impostazioni di approvazione dello strumento, passare a Tools>Opzioni>GitHub>Copilot>Tools.
Copilot monitora il risultato di ogni passaggio. Se una query restituisce un errore o un risultato che non soddisfa l'obiettivo, Copilot rivede l'approccio e riprova automaticamente.
Al termine dell'attività, Copilot riepiloga le operazioni. Esaminare le modifiche applicate al database o all'editor di query.
Comprendere gli strumenti della modalità agente
In modalità Agente Copilot possibile usare gli strumenti seguenti per completare la richiesta:
- Strumenti predefiniti
- Strumenti MCP (Model Context Protocol)
- Competenze dell'agente che forniscono istruzioni specifiche dell'attività
Note
La modalità agente funziona solo con database e oggetti a cui è possibile accedere o connettersi oppure usando le credenziali nel file di database CONSTITUTION.md . Non dispone di autorizzazioni elevate oltre a quelle che le tue credenziali hanno già.
Per visualizzare e gestire gli strumenti disponibili in modalità Agente, selezionare l'icona Strumenti nella finestra di chat. In base al risultato di uno strumento, Copilot potrebbe richiamare altri strumenti per eseguire la richiesta complessiva. Ad esempio, se una modifica del codice T-SQL genera un errore di sintassi, Copilot potrebbe esplorare un altro approccio e suggerire una modifica diversa.
È anche possibile estendere la modalità agente con server MCP per connettere Copilot a strumenti e servizi esterni. Gli strumenti disponibili per un server MCP non vengono abilitati automaticamente. Le caselle di controllo vengono deselezionate per impostazione predefinita ed è necessario selezionarle per attivare gli strumenti.
Gestire le approvazioni degli strumenti
Copilot richiede conferma prima di eseguire qualsiasi query o richiamare uno strumento esterno. Questo passaggio consente di evitare modifiche impreviste. Per impostazione predefinita, ogni azione richiede un'approvazione esplicita.
Quando si approva uno strumento, usare l'elenco a discesa Consenti per impostare la persistenza:
- Consenti per questa sessione: nessun'altra richiesta per tale strumento nella sessione di chat corrente
- Consenti sempre: viene mantenuto tra una sessione e l'altra per quello strumento
Per esaminare e reimpostare le approvazioni, passare a
Accettare o rimuovere modifiche
Quando la modalità Agente applica modifiche ai file aperti, viene visualizzato un riepilogo Delle modifiche totali nella finestra della chat. Selezionare ogni file per esaminare le modifiche singolarmente. È possibile mantenere o annullare le modifiche apportate a ogni sezione di codice usando i pulsanti Mantieni e Annulla . In alternativa, nell'elenco Totale modifiche selezionare Mantieni o Annulla per tutte le modifiche apportate dall'ultima volta che è stata selezionata l'opzione Mantieni o Annulla.
Visualizzazione di riepilogo di più file
A partire da SSMS 22.6, quando Copilot modifica più file, è possibile esaminare tutte le modifiche in una singola visualizzazione di riepilogo anziché passare da un file all'altro singolarmente.
- Dopo che Copilot ha terminato la modifica, selezionare il pulsante Apri la visualizzazione di riepilogo delle modifiche nel set di lavoro di Copilot Chat.
- Viene visualizzata una singola scheda che mostra tutti i file modificati con le differenze elencate.
- È possibile accettare o annullare modifiche a diversi livelli di granularità:
- Su tutti i file contemporaneamente, utilizzando i pulsanti globali Mantieni i file e Annulla i file.
- Per ogni file usando i pulsanti Mantieni tutte le modifiche e Annulla tutto .
- Per ogni singola modifica del codice, usare Keep (CTRL + Y) e Annulla (CTRL + N).
- Usare i controlli nell'angolo superiore sinistro della finestra per:
- Comprimere tutto il contenuto del file per visualizzare solo le intestazioni di file per una rapida panoramica
- Spostarsi tra blocchi diff usando i pulsanti successivi e precedenti per passare rapidamente attraverso le modifiche È anche possibile selezionare qualsiasi file per aprirlo separatamente e visualizzarne il contesto completo.
Interrompere una richiesta in modalità agente
Per arrestare una richiesta in modalità agente in corso in qualsiasi momento, selezionare Annulla nella finestra della chat. Annullare interrompe tutti gli strumenti in esecuzione e le query in sospeso. Tutte le query già eseguite e approvate non vengono sottoposte automaticamente al rollback. Verificare lo stato del database dopo aver annullato un'operazione in più passaggi, se necessario.
Scenarios
Negli esempi seguenti viene illustrato come la modalità Agent gestisce le attività comuni SQL Server. Questi esempi sono prompt rappresentativi. Adattarli al database e agli obiettivi.
Creare e testare una procedura memorizzata
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.
La modalità agente legge lo schema del database per identificare le tabelle appropriate, crea una bozza della stored procedure, esegue l'istruzione CREATE PROCEDURE e quindi esegue un'esecuzione di test con parametri di esempio per convalidare l'output.
Ottimizzare le prestazioni delle query
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.
La modalità agente può generare un piano di esecuzione stimato per la query, usare Query Store per trovare il piano o usare un piano effettivo se lo si include come riferimento. Identifica gli anti-pattern nella query e nei piani di esecuzione, compresi gli indici mancanti. Propone modifiche specifiche al codice e allo schema, incluse le istruzioni CREATE INDEX, e può implementarle se lo approvi. Implementare sempre le modifiche in un ambiente di test o sviluppo prima di applicarle a un database di produzione.
Esaminare i log
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.
La modalità agente esamina i file ERRORLOG per l'istanza, crea un elenco di problemi identificati e genera suggerimenti per la risoluzione.
Controllare e correggere i gap di autorizzazione
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.
La modalità agente interroga le viste del catalogo dei permessi, identifica le carenze, genera istruzioni GRANT e le esegue se lo approvi.
Contesto di esecuzione e autorizzazioni
Tutte le query e i comandi che la modalità Agent esegue vengono eseguiti nel contesto del tuo account autenticato, a meno che tu non specifichi un utente del database o un accesso SQL per GitHub Copilot nelle CONSTITUTION.md del database come agentExecuteAsUser.
- Se l'account di accesso non dispone dell'autorizzazione per modificare una tabella, la modalità Agent non può modificarla neanche se si approva la query proposta.
- Il sistema di approvazione di Copilot non è un confine di sicurezza. Applicare il principio dei privilegi minimi nel database: concedere agli utenti solo le autorizzazioni necessarie per oggetti specifici.
- Per i database in cui si vuole specificare un utente di database o un account di accesso SQL, vedere Contesto di esecuzione per GitHub Copilot in SQL Server Management Studio.
- Se un utente di database o un account di accesso SQL è designato per un database e l'utente di GitHub Copilot non dispone dell'autorizzazione IMPERSONATE, non può usare GitHub Copilot per tale database.
Per impostazione predefinita, la modalità agente è configurata come READ_ONLY. Se le credenziali di accesso o l'account agentExecuteAsUser dispongono delle autorizzazioni per modificare i dati o lo schema del database, GitHub Copilot non esegue queste query per impostazione predefinita.
È possibile modificare la modalità Agente in READ_WRITE nel file di mcp.json. Tuttavia, se il tuo accesso o l'account agentExecuteAsUser non dispone delle autorizzazioni necessarie per modificare i dati o lo schema del database, queste query hanno esito negativo a causa delle autorizzazioni di sicurezza SQL.
Domande frequenti
La modalità Agent esegue automaticamente le query senza chiedermi?
No La modalità agente richiede l'approvazione prima di eseguire ogni query o comando. È possibile scegliere di consentire a uno strumento per la sessione corrente o sempre di ridurre le richieste di approvazione.
Cosa accade se una query fallisce?
La modalità agente rileva l'errore, lo analizza e ne modifica automaticamente l'approccio. Tenta di risolvere il problema senza ulteriore input da parte dell'utente. Se non riesce a risolvere l'errore dopo diversi tentativi, segnala l'errore e richiede indicazioni.
In che modo la modalità Agente è diversa dalla modalità Ask?
La modalità Ask restituisce una singola risposta e si arresta. Si decide se applicare il codice generato. La modalità agente esegue autonomamente più passaggi, esegue query con la tua approvazione, monitora gli esiti e itera. Usa la modalità Ask quando vuoi il controllo completo su ogni passaggio; usare la modalità agente per attività complesse in più passaggi in cui vengono fornite solo indicazioni.
È possibile usare la modalità agente con i server MCP?
Yes. Per usare gli strumenti MCP, è necessario essere in modalità Agent. Vedere Usare server MCP con GitHub Copilot in SQL Server Management Studio.
Come amministratore, come si controlla la modalità agente per l'organizzazione?
Gli amministratori controllano la modalità agente tramite il dashboard GitHub Copilot. Per altre informazioni, vedi Controlli di amministrazione per GitHub Copilot in SQL Server Management Studio.
Contenuti correlati
- Usare la funzionalità chat di GitHub Copilot in SQL Server Management Studio
- Usare le competenze dell'agente con GitHub Copilot in SQL Server Management Studio
- Usa i server MCP con GitHub Copilot in SQL Server Management Studio
- Contesto di esecuzione per GitHub Copilot in SQL Server Management Studio
- Risoluzione dei problemi di GitHub Copilot in SQL Server Management Studio