使用 Copilot 代理模式

借助 Visual Studio 中的 GitHub Copilot 代理模式,可以使用自然语言来指定高级任务。 AI 将创建一个计划、进行代码编辑、运行终端命令、调用工具,并在代码库中应用更改。 它监视输出,例如构建结果、单元测试失败或工具输出,并根据需要进行迭代。

询问模式不同, 代理模式 不会在单个响应后停止。 它将继续执行和优化步骤,直到达到提示中的目标或需要其他输入。

先决条件

Visual Studio 2022 版本 17.14 或更高版本。

使用代理模式

在代理模式下,Copilot 可自主运作,来确定提示的相关上下文。

请按照以下步骤开始操作:

  1. 打开 Copilot 聊天窗口,选择“ 询问 ”以展开模式下拉列表,然后选择 “代理”。

    显示 Copilot 代理模式选择器的屏幕截图。

  2. 输入提示,然后选择“ 发送 ”或按 Enter 进行提交。 可以指定高级别要求,无需指定要处理的文件。

  3. 代理模式可能会调用多个工具来完成不同的任务。 (可选)选择 “工具” 图标以配置可用于响应请求的其他工具。

    显示代理模式使用的其他工具的屏幕截图。

  4. Copilot 在运行终端命令或使用非内置工具之前请求确认。

    显示代理命令审批的屏幕截图。

  5. Copilot 会自动检测代码编辑或终端命令中的问题,然后采取其他作来解决它们。 该过程将重复,直到问题得到解决。

  6. 当 Copilot 处理请求时,它会直接在编辑器中流式传输建议的代码编辑。 查看建议的编辑,然后在聊天窗口的“总更改”中保留或丢弃建议的编辑,或者查看单个文件的差异并有选择地应用它们。

    显示建议编辑列表的屏幕截图。

  7. 如果想要查看代理所做的单个代码更改,可以查看每个步骤中所做的特定更改,或查看上次保留或撤消更改的累积更改。

    显示使用 Copilot 代理访问单个编辑差异的屏幕截图。

    一张显示使用 Copilot 代理访问累积编辑更改的截图。

  8. 继续迭代修改代码以完善编辑或实现其他功能。

代理模式工具

代理模式可以使用以下工具:

可以查看和管理可用于响应请求的工具。 在聊天窗口中选择 “工具” 图标以查看和管理代理模式下可用的工具。

显示 Copilot 代理工具选择器的屏幕截图。

根据工具的结果,Copilot 可能会调用其他工具来完成总体请求。 例如,如果代码编辑导致文件中的语法错误,Copilot 可能会探索另一种方法并建议不同的代码更改。

运行 MCP 服务器添加的其他工具不会自动启用,默认情况下未选中它们,必须进行检查才能激活。

管理工具审批

调用工具时,Copilot 请求确认以运行该工具。 这是因为工具可能在计算机上本地运行,并执行修改文件或数据的作。

显示工具确认请求的屏幕截图。

在聊天窗口中,在工具调用后,使用 “允许 ”下拉列表选项自动确认当前会话、解决方案或所有将来调用的特定工具。

可以在 工具>选项>GitHub>Copilot>工具中重置工具确认选择。

显示工具确认选项的屏幕截图。

接受或拒绝更改

Copilot 列出了在聊天窗口中 “总更改 ”列表中编辑的文件。

显示“更改总数”列表的屏幕截图。

单击每个文件可单独查看更改,可在其中 保留撤消 对每个代码块所做的编辑。

或者,在 “更改总数 ”列表中,为自上次单击 “保留 ”或“ 撤消 ”以来所做的所有编辑选择“ 保留 ”或“ 撤消”。

还原编辑

请求代码编辑时,可能需要撤消一些更改。 要还原,请选择提示之前的检查点旁边的“还原”,其中包含你不想要的更改。

显示还原编辑的屏幕截图。

目前,Visual Studio Copilot 代理不支持分步撤消/重做。

中断代理模式请求

若要中断正在进行的请求,可以取消它。 这会停止所有正在运行的工具和终端命令。

若要停止生成,请在顶部工具栏中选择“ 生成 ”,然后选择“ 取消 ”或使用 Ctrl + 中断 键盘快捷方式。

常见问题

在 GitHub Copilot 聊天窗口中看不到“询问”和“代理”模式。

按指定的顺序执行以下故障排除步骤:

  • 请确保使用的是 Visual Studio 17.14 或更高版本:在“关于 Visual Studio 的>”中检查版本。 如果您没有使用版本 17.14 或更高版本,请打开 Visual Studio 安装程序并更新您的构建。
  • 请确保已在工具>>> 中的聊天窗格设置中选择了“启用代理模式”。
  • 请尝试重启 Visual Studio。

何时应使用 Ask 模式与代理模式?

  • 如果希望 100% 确信没有进行代码编辑,除非显式选择 “应用 ”或“复制”并自行粘贴代码,否则“询问”模式非常出色。
  • 代理模式可以处理相同的概念性问题,生成代码示例而不应用它们,以及其编辑代码的代理功能。
  • 如果要使用 MCP 功能,则必须选择代理模式。

Visual Studio 中的 Copilot 编辑功能怎么了?

  • 我们认为代理模式是编辑操作的一种演变,具有更好地循环处理错误、使用工具以及自动应用代码更改的能力。
  • 对于 Visual Studio 2022 版本 17.14 的初始版本,如果在工具>>>> 的聊天窗格中取消选中“启用代理模式”设置,则“编辑”模式仍然可用。

作为管理员,如何控制 Visual Studio 用户的代理模式的使用?

Visual Studio 中的代理模式受管理员 GitHub Copilot 仪表板中的 编辑器预览功能 标志的约束。 如果管理员关闭此设置,则订阅下的用户将无法在 Visual Studio 中使用代理模式。

有关详细信息,请参阅 管理企业中 Copilot 的策略和功能