代理模式允许 GitHub Copilot 使用 Visual Studio Code 的 MSSQL 扩展中提供的工具。 安装扩展并处于活动状态时,Copilot 可以列出 SQL Server 连接、连接到服务器和数据库以及检索数据库元数据。
所有作都使用与 MSSQL 扩展相同的连接上下文和凭据。 代理模式不会引入其他身份验证或权限更改。
Tip
使用代理模式时,无需显式引用 MSSQL 扩展(@mssql)。 如果扩展处于活动状态,则其工具将自动可用。 有关详细信息,请参阅 代理模式工具。
有关代理模式如何选择和执行工具的详细信息,请参阅 有关代理模式的 Visual Studio Code 文档。
什么是代理模式?
代理模式允许 GitHub Copilot 使用 MSSQL 扩展执行 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 文档。