你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
代理模式允许编辑器中的 AI 助手将扩展中的 PostgreSQL 工具用作单个多步骤对话的一部分。 助手可以连接到数据库、检查架构、运行查询、打开脚本,并帮助在工作流端到端中移动,而不是只回答问题。
代理模式在Visual Studio Code(带有 GitHub Copilot)和 Cursor(其内置 AI)中运行。 该扩展在两个编辑器中公开相同的 PostgreSQL 工具图面;仅打开的聊天面板不同。
如果希望 AI 执行结构化操作,而不仅仅是解释或起草 SQL,请使用代理模式。
先决条件
在开始之前,请确保已做好以下准备:
- 已安装 PostgreSQL 扩展。
- 扩展中启用Copilot/AI 功能(
pgsql.copilot.enable是true)。 - 扩展中至少配置了一个数据库连接。
- 编辑器中提供的 AI 助手:
- Visual Studio Code:已安装GitHub Copilot或GitHub Copilot聊天并处于活动状态。
- Cursor:无需额外安装;内置 AI 会自动启用。
启动代理模式
- 连接到 PostgreSQL 扩展中的目标服务器或数据库。
- 在 “连接” 树中,右键单击要使用的数据库。
- 选择 “连接 AI”。
- 在随你想完成的工作流一起打开的聊天面板中继续对话。
- 在Visual Studio Code中,这是代理模式下的 GitHub Copilot 对话助手 面板。
- 在 Cursor 中,这是 Cursor 的本机 AI 面板;该扩展提供一个面向 MCP 的简短前导词,以便助手知道可用的 PostgreSQL 工具。
会话启动后,AI 在处理你的请求时,可以在后台组合使用 PostgreSQL 工具。
选择正确的访问模式
pgsql.copilot.accessMode 设置用于控制 Agent 模式获得多少数据库访问权限。 设置 ID 为了兼容性保留其 pgsql.copilot.* 前缀;在 Visual Studio Code 中,面向用户显示的标签是 Copilot 访问模式,在 Cursor 中则是 AI 访问模式。
| Mode | AI 可以执行的操作 | 建议用途 |
|---|---|---|
ro |
只读操作,例如 SELECT、SHOW、EXPLAIN、架构检查和分析 |
需要调查的生产系统或共享环境,无需更改 |
rw |
读取操作以及数据修改语句和 DDL,执行前需显式确认 | 本地开发、可释放沙盒和受控测试环境 |
Caution
除非你有意希望可通过 Agent 模式进行架构或数据更改,否则请对生产数据库使用 ro 模式。
了解工具系列
代理模式可以使用多个工具系列,具体取决于工作流。
| 工具系列 | 它的作用是什么 | 使用时 |
|---|---|---|
| 连接工具 | 列出配置文件、连接、断开连接、列出数据库 | 开始或切换上下文 |
| 架构上下文工具 | 提取对象定义或可视化架构 | 了解表、视图、函数、索引和关系 |
| 查询工具 | 运行读取查询,检查查询计划,打开脚本 | 调查数据、验证想法或查看生成的 SQL |
| 修改工具 | 确认后运行 DDL 或 DML | 在 rw 模式下应用受控架构或数据更改 |
| 数据导入工具 | 描述 CSV 文件并批量加载它们 | 规划和执行 CSV 导入工作流 |
Tip
在 Cursor 中,相同的工具也通过 MCP 服务器注册浮出水面。 Cursor 的原生聊天无需使用 Connect AI 入口即可直接调用它们。 有关详细信息,请参阅 MCP 服务器 。
对常见工作流使用代理模式
以下示例演示如何对从浏览新数据库到优化查询等任务使用代理模式。
探索不熟悉的数据库
要求 AI 连接到数据库、列出关键对象,并汇总任务重要的架构区域。
Example:
连接到我的开发数据库,列出公共架构中的表,并告诉我哪些表与客户和订单相关。
分析查询性能
要求 AI 将架构上下文与查询执行或计划检查相结合。
Example:
连接到过渡数据库,以只读模式运行此查询,并说明执行计划的哪个部分正在推动成本。
加载或重塑数据
当工作流包含脚本或基于 CSV 的操作时,请使用代理模式。
Example:
查看这个 CSV 文件,告诉我它隐含的模式,并为
sales.records表制定一个安全的导入计划。
从草稿移动到手动审阅
在执行之前需要人工评审检查点时,请让 AI 在查询编辑器中打开生成的 SQL,而不是立即运行它。
了解何时使用代理模式而不是 @pgsql
如果你想要架构感知的回答或查询草稿,请使用 @pgsql chat participant。
@pgsql 参与者仅可在Visual Studio Code中使用。
当你希望 AI 执行以下操作时,请使用 Agent 模式(Visual Studio Code 和 Cursor 均提供此模式):
- 连接到适合您的数据库,
- 在一次对话中将多个工具串联起来,
- 在下一步之前检查结果,或
- 编写脚本或受控变更工作流。
Note
在 Cursor 中,Agent 模式是主要方式,因为 @pgsql 聊天参与者在其中不可用。 同一工具界面也可以通过 MCP 服务器从 Cursor 的原生聊天中访问到。
代理模式疑难解答
如果代理模式的行为不符合预期,请先检查访问模式和工具可用性。
AI 无法修改数据库
检查 pgsql.copilot.accessMode 并确认活动连接未解析为 ro。
预期的工具不可用
请确保已启用Copilot集成,并且已从具有有效 PostgreSQL 连接上下文的数据库启动。
连接请求失败
确认连接配置文件仍然存在,凭据可用,扩展可以连接到代理模式之外的同一数据库。
我需要一个更简单的聊天优先工作流
在Visual Studio Code中,如果需要解释、查询起草或架构问题而不进行工具驱动的自动化,请使用@pgsql聊天参与者。 在 Cursor 中,提出与原生聊天中相同类型的问题。 该扩展的 MCP 工具仍可被发现,但在没有显式的 Agent 模式入口时,聊天功能会表现得更像自然对话。