Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O modo Agente do GitHub Copilot (versão prévia) no SQL Server Management Studio (SSMS) permite que você especifique um objetivo de alto nível em linguagem natural e que o Copilot trabalhe nisso executando consultas, lendo arquivos e iterando sobre os próprios resultados até que a tarefa seja concluída ou sua intervenção seja necessária.
Observação
O modo GitHub Copilot Agent no SSMS (SQL Server Management Studio) está atualmente em versão prévia.
Ao contrário do modo Ask, que é interrompido após uma única resposta, o modo Agent continua executando etapas, invocando ferramentas e refinando sua abordagem até atingir sua meta. Todas as consultas e comandos são executados no contexto do login e das permissões do usuário, a menos que um usuário de banco de dados personalizado ou um login SQL seja especificado na seção inicial do CONSTITUTION.md do banco de dados. Para obter mais informações, consulte Execution context for GitHub Copilot in SQL Server Management Studio.
Importante
O modo de agente pode executar consultas e fazer alterações no banco de dados em seu nome. Copilot solicita sua aprovação antes de executar cada consulta ou comando. Examine cuidadosamente as ações propostas antes de aprová-las. Imponha o controle de acesso usando as permissões de privilégio mínimo do SQL Server. A fronteira de segurança é a aplicação das permissões do SQL Server, não o sistema de aprovação do Copilot.
Modo de solicitação versus modo de agente
Use a tabela a seguir para decidir qual modo se encaixa em sua tarefa:
| Modo de pergunta | Modo de agente | |
|---|---|---|
| Como funciona | Resposta única por prompt; você aplica o código manualmente | Execução de várias etapas; itera até que a meta seja atingida |
| Execução | Consultas somente leitura | Consultas e comandos são executados com sua aprovação |
| Alterações de esquema | Gera T-SQL para execução | Pode executar alterações de esquema se você as aprovar e seu login tiver permissão |
| Mais adequado para | Explorando ideias, revisando o código gerado antes de aplicar | Tarefas complexas de várias etapas, investigação, análise e desenvolvimento iterativo |
| Interrupção | Resposta única, você pode cancelar a qualquer momento | Você pode cancelar a qualquer momento |
Pré-requisitos
- SSMS 22.7 ou uma versão posterior com a carga de trabalho de Assistência de IA.
- Uma conta do GitHub com acesso ao Copilot. Como alternativa, use GitHub Copilot gratuitamente em SQL Server Management Studio.
Usar o modo agente
No modo Agente, Copilot opera de forma autônoma e determina o contexto relevante para o prompt. O modo de agente para GitHub Copilot no SSMS usa um servidor MCP local, sql-tools para sua integração e é fornecido com um conjunto predefinido de ferramentas.
- No SSMS, selecione View>GitHub Copilot Chat para abrir a janela de chat.
- Na parte inferior da janela de chat, expanda a lista suspensa do modo e selecione Agente.
- No canto inferior direito da janela de chat, selecione o ícone Ferramentas para ver as ferramentas disponíveis.
- Expanda
sql-toolspara ver as ferramentas predefinidas. Passe o mouse sobre o nome da ferramenta para saber mais sobre o que ele faz. Se você desselecionar todas as ferramentas, o modo Agent não funcionará conforme o esperado. - Você não pode desabilitar a
SSMSlista de ferramentas. - Insira o comando descrevendo o objetivo geral e inclua o nome do banco de dados ou servidor com o qual você está trabalhando. O modo de agente não herda o contexto do editor de consultas ativo.
Importante
Para obter melhores resultados, inclua o banco de dados ou o servidor em seu prompt. Essa inclusão reduz a ambiguidade e o número de chamadas de ferramenta. Se você não incluir informações de conexão, Copilot lerá sua lista de conexões para identificar uma conexão a ser usada ou solicitará esclarecimentos sobre qual banco de dados ou servidor usar.
Para enviar seu prompt, selecione Enviar ou pressione Enter.
Exemplo de prompts para começar:
- 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 jobsO modo de agente pode invocar várias ferramentas para concluir sua solicitação. Por exemplo, ao ler informações de esquema, gerar Transact-SQL e analisar resultados. A ferramenta ativa aparece no chat à medida que cada etapa é executada.
Quando Copilot estiver pronto para executar uma consulta ou comando, ele pausa e solicita sua aprovação. Examine a ação proposta e selecione Permitir continuar ou Ignorar para ignorar essa etapa.
Você pode configurar o escopo de aprovação usando a lista suspensa Permitir :
Opção Efeito Permitir uma vez Aprova essa invocação única Permitir esta sessão Aprova essa ferramenta para o restante da sessão de chat atual Permitir sempre Aprova essa ferramenta para todas as invocações subsequentes Para redefinir as configurações de aprovação da ferramenta, vá para Tools>Options>GitHub>Copilot>Tools.
Copilot monitora o resultado de cada etapa. Se uma consulta retornar um erro ou um resultado que não atenda à sua meta, Copilot revisará sua abordagem e tentará novamente automaticamente.
Quando a tarefa é concluída, Copilot resume o que ela fez. Examine as alterações aplicadas ao banco de dados ou ao editor de consultas.
Entenda as ferramentas do modo Agente
No modo Agente, Copilot pode usar as seguintes ferramentas para concluir sua solicitação:
- Ferramentas integradas
- Ferramentas do PROTOCOLO MCP (Model Context Protocol)
- Habilidades do agente que fornecem instruções específicas da tarefa
Observação
O modo de agente funciona apenas com bancos de dados e objetos aos quais você pode acessar ou se conectar ou usando credenciais no arquivo de banco de dados CONSTITUTION.md . Ele não tem permissões elevadas além daquelas que suas credenciais já possuem.
Para exibir e gerenciar as ferramentas disponíveis no modo Agente, selecione o ícone Ferramentas na janela de chat. Com base no resultado de uma ferramenta, o Copilot pode invocar outras ferramentas para realizar a solicitação geral. Por exemplo, se uma edição de código T-SQL resultar em um erro de sintaxe, Copilot poderá explorar outra abordagem e sugerir uma alteração diferente.
Você também pode estender o modo agent com servidores MCP para conectar Copilot a ferramentas e serviços externos. As ferramentas disponíveis para um servidor MCP não são habilitadas automaticamente. Suas caixas de seleção são desmarcadas por padrão e você deve selecioná-las para ativar as ferramentas.
Gerenciar aprovações de ferramenta
Copilot solicita confirmação antes de executar qualquer consulta ou invocar uma ferramenta externa. Esta etapa protege você contra alterações não intencionais. Por padrão, cada ação requer uma aprovação explícita.
Ao aprovar uma ferramenta, use a lista suspensa Allow para definir a persistência:
- Permitir esta sessão: não há mais prompts para essa ferramenta na sessão de chat atual
- Permitir sempre: mantido entre sessões para essa ferramenta
Para revisar e redefinir as aprovações, vá para Tools>Options>GitHub>Copilot>Tools.
Aceitar ou descartar edições
Quando o modo Agent aplica alterações a arquivos abertos, um resumo total de alterações aparece na janela de chat. Selecione cada arquivo para examinar as alterações individualmente. Você pode manter ou desfazer edições feitas em cada seção de código usando os botões Manter e Desfazer . Como alternativa, na lista Total de alterações , selecione Manter ou Desfazer para todas as edições feitas desde a última vez que você selecionou Manter ou Desfazer.
Exibição de resumo de vários arquivos
A partir do SSMS 22.6, quando Copilot edita vários arquivos, você pode examinar todas as alterações em uma única exibição de resumo em vez de alternar entre arquivos individualmente.
- Depois que o Copilot concluir a edição, selecione o botão Abrir exibição de resumo das alterações no conjunto de trabalho do Copilot Chat.
- Uma única guia é aberta que mostra todos os arquivos alterados com as diferenças listadas.
- Você pode aceitar ou desfazer alterações em diferentes níveis de granularidade:
- Em todos os arquivos de uma só vez, usando os botões globais Manter arquivos e Desfazer arquivos.
- Para cada arquivo usando os botões Manter Todas as Alterações e Desfazer Tudo .
- Para cada alteração individual no código, use Manter (Ctrl + Y) e Desfazer (Ctrl + N).
- Use os controles no canto superior esquerdo da janela para:
- Recolher todo o conteúdo do arquivo para ver apenas cabeçalhos de arquivo para uma visão geral rápida
- Navegue entre partes difusivas usando os botões seguintes e anteriores para percorrer as alterações rapidamente Você também pode selecionar qualquer arquivo para abri-lo separadamente e ver seu contexto completo.
Interromper uma solicitação do modo Agente
Para interromper uma solicitação de modo de agente em andamento a qualquer momento, selecione Cancelar na janela de chat. O cancelamento interrompe todas as ferramentas em execução e as consultas pendentes. Todas as consultas já executadas e aprovadas não são revertidas automaticamente. Verifique o estado do banco de dados depois de cancelar uma operação de várias etapas, se necessário.
Scenarios
Os exemplos a seguir mostram como o modo agente lida com tarefas comuns de SQL Server. Estes exemplos são comandos representativos. Adapte-os ao banco de dados e às metas.
Criar e testar um procedimento armazenado
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.
O modo de agente lê o esquema do banco de dados para identificar as tabelas apropriadas, elabora o procedimento armazenado, executa a CREATE PROCEDURE instrução e executa uma execução de teste com parâmetros de exemplo para validar a saída.
Otimizar o desempenho da consulta
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.
O modo de agente pode gerar um plano de execução estimado para sua consulta, usar Repositório de Consultas para localizar o plano ou usar um plano real se você incluí-lo como referência. Ele identifica os antipadrões na consulta e nos planos de execução, incluindo índices ausentes. Ele propõe alterações específicas no código e no schema, incluindo instruções CREATE INDEX, e pode implementar essas alterações caso você aprove. Sempre implemente alterações em um ambiente de teste ou desenvolvimento antes de aplicá-las a um banco de dados de produção.
Investigue os logs
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.
O modo de agente revisa os arquivos ERRORLOG da instância, cria uma lista de problemas identificados e gera sugestões de resolução.
Auditar e corrigir lacunas de permissão
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.
O modo de agente consulta as exibições do catálogo de permissões, identifica lacunas, gera GRANT instruções e as executa se você aprovar.
Contexto e permissões de execução
Todas as consultas e comandos que o modo Agent executa são executados no contexto da sua conta autenticada, a menos que você designe um usuário do banco de dados ou um login SQL para o GitHub Copilot no CONSTITUTION.md do banco de dados como agentExecuteAsUser.
- Se o logon não tiver permissão para modificar uma tabela, o modo agent também não poderá modificá-la, mesmo se você aprovar a consulta proposta.
- O sistema de aprovação do Copilot não é um limite de segurança. Aplique o princípio do menor privilégio em seu banco de dados: conceda aos usuários apenas as permissões necessárias em objetos específicos.
- Para bancos de dados em que você deseja especificar um usuário de banco de dados ou logon do SQL, consulte Execution context for GitHub Copilot in SQL Server Management Studio.
- Se um usuário de banco de dados ou login SQL estiver associado a um banco de dados, e o usuário do GitHub Copilot não tiver a permissão IMPERSONATE, ele não poderá usar o GitHub Copilot para esse banco de dados.
Por padrão, o modo agent é configurado como READ_ONLY. Se o logon ou a conta agentExecuteAsUser tiver permissões para modificar dados ou o esquema de banco de dados, GitHub Copilot não executará essas consultas por padrão.
Você pode alterar o modo de agente para READ_WRITE no arquivo mcp.json. No entanto, se o logon ou a agentExecuteAsUser conta não tiver permissão para modificar dados ou o esquema de banco de dados, essas consultas falharão devido às permissões de segurança do SQL.
Perguntas frequentes
O modo agente executa consultas automaticamente sem me perguntar?
Não. O modo de agente solicita sua aprovação antes de executar cada consulta ou comando. Você pode optar por permitir uma ferramenta para a sessão atual ou sempre reduzir os prompts de aprovação.
O que acontece se uma consulta falhar?
O modo de agente detecta o erro, analisa-o e revisa sua abordagem automaticamente. Ele tenta resolver o problema sem mais informações de você. Se ele não conseguir resolver o erro após várias tentativas, ele relatará a falha e solicitará suas diretrizes.
Como o modo agente é diferente do modo Ask?
O modo Ask retorna uma única resposta e para. Você decide se deve aplicar o código gerado. O modo de agente executa várias etapas de forma autônoma, executa consultas com sua aprovação, monitora os resultados e itera. Use o modo Perguntar quando quiser ter controle total sobre cada etapa; use o modo agent para tarefas complexas de várias etapas em que você fornece apenas diretrizes.
Posso usar o modo agente com servidores MCP?
Sim. Você deve estar no modo agente para usar ferramentas MCP. Consulte Use servidores MCP com o GitHub Copilot no SQL Server Management Studio.
Como administrador, como faço para controlar o modo agente da minha organização?
Os administradores controlam o modo agente por meio do painel GitHub Copilot. Para obter mais informações, consulte Admin controls for GitHub Copilot in SQL Server Management Studio.
Conteúdo relacionado
- Use a experiência de Copilot Chat do GitHub em SQL Server Management Studio
- Use as habilidades do agente do GitHub Copilot no SQL Server Management Studio
- Use servidores MCP com o GitHub Copilot no SQL Server Management Studio
- Contexto de execução para o GitHub Copilot no SQL Server Management Studio
- Solucionar problemas do GitHub Copilot no SQL Server Management Studio