GitHub Copilot 代理模式将上下文驱动的聊天体验引入 Visual Studio Code 的 MSSQL 扩展中。 使用代理模式,GitHub Copilot 可以超越建议代码,它可以使用自然语言提示或内置工具安全地执行真实数据库任务。 可以列出所有连接,连接到特定的服务器/数据库,并浏览架构,而无需离开编辑器。
Tip
无需提及参与者,例如 @mssql,即可在代理模式下使用 SQL 工具。 MSSQL 扩展处于活动状态后,其工具将自动在代理模式接口中可用。 有关详细信息,请参阅 代理模式工具。
这些操作由 MSSQL 扩展提供的工具支持,并直接在 GitHub Copilot 的代理模式中呈现。 有关代理模式工作原理的详细信息,请参阅 有关代理模式的 Visual Studio Code 文档。
什么是代理模式?
代理模式使 GitHub Copilot 可以超越建议代码。 现在,它可以在 SQL 开发环境中使用聊天变量(例如 #mssql_connect)或自然语言短语来执行安全且已确认的操作。
Connect to my Library database using my LocalDev profile
MSSQL 代理模式工具参考
本部分提供了 GitHub Copilot Agent Mode 中可用的 SQL 特定工具的详细参考。 MSSQL 扩展提供了这些工具,使 GitHub 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 代理模式支持通过引用已保存的配置文件或直接指定服务器和数据库来连接到 SQL 数据库的灵活方法。 下面是连接逻辑的工作原理:
通过保存的配置文件连接时:
- 用户可以通过引用已保存的连接配置文件的名称进行连接。
- GitHub Copilot 使用
mssql_list_servers工具验证配置文件是否存在。 - 然后,
mssql_connect工具使用保存的profileId及其参数来建立连接。
通过服务器/数据库规范进行连接时:
如果保存的配置文件与指定的服务器和数据库匹配:
- GitHub Copilot 使用
mssql_list_servers查找匹配项。 - 然后,它使用完整配置调用
mssql_connect。
- GitHub Copilot 使用
如果已保存的配置文件只与服务器匹配:
- GitHub Copilot 查找匹配的服务器配置文件。
- 它尝试通过将用户请求的数据库替换到该配置文件中来进行连接。
- 如果连接失败,将显示错误。
如果没有任何配置文件与指定的服务器相匹配:
- 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?
查询执行
| 工具名称 | 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 文档。