Краткое руководство: использование режима агента GitHub Copilot

Режим агента позволяет GitHub Copilot координировать работу средств, предоставляемых расширением MSSQL для Visual Studio Code. Когда расширение установлено и активно, GitHub Copilot может выводить список подключений к Microsoft SQL Server, подключаться к серверу и базе данных, получать метаданные схемы и выполнять запросы по запросам на естественном языке, с вашего подтверждения для каждого действия.

Все действия используют тот же контекст подключения и учетные данные, что и расширение MSSQL. Режим агента не вводит другие изменения проверки подлинности или разрешений.

Tip

Используйте режим агента для многоэтапных рабочих процессов, масштабного исследования и делегированных изменений. Используйте режим запроса , если вам нужен один ответ или однократный запрос. Используйте режим плана , когда необходимо подумать о проектировании перед написанием языка определения данных Transact-SQL (T-SQL).

Основные итоги

  • Режим агента автоматически выбирает средства расширения MSSQL. Упоминание @mssql не требуется.
  • Каждый вызов инструмента требует вашего подтверждения перед выполнением.
  • Режим агента учитывает схему с помощью своих инструментов: каждый вызов средства возвращает реальные данные из подключенной базы данных.
  • Сведения о контексте архитектуры во всех поверхностях см. в статье о том, как GitHub Copilot работает с расширением MSSQL.

Когда следует использовать режим агента

Режим агента лучше всего подходит для:

  • Многоэтапные рабочие процессы. Подключитесь к LocalDev, переключитесь на AdventureWorks, а затем покажите мне все таблицы, имеющие внешний ключ на Customer.
  • Масштабное исследование. Найдите все хранимые процедуры, которые ссылаются на SalesOrderHeader, и кратко опишите, что делает каждая из них.
  • Делегированные изменения. Добавьте столбцы аудита во все таблицы схемы Sales и пересоздайте связанные хранимые процедуры.

Используйте режим запроса , когда один вопрос или однократный запрос отвечает на ваши потребности. Используйте слеш-команды, когда вы уже знаете, какое действие хотите выполнить. Используйте режим плана , если требуется письменный план перед любыми изменениями.

Дополнительные сведения о том, как режим агента выбирает и выполняет инструменты, см. в документации Visual Studio Code по режиму агента.

Что такое режим агента?

Режим агента позволяет GitHub Copilot выполнять действия, связанные с SQL, с помощью расширения MSSQL, а до выполнения требуется подтверждение пользователя.

Эти действия можно вызвать с помощью таких переменных чата, как #mssql_connect, например, или путем выдачи эквивалентных запросов естественного языка, например:

Connect to my Library database using my LocalDev profile

Снимок экрана интерфейса режима агента GitHub Copilot.

Справочник по инструменту режима агента MSSQL

В этом разделе содержится подробная информация о средствах, специфичных для SQL, доступных в режиме агента GitHub Copilot. Расширение MSSQL предоставляет эти средства, позволяя GitHub Copilot выполнять действия с помощью переменных чата или запросов естественного языка. Все средства требуют подтверждения пользователя перед выполнением.

Снимок экрана – список инструментов, специфичных для SQL, внесенных расширением MSSQL в режиме агента Copilot.

Tip

Вы также можете использовать переменные чата, такие как #mssql_connect, чтобы напрямую вызвать эти средства или писать запросы на естественном языке, например, таким образом:

Connect to my development database

GitHub Copilot автоматически обрабатывает выбор инструмента.

Управление подключениями

Имя инструмента Description
connect Подключается к базе данных с помощью сохраненного профиля подключения или указанного сервера и базы данных.
disconnect Завершает текущий активный сеанс подключения.
change_database Изменяет базу данных для существующего сеанса подключения.
get_connection_details Возвращает сведения о конкретном подключении MSSQL.
list_servers Выводит список всех сохраненных профилей подключений SQL Server в вашей среде.
list_databases Выводит список всех доступных баз данных для подключенного сервера MSSQL.

Examples

Используйте следующие фразы для взаимодействия с GitHub Copilot.

- Connect to my LocalDev environment
- Disconnect from my current database
- List my available connection profiles
- List all databases in the localhost server
- Set the active connection to localhost
- Set AdventureWorks as the active database
- Get the connection string for AdventureWorks on localhost

Снимок экрана: пример использования средства агента для подключения к базе данных в чате GitHub Copilot.

Принцип работы логики подключения

Режим агента GitHub Copilot поддерживает гибкие способы подключения к базе данных SQL, ссылаясь на сохраненные профили или указав сервер и базу данных напрямую. Вот как работает логика подключения.

При подключении с сохраненным профилем:

  1. Вы подключаетесь, ссылаясь на имя сохраненного профиля подключения.
  2. GitHub Copilot использует mssql_list_servers средство для проверки наличия профиля.
  3. Затем средство mssql_connect использует сохраненные profileId и их параметры для установления соединения.

При подключении путем указания сервера и базы данных:

  • Если сохраненный профиль соответствует указанному серверу и базе данных:

    1. GitHub Copilot используется mssql_list_servers для поиска совпадения.
    2. Затем вызывает mssql_connect с использованием полного профиля.
  • Если сохраненный профиль соответствует только серверу:

    1. GitHub Copilot находит соответствующий профиль сервера.
    2. Он пытается подключиться, подставив запрошенную пользователем базу данных в этот профиль.
    3. Если соединение не удалось, отображается сообщение об ошибке.
  • Если профиль не соответствует указанному серверу:

    • GitHub Copilot сообщает об ошибке.

Эта гибкая система сопоставления позволяет GitHub Copilot обрабатывать ряд сценариев подключения. Она сводит к минимуму усилия пользователей, обеспечивая безопасные, подтвержденные действия.

Исследование схемы

Имя инструмента Description
show_schema Отображает высокоуровневую схему схемы подключенной базы данных, включая таблицы и связи.
list_schemas Выводит список всех схем в базе данных для подключенного сервера MSSQL.
list_tables Выводит список всех таблиц в базе данных для подключенного сервера MSSQL.
list_views Выводит список всех представлений в базе данных для подключенного сервера MSSQL.
list_functions Перечисляет все функции в базе данных для подключенного сервера MSSQL.

Examples

Используйте следующие фразы для взаимодействия с GitHub Copilot.

- Show me the schema for this database
- Show me all tables in the current database
- List all views from this MSSQL database
- Give me a list of all the functions available in this schema
- What schemas are available in this database?

Снимок экрана: анимация, показывающая средство визуализатора схемы базы данных в режиме агента Copilot.

Выполнение запросов

Имя инструмента Description
run_query Выполняет SQL-запрос к подключенной базе данных.

Examples

Используйте следующие фразы для взаимодействия с GitHub Copilot.

- Give me the top five posts published this week
- Execute the current file to find how many comments each post has
- Get all categories along with the number of posts in each

Снимок экрана: пример использования средства агента для подключения к базе данных и получения данных.

Снимок экрана: другой пример использования средства агента для подключения к базе данных и получения данных.

Управление инструментами в режиме агента

GitHub Copilot может использовать средства MSSQL и другие инструменты, предоставленные расширениями, во время обработки запроса. Эти средства можно увидеть в интерфейсе режима агента в меню "Сервис ", где также можно включить или отключить определенные инструменты.

При вызове средства, особенно при взаимодействии с компьютером или базой данных, GitHub Copilot запрашивает подтверждение для обеспечения безопасного выполнения. Можно разрешить использование средства для текущего сеанса, рабочей области или на постоянной основе.

Дополнительные сведения о видимости и утверждениях инструментов см. в разделе "Управление утверждениями инструментов".

Рабочий процесс подтверждения режима агента

Когда GitHub Copilot выбирает инструмент, он открывает диалоговое окно подтверждения, показывающее сведения о запрошенном действии. Перед выполнением любых команд, взаимодействующих с компьютером или базой данных, необходимо явно утвердить запрос:

  • Разрешить в этом сеансе
  • Разрешить в этой рабочей области
  • Всегда разрешать

Этот шаг подтверждения помогает обеспечить безопасное, преднамеренное взаимодействие с средой разработки.

Note

Дополнительные сведения о том, как подтверждение работает во всех средствах в режиме агента, см. в документации по Visual Studio Code по утверждениям инструментов.

Каталог промптов для режима агента

Используйте эти запросы естественного языка для вызова средств расширения MSSQL через режим агента. Для каждой категории приводится перекрёстная ссылка на эквивалентную слэш-команду или запрос в режиме ask.

Управление подключениями

Connect to my LocalDev profile and set AdventureWorks as the active database.
List all my saved connection profiles and tell me which one I'm currently connected to.
Disconnect from my current database.

Эквивалентные слеш-команды: /connect, /listServers, /changeDatabase, /disconnect.

Исследование схемы

Show me every table in the SalesLT schema, grouped by whether they're
referenced by a foreign key from another table.
Find all stored procedures that reference SalesLT.SalesOrderHeader and
summarize what each one does in one sentence.
Which tables in the current database have no primary key?

Эквиваленты задают запросы: см. чат с участником@mssql.

Выполнение запросов

Run a query to count the number of active customers in SalesLT.Customer,
then show me the top 10 by order total.
Show me the execution plan for this query: SELECT ... FROM ...
Execute the last query I ran against my Dev database instead.

Многоэтапные рабочие процессы

Connect to LocalDev, switch to AdventureWorks, list all tables with a
foreign key to SalesLT.Customer, and save the list to a file called
customer-dependents.md.
Find every stored procedure that uses dynamic SQL and open each one
in a new editor tab so I can review them.

Делегированные изменения в схеме

Note

Изменения схемы лучше сначала прогонять через режим планирования. Запланируйте изменения, просмотрите их, а затем передайте план в режим агента для выполнения.

Add createdAt and updatedAt audit columns to every table in the Sales
schema that doesn't already have them. Use DATETIME2(7) with a default
of GETUTCDATE().
Regenerate every stored procedure that inserts into SalesLT.Customer
to include the new email column.