借助 Visual Studio 中的 GitHub Copilot 代理模式,可以使用自然语言来指定高级任务。 然后,AI 将通过请求进行自主推理,规划所需的工作,并将更改应用到代码库。 代理模式结合了代码编辑和工具调用来完成指定的任务。 处理请求时,它会监控编辑和工具的结果,并不断调整以解决任何出现的问题。
与 Copilot Chat 的主要区别在于代理模式可以:
- 运行命令和生成来解释环境或执行任务(例如数据库迁移、dotnet 还原等)。
- 对错误、构建失败或单元测试结果进行迭代处理,直到需要额外输入或认为任务已完成为止。
先决条件
- Visual Studio 2022 版本 17.14 或更高版本。
-
使用具有 Copilot 访问权限的 GitHub 帐户 登录 Visual Studio。
- 可以免费使用 GitHub Copilot。 注册并利用 AI 来更快、更高效地编码。
代理模式入门
若要在 Visual Studio 中开始使用 Copilot 代理模式,可在聊天窗格中启用 工具>选项>GitHub>Copilot Copilot>聊天>启用代理模式中的功能。
使用代理模式
在代理模式下,Copilot 可自主运作,来确定提示的相关上下文。
请按照以下步骤开始操作:
通过在工具>>>>的聊天窗格中选择启用代理模式,确保代理模式已启用。
打开 Copilot 聊天窗口,选择“ 询问 ”以展开模式下拉列表,然后选择 “代理”。
在聊天输入字段中输入编辑提示,然后选择“ 发送 ”或按 Enter 进行提交。 可以指定高级别要求,无需指定要处理的文件。 在代理模式下,Copilot 确定要自主编辑的相关上下文和文件。
代理模式可能会调用多个工具来完成不同的任务。 (可选)选择 “工具” 图标以配置可用于响应请求的其他工具。
确认工具调用和终端命令。 在运行终端命令或非内置工具之前,Copilot 请求确认以继续。 这是因为工具可能在计算机上本地运行,并执行修改文件或数据的作。
Copilot 在代码修改和终端命令中检测问题和故障,然后进行迭代并采取额外措施来解决它们。 例如,代理模式可能会因代码编辑而运行单元测试。 如果测试失败,它将使用测试结果来解决问题。 Copilot 代理模式多次迭代以解决问题。
当 Copilot 处理你的请求时,请注意 Copilot 直接在编辑器内实时显示建议的代码修改。 查看“Total Changes”中的建议编辑,并在聊天窗口中选择全部保留或放弃;或者通过单击文件并在编辑器中查看代码差异,单独处理每个建议。
如果想要查看代理所做的单个代码更改,可以查看每个步骤中所做的特定更改,或查看上次保留或撤消更改的累积更改。
继续迭代修改代码以完善编辑或实现其他功能。
代理模式工具
代理模式可以使用以下工具:
- 内置工具
- MCP 工具
可以查看和管理可用于响应请求的工具。 在聊天窗口中选择 “工具” 图标以查看和管理代理模式下可用的工具。
根据工具的结果,Copilot 可能会调用其他工具来完成总体请求。 例如,如果代码编辑导致文件中的语法错误,Copilot 可能会探索另一种方法并建议不同的代码更改。
运行 MCP 服务器添加的其他工具不会自动启用,默认情况下未选中它们,必须进行检查才能激活。
管理工具审批
调用工具时,Copilot 请求确认以运行该工具。 这是因为工具可能在计算机上本地运行,并执行修改文件或数据的作。
在聊天窗口中,在工具调用后,使用 “允许 ”下拉列表选项自动确认当前会话、解决方案或所有将来调用的特定工具。
可以在 工具>选项>GitHub>Copilot>工具中重置工具确认选择。
接受或拒绝更改
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 的策略和功能。