借助 Visual Studio 中的 GitHub Copilot 代理模式,可以使用自然语言来指定高级任务。 AI 将创建一个计划、进行代码编辑、运行终端命令、调用工具,并在代码库中应用更改。 它监视输出,例如构建结果、单元测试失败或工具输出,并根据需要进行迭代。
与 询问模式不同, 代理模式 不会在单个响应后停止。 它将继续执行和优化步骤,直到达到提示中的目标或需要其他输入。
先决条件
Visual Studio 2022 版本 17.14 或更高版本。
使用代理模式
在代理模式下,Copilot 可自主运作,来确定提示的相关上下文。
请按照以下步骤开始操作:
打开 Copilot 聊天窗口,选择“ 询问 ”以展开模式下拉列表,然后选择 “代理”。
输入提示,然后选择“ 发送 ”或按 Enter 进行提交。 可以指定高级别要求,无需指定要处理的文件。
代理模式可能会调用多个工具来完成不同的任务。 (可选)选择 “工具” 图标以配置可用于响应请求的其他工具。
Copilot 在运行终端命令或使用非内置工具之前请求确认。
Copilot 会自动检测代码编辑或终端命令中的问题,然后采取其他作来解决它们。 该过程将重复,直到问题得到解决。
当 Copilot 处理请求时,它会直接在编辑器中流式传输建议的代码编辑。 查看建议的编辑,然后在聊天窗口的“总更改”中保留或丢弃建议的编辑,或者查看单个文件的差异并有选择地应用它们。
如果想要查看代理所做的单个代码更改,可以查看每个步骤中所做的特定更改,或查看上次保留或撤消更改的累积更改。
继续迭代修改代码以完善编辑或实现其他功能。
代理模式工具
代理模式可以使用以下工具:
- 内置工具
- MCP 工具
可以查看和管理可用于响应请求的工具。 在聊天窗口中选择 “工具” 图标以查看和管理代理模式下可用的工具。
根据工具的结果,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 的策略和功能。