Utilize o modo de agente do GitHub Copilot (pré-visualização) no SQL Server Management Studio

O modo GitHub Copilot Agent (pré-visualização) no SQL Server Management Studio (SSMS) permite-lhe especificar um objetivo de alto nível em linguagem natural e fazer com que o Copilot o trabalhe executando consultas, lendo ficheiros e iterando nos seus próprios resultados até a tarefa estar concluída ou até que a sua intervenção seja necessária.

Note

O modo GitHub Copilot Agent no SQL Server Management Studio (SSMS) está atualmente em pré-visualização.

Ao contrário do modo Perguntar, que para após uma única resposta, o modo Agente continua a executar etapas, a invocar ferramentas e a refinar a sua abordagem até atingir o seu objetivo. Todas as consultas e comandos são executados no contexto do login e das permissões do utilizador, a menos que um utilizador personalizado da base de dados ou login SQL seja especificado na parte inicial da CONSTITUTION.mdbase de dados . Para mais informações, consulte Contexto de execução para GitHub Copilot em SQL Server Management Studio.

Importante

O modo agente pode executar consultas e fazer alterações na base de dados em seu nome. O Copilot pede a sua aprovação antes de executar cada consulta ou comando. Revise cuidadosamente as ações propostas antes de as aprovar. Aplicar controlo de acesso usando as permissões de privilégio mínimo do SQL Server. O limite de segurança é a aplicação de permissões do SQL Server, não o sistema de aprovação do Copilot.

Modo Pergunta versus Modo Agente

Use a tabela seguinte para decidir qual o modo que se adequa à sua tarefa:

Modo de Pergunta Modo de agente
Como funciona Resposta única por pergunta; Aplicas o código manualmente Execução em vários passos; Itera até atingir o objetivo
Execução Apenas consultas de leitura As consultas e os comandos são executados com a sua aprovação
Alterações de esquemas Gera T-SQL para executares Pode executar alterações de esquema se as aprovar e o seu login tiver permissão
Melhor para Explorar ideias, rever código gerado antes de te candidatares Tarefas complexas em múltiplos passos, investigação, análise e desenvolvimento iterativo
Interrupção Resposta única, pode cancelar a qualquer momento Pode cancelar a qualquer momento

Pré-requisitos

Usar o modo Agente

No modo Agente, o Copilot opera de forma autónoma e determina o contexto relevante para o seu prompt. O modo agente para GitHub Copilot no SSMS utiliza um servidor MCP local, sql-tools para a sua integração, e vem com um conjunto pré-definido de ferramentas.

  1. No SSMS, selecione View>GitHub Copilot Chat para abrir a janela do chat.
  2. No fundo da janela de chat, expande a lista suspensa de modos e seleciona Agente.
  3. No canto inferior direito da janela de chat, selecione o ícone Ferramentas para ver as ferramentas disponíveis.
  4. Expanda sql-tools para ver as ferramentas pré-definidas. Passe o rato sobre o nome da ferramenta para saber mais sobre o que ela faz. Se desmarcar todas as ferramentas, o modo Agente não funciona como esperado.
  5. Não podes desativar a SSMS lista de ferramentas.
  6. Introduza o seu pedido, descrevendo o objetivo geral, e inclua o nome da base de dados ou do servidor em que está a trabalhar. O modo agente não herda o contexto do editor de consultas ativo.

Importante

Para melhores resultados, inclua a base de dados ou o servidor no seu prompt. Esta adição reduz a ambiguidade e o número de chamadas a ferramentas. Se não incluir informações de ligação, o Copilot lê a sua lista de ligações para identificar uma ligação a usar ou pede esclarecimentos sobre qual base de dados ou servidor utilizar.

  1. Para submeter o seu prompt, selecione Enviar ou pressione Enter.

    Exemplos 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 jobs
    
  2. O modo agente pode invocar várias ferramentas para completar o seu pedido. Por exemplo, ao ler informação de esquemas, gerar Transact-SQL e analisar resultados. A ferramenta ativa aparece no chat à medida que cada passo avança.

  3. Quando o Copilot está pronto para executar uma consulta ou comando, faz uma pausa e pede a sua aprovação. Revise a ação proposta e depois selecione Permitir prosseguir, ou Descartar para saltar essa etapa.

    Pode configurar o âmbito de aprovação utilizando a lista pendente Permitir:

    Option Effect
    Permitir uma vez Aprova esta única invocação
    Permite esta sessão Aprova esta ferramenta para o resto da sessão de chat atual
    Permitir sempre Aprova esta ferramenta para todas as invocações subsequentes

    Para redefinir as definições de aprovação de ferramentas, vá a Tools>Options>GitHub>Copilot>Tools.

  4. O Copilot monitoriza o resultado de cada etapa. Se uma consulta devolver um erro ou um resultado que não corresponde ao seu objetivo, o Copilot revê a sua abordagem e tenta novamente automaticamente.

  5. Quando a tarefa está concluída, o Copilot resume o que fez. Revise quaisquer alterações aplicadas à sua base de dados ou ao editor de consultas.

Compreender as ferramentas do modo Agente

No modo Agente, o Copilot pode usar as seguintes ferramentas para completar o seu pedido:

Note

O modo agente funciona apenas com bases de dados e objetos a que pode aceder ou ligar, ou usando credenciais no ficheiro da base de dados CONSTITUTION.md . Não tem permissões elevadas para além das que as tuas credenciais já têm.

Para visualizar e gerir as ferramentas disponíveis no modo Agente, selecione o ícone de 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 num erro de sintaxe, o Copilot pode explorar outra abordagem e sugerir uma alteração diferente.

Também pode estender o modo Agente com servidores MCP para ligar Copilot a ferramentas e serviços externos. As ferramentas disponíveis para um servidor MCP não são ativadas 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 ferramentas

O Copilot solicita confirmação antes de executar qualquer consulta ou invocar uma ferramenta externa. Este passo protege-o de alterações indesejadas. Por defeito, cada ação requer uma aprovação explícita.

Ao aprovar uma ferramenta, utilize a lista pendente Permitir 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 rever e redefinir aprovações, vá a Tools>Options>GitHub>Copilot>Tools.

Aceitar ou descartar edições

Quando o modo Agente aplica alterações a ficheiros abertos, aparece um resumo total de alterações na janela de chat. Selecione cada arquivo para revisar as alterações individualmente. Pode manter ou desfazer as edições feitas em cada secção do 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.

Vista de resumo de vários ficheiros

A partir do SSMS 22.6, quando o Copilot edita vários ficheiros, pode rever todas as alterações numa única vista de resumo em vez de alternar entre ficheiros individualmente.

  1. Depois de Copilot terminar a edição, selecione o botão Open changes summary view no conjunto de trabalho Copilot Chat.
  2. Abre-se um único separador que mostra todos os ficheiros alterados com as diferenças listadas.
  3. Pode aceitar ou desfazer alterações em diferentes níveis de granularidade:
  • Em todos os ficheiros ao mesmo tempo, utilizando os botões globais Manter ficheiros e Anular ficheiros.
  • Para cada ficheiro, usa os botões Guardar Todas as Alterações e Desfazer Tudo .
  • Para cada alteração individual de código, usar Keep (Ctrl + Y) e Undo (Ctrl + N).
  1. Use os controlos no canto superior esquerdo da janela para:
  • Contraia o conteúdo de todos os ficheiros para ver apenas os cabeçalhos, para uma visão geral rápida
  • Navegue entre diferentes blocos usando os botões seguinte e anterior para saltar rapidamente pelas alterações. Também pode selecionar qualquer ficheiro para abrir separadamente e ver o seu contexto completo.

Interrupção de um pedido em modo Agente

Para parar um pedido em curso no modo Agente a qualquer momento, selecione Cancelar na janela do chat. Cancelar interrompe todas as ferramentas em execução e as consultas pendentes. Quaisquer consultas já executadas e aprovadas não são automaticamente revertidas. Verifica o estado da tua base de dados depois de cancelares uma operação em vários passos, se necessário.

Scenarios

Os exemplos seguintes mostram como o modo Agente lida com tarefas comuns do SQL Server. Estes exemplos são instruções exemplificativas. Adapte-os à sua base de dados e objetivos.

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 agente lê o esquema da sua base de dados para identificar as tabelas apropriadas, elabora o procedimento armazenado, executa a CREATE PROCEDURE instrução e depois executa um 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 agente pode gerar um plano de execução estimado para a sua consulta, usar o Query Store para encontrar o plano, ou usar um plano real se o incluir como referência. Identifica anti-padrões na consulta e nos planos de execução, incluindo índices em falta. Propõe alterações específicas no código e no esquema, incluindo instruções CREATE INDEX, e pode implementar essas alterações se o aprovar. Implemente sempre alterações num ambiente de teste ou desenvolvimento antes de as aplicar a uma base de dados de produção.

Investigar registos

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 agente revê os ficheiros ERRORLOG da instância, cria uma lista dos problemas identificados e gera sugestões para resolução.

Auditar e corrigir falhas de permissões

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 agente consulta as vistas do catálogo de permissões, identifica lacunas, gera GRANT instruções e executa-as se aprovar.

Contexto de execução e permissões

Todas as consultas e comandos que o modo Agente executa executam no contexto da sua conta autenticada, a menos que designe um utilizador de base de dados ou login SQL para GitHub Copilot no CONSTITUTION.md da base de dados como agentExecuteAsUser.

  • Se o seu login não tiver permissão para modificar uma tabela, o modo Agente também não pode modificá-la, mesmo que aprove a consulta proposta.
  • O sistema de aprovação do Copilot não é uma barreira de segurança. Aplique o princípio do privilégio mínimo na sua base de dados: conceda aos utilizadores apenas as permissões necessárias para objetos específicos.
  • Para bases de dados onde pretende especificar um utilizador de base de dados ou login SQL, veja Execution context para GitHub Copilot em SQL Server Management Studio.
  • Se um utilizador de base de dados ou login SQL for designado para uma base de dados, e o utilizador do GitHub Copilot não tiver permissão para IMPERSONAR, não pode usar o GitHub Copilot para essa base de dados.

Por defeito, o modo Agente está configurado como READ_ONLY. Se o seu login, ou a conta agentExecuteAsUser, tiver permissões para modificar dados ou o esquema da base de dados, GitHub Copilot não executa essas consultas por defeito.

Podes mudar o modo Agente para READ_WRITE no ficheiro mcp.json. No entanto, se o seu login ou a agentExecuteAsUser conta não tiver permissão para modificar dados ou o esquema da base de dados, qualquer consulta falha devido a permissões de segurança SQL.

Perguntas frequentes

O modo Agente executa consultas automaticamente sem me perguntar?

No. O modo agente solicita a sua aprovação antes de executar cada consulta ou comando. Pode optar por permitir uma ferramenta para a sessão atual ou sempre reduzir os pedidos de aprovação.

O que acontece se uma consulta falhar?

O modo agente deteta o erro, analisa-o e revê automaticamente a sua abordagem. Tenta resolver o problema sem mais intervenções tuas. Se não conseguir resolver o erro após várias tentativas, reporta a falha e pede a sua orientação.

Em que é que o modo Agente difere do modo Perguntar?

O modo Ask devolve uma única resposta e para. Decides se aplicas o código gerado. O modo agente executa múltiplos passos de forma autónoma, executa consultas com a sua aprovação, monitoriza os resultados e itera. Usa o modo Perguntar quando quiseres ter controlo total de cada passo; Use o modo Agente para tarefas complexas de vários passos onde apenas fornece orientação.

Posso usar o modo Agente com servidores MCP?

Yes. Tens de estar em modo Agente para usar as ferramentas MCP. Veja Utilizar servidores MCP com o GitHub Copilot no SQL Server Management Studio.

Como administrador, como posso controlar o modo Agente da minha organização?

Os administradores controlam o modo Agente através do painel do GitHub Copilot. Para mais informações, consulte Admin controls para GitHub Copilot em SQL Server Management Studio.