Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
GitHub Copilot mode Agent (préversion) dans SQL Server Management Studio (SSMS) vous permet de spécifier un objectif de haut niveau en langage naturel et d’avoir Copilot travailler dessus en exécutant des requêtes, en lisant des fichiers et en itérant sur ses propres sorties jusqu’à ce que la tâche soit terminée ou que votre entrée soit nécessaire.
Note
Le mode Agent de GitHub Copilot dans SQL Server Management Studio (SSMS) est actuellement en préversion.
Contrairement au mode Ask, qui s’arrête après une seule réponse, le mode Agent continue d’exécuter des étapes, d’appeler des outils et d’affiner son approche jusqu’à ce qu’il atteigne votre objectif. Toutes les requêtes et commandes sont exécutées dans le contexte de la connexion et des autorisations de l’utilisateur, sauf si un utilisateur de base de données personnalisé ou une connexion SQL est spécifié au début de la base de données CONSTITUTION.md. Pour plus d’informations, consultez le contexte d’exécution pour GitHub Copilot dans SQL Server Management Studio.
Important
Le mode Agent peut exécuter des requêtes et apporter des modifications de base de données en votre nom. Copilot demande votre approbation avant d’exécuter chaque requête ou commande. Examinez attentivement les actions proposées avant de les approuver. Appliquez le contrôle d'accès à l'aide des autorisations de privilège minimum de SQL Server. La limite de sécurité est l'application des autorisations de SQL Server, et non pas le système d'approbation de Copilot.
Mode Ask ou mode Agent
Utilisez le tableau suivant pour déterminer le mode adapté à votre tâche :
| Mode Demande | Mode agent | |
|---|---|---|
| Fonctionnement | Une seule réponse par prompt ; vous appliquez le code manuellement | Exécution à plusieurs étapes ; itère jusqu’à ce que l’objectif soit atteint |
| Exécution | Requêtes en lecture seule | Les requêtes et les commandes s’exécutent avec votre approbation |
| Modifications de schéma | Génère le code T-SQL à exécuter | Peut exécuter des modifications de schéma si vous les approuvez et que votre connexion a l’autorisation |
| Idéal pour | Exploration des idées, examen du code généré avant d’appliquer | Tâches multi-étapes complexes, investigation, analyse et développement itératif |
| Interruption | Réponse unique, vous pouvez annuler à tout moment | Vous pouvez annuler à tout moment |
Prerequisites
- SSMS 22.7 ou version ultérieure avec la charge de travail d’assistance IA.
- Un compte GitHub avec un accès Copilot. Vous pouvez également utiliser gratuitement GitHub Copilot dans SQL Server Management Studio.
Utiliser le mode Agent
En mode Agent, Copilot fonctionne de manière autonome et détermine le contexte approprié pour votre invite. Le mode agent pour GitHub Copilot dans SSMS utilise un serveur MCP local, sql-tools pour son intégration et est fourni avec un ensemble prédéfini d’outils.
- Dans SSMS, sélectionnez View>GitHub Copilot Chat pour ouvrir la fenêtre de conversation.
- En bas de la fenêtre de conversation, développez la liste déroulante mode et sélectionnez Agent.
- En bas à droite de la fenêtre de conversation, sélectionnez l’icône Outils pour afficher les outils disponibles.
- Dépliez
sql-toolspour voir les outils prédéfinis. Pointez sur le nom de l’outil pour en savoir plus sur ce qu’il fait. Si vous désélectionnez tous les outils, le mode Agent ne fonctionne pas comme prévu. - Vous ne pouvez pas désactiver la
SSMSliste des outils. - Saisissez une requête qui décrit l’objectif global, et indiquez le nom de la base de données ou du serveur que vous utilisez. Le mode Agent n’hérite pas du contexte de l’éditeur de requête actif.
Important
Pour obtenir de meilleurs résultats, incluez la base de données ou le serveur dans votre invite. Cette inclusion réduit l’ambiguïté et le nombre d’appels d’outils. Si vous n'incluez pas d'informations de connexion, Copilot lit votre liste de connexions pour identifier une connexion à utiliser ou demander des précisions sur la base de données ou le serveur à utiliser.
Pour envoyer votre invite, sélectionnez Envoyer ou appuyez sur Entrée.
Exemples d’invites pour commencer :
- 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 jobsLe mode Agent peut appeler plusieurs outils pour terminer votre demande. Par exemple, lors de la lecture des informations de schéma, la génération de Transact-SQL et l’analyse des résultats. L’outil actif apparaît dans la conversation à mesure que chaque étape s’exécute.
Lorsque Copilot est prêt à exécuter une requête ou une commande, il suspend et demande votre approbation. Passez en revue l’action proposée, puis sélectionnez Autoriser à continuer ou Ignorer pour ignorer cette étape.
Vous pouvez configurer l’étendue de l’approbation à l’aide de la liste déroulante Autoriser :
Option Résultat Autoriser une fois Approuve cette invocation unique Autoriser cette session Approuve cet outil pour le reste de la session de conversation actuelle Autoriser toujours Approuve cet outil pour tous les appels suivants Pour réinitialiser les paramètres d’approbation des outils, accédez à Tools>Options>GitHub>Copilot>Tools.
Copilot surveille le résultat de chaque étape. Si une requête retourne une erreur ou un résultat qui ne répond pas à votre objectif, Copilot révise son approche et réessaye automatiquement.
Une fois la tâche terminée, Copilot récapitule ce qu’elle a fait. Passez en revue les modifications appliquées à votre base de données ou à l’éditeur de requête.
Comprendre les outils en mode Agent
En mode Agent, Copilot pouvez utiliser les outils suivants pour effectuer votre demande :
- Outils intégrés
- Outils MCP (Model Context Protocol)
- Compétences de l’agent qui fournissent des instructions spécifiques à la tâche
Note
Le mode Agent fonctionne uniquement avec les bases de données et les objets auxquels vous pouvez accéder ou vous connecter, ou à l’aide d’informations d’identification dans le fichier de base de données CONSTITUTION.md . Il ne dispose pas d’autorisations supplémentaires au-delà de celles dont vos identifiants disposent déjà.
Pour afficher et gérer les outils disponibles en mode Agent, sélectionnez l’icône Outils dans la fenêtre de conversation. En fonction du résultat d’un outil, Copilot peut appeler d’autres outils pour accomplir la demande globale. Par exemple, si une modification de code T-SQL entraîne une erreur de syntaxe, Copilot peut explorer une autre approche et suggérer une modification différente.
Vous pouvez également étendre le mode Agent avec des serveurs MCP pour connecter Copilot aux outils et services externes. Les outils disponibles pour un serveur MCP ne sont pas activés automatiquement. Leurs cases à cocher sont désactivées par défaut et vous devez les sélectionner pour activer les outils.
Gérer les approbations des outils
Copilot demande la confirmation avant d’exécuter une requête ou d’appeler un outil externe. Cette étape vous protège contre les modifications involontaires. Par défaut, chaque action nécessite une approbation explicite.
Lorsque vous approuvez un outil, utilisez la liste déroulante Autoriser pour définir la persistance :
- Autoriser cette session : aucune autre invite pour cet outil dans la session de conversation actuelle
- Autoriser toujours : conservé d’une session à l’autre pour cet outil
Pour passer en revue et réinitialiser les approbations, accédez à Tools>Options>GitHub>Copilot>Tools.
Accepter ou ignorer les modifications
Lorsque le mode Agent applique des modifications aux fichiers ouverts, un résumé total des modifications s’affiche dans la fenêtre de conversation. Sélectionnez chaque fichier pour passer en revue les modifications individuellement. Vous pouvez conserver ou annuler les modifications apportées à chaque section de code à l’aide des boutons Conserver et Annuler . Sinon, dans la liste Total des modifications , sélectionnez Conserver ou Annuler pour toutes les modifications apportées depuis la dernière fois que vous avez sélectionné Conserver ou Annuler.
Vue récapitulative multi-fichiers
À compter de SSMS 22.6, lorsque Copilot modifie plusieurs fichiers, vous pouvez passer en revue toutes les modifications d’une vue récapitulative unique au lieu de basculer entre les fichiers individuellement.
- Une fois que Copilot a terminé les modifications, sélectionnez le bouton Ouvrir la vue récapitulative des modifications dans l’ensemble de travail Copilot Chat.
- Un onglet unique s’ouvre pour afficher tous les fichiers modifiés avec les différences répertoriées.
- Vous pouvez accepter ou annuler des modifications à différents niveaux de granularité :
- Sur tous les fichiers à la fois, utilisez les boutons Conserver les fichiers globaux et Annuler les fichiers .
- Pour chaque fichier à l’aide des boutons Conserver toutes les modifications et Annuler toutes les modifications.
- Pour chaque modification de code individuelle, utilisez Keep (Ctrl + Y) et Annuler (Ctrl + N).
- Utilisez les contrôles dans le coin supérieur gauche de la fenêtre pour :
- Réduire tout le contenu du fichier pour afficher uniquement les en-têtes de fichier pour une vue d’ensemble rapide
- Naviguez entre les blocs de différences à l’aide des boutons suivants et précédents pour parcourir rapidement les modifications, vous pouvez également sélectionner n’importe quel fichier pour l’ouvrir séparément et voir son contexte complet.
Interrompre une requête en mode Agent
Pour arrêter une demande en mode Agent en cours à tout moment, sélectionnez Annuler dans la fenêtre de conversation. L’annulation arrête tous les outils en cours d’exécution et les requêtes en attente. Toutes les requêtes déjà exécutées et approuvées ne sont pas automatiquement restaurées. Vérifiez l’état de votre base de données après l’annulation d’une opération en plusieurs étapes si nécessaire.
Scenarios
Les exemples suivants montrent comment le mode Agent gère les tâches courantes SQL Server. Ces exemples sont des requêtes représentatives. Adaptez-les à votre base de données et à vos objectifs.
Créer et tester une procédure stockée
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.
Le mode Agent lit le schéma de votre base de données pour identifier les tables appropriées, rédige la procédure stockée, exécute l’instruction CREATE PROCEDURE , puis exécute une exécution de test avec des exemples de paramètres pour valider la sortie.
Optimiser les performances des requêtes
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.
Le mode agent peut générer un plan d’exécution estimé pour votre requête, utiliser Magasin des requêtes pour rechercher le plan ou utiliser un plan réel si vous l’incluez comme référence. Il identifie les anti-modèles dans la requête et les plans d’exécution, y compris les index manquants. Il propose des modifications spécifiques du code et du schéma, y compris des instructions CREATE INDEX, et peut appliquer ces modifications si vous les approuvez. Implémentez toujours les modifications dans un environnement de test ou de développement avant de les appliquer à une base de données de production.
Examiner les journaux d’activité
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.
Le mode agent examine les fichiers ERRORLOG de l’instance, crée une liste de problèmes identifiés et génère des suggestions de résolution.
Auditer et corriger les lacunes d’autorisation
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.
Le mode agent interroge les vues du catalogue d’autorisations, identifie les lacunes, génère des GRANT instructions et les exécute si vous approuvez.
Contexte d’exécution et autorisations
Toutes les requêtes et commandes exécutées en mode Agent s'exécutent dans le contexte de votre compte authentifié, sauf si vous désignez un utilisateur de base de données ou une connexion SQL pour GitHub Copilot dans le CONSTITUTION.md de la base de données en tant que agentExecuteAsUser.
- Si votre connexion n’est pas autorisée à modifier une table, le mode Agent ne peut pas le modifier non plus, même si vous approuvez la requête proposée.
- le système d'approbation de Copilot n'est pas une limite de sécurité. Appliquez le principe du privilège minimum dans votre base de données : accordez aux utilisateurs uniquement les autorisations dont ils ont besoin sur des objets spécifiques.
- Pour les bases de données dans lesquelles vous souhaitez spécifier un utilisateur de base de données ou une connexion SQL, consultez Contexte d’exécution pour GitHub Copilot dans SQL Server Management Studio.
- Si un utilisateur de base de données ou une connexion SQL est désigné pour une base de données et que l'utilisateur de GitHub Copilot n'a pas d'autorisation IMPERSONATE, il ne peut pas utiliser GitHub Copilot pour cette base de données.
Par défaut, le mode Agent est configuré en tant que READ_ONLY. Si votre connexion ou le compte agentExecuteAsUser, dispose des autorisations nécessaires pour modifier les données ou le schéma de base de données, GitHub Copilot n'exécute pas ces requêtes par défaut.
Vous pouvez remplacer le mode Agent par READ_WRITE dans le fichier mcp.json. Toutefois, si votre connexion ou votre agentExecuteAsUser compte n’a pas l’autorisation de modifier les données ou le schéma de base de données, toutes ces requêtes échouent en raison des autorisations de sécurité SQL.
Questions fréquemment posées
Le mode Agent exécute-t-il automatiquement des requêtes sans me demander ?
Non. Le mode agent demande votre approbation avant d’exécuter chaque requête ou commande. Vous pouvez choisir d’autoriser un outil pour la session en cours ou de façon permanente afin de réduire les demandes d’approbation.
Que se passe-t-il si une requête échoue ?
Le mode Agent détecte l’erreur, l’analyse et révise automatiquement son approche. Il tente de résoudre le problème sans aucune autre entrée de votre part. S’il ne peut pas résoudre l’erreur après plusieurs tentatives, il signale l’échec et demande votre aide.
Comment le mode Agent diffère-t-il du mode Demander ?
Le mode Demander retourne une seule réponse et s’arrête. Vous décidez s’il faut appliquer le code généré. Le mode agent exécute plusieurs étapes de manière autonome, exécute des requêtes avec votre approbation, surveille les résultats et itère. Utilisez le mode Demander lorsque vous souhaitez un contrôle total sur chaque étape ; utilisez le mode Agent pour les tâches multi-étapes complexes où vous fournissez uniquement des conseils.
Puis-je utiliser le mode Agent avec les serveurs MCP ?
Yes. Vous devez être en mode Agent pour utiliser les outils MCP. Consultez Utilisez les serveurs MCP avec GitHub Copilot dans SQL Server Management Studio.
En tant qu’administrateur, comment contrôler le mode Agent pour mon organisation ?
Les administrateurs contrôlent le mode Agent via le tableau de bord GitHub Copilot. Pour plus d’informations, consultez Admin controls for GitHub Copilot in SQL Server Management Studio.
Contenu connexe
- Utiliser l’expérience GitHub Copilot Chat dans SQL Server Management Studio
- Utilisez les compétences de l’agent avec GitHub Copilot dans SQL Server Management Studio
- Utilisez des serveurs MCP avec GitHub Copilot dans SQL Server Management Studio
- Contexte d’exécution pour GitHub Copilot dans SQL Server Management Studio
- Résoudre les problèmes liés à GitHub Copilot dans SQL Server Management Studio