在 Visual Studio Code 中使用智能代理 (Agents)

智能代理 (Agent) 是一种能够自主完成编码任务的 AI 助手。你只需为其设定一个高阶目标,它就会将目标分解为多个步骤,编辑项目中的文件,运行命令,并在出错时进行自我修正。例如,智能代理不会仅仅建议如何修复失败的测试,而是会找出跨文件的根本原因、更新代码、重新运行测试并提交更改。

VS Code 允许你以适合自身工作流的方式运行智能代理。你可以在编辑器中与它们进行交互,也可以让它们通过 CLI 在后台自主运行。智能代理可以在你的本地机器、远程云环境或通过第三方提供商(如 Anthropic 或 OpenAI)运行。你可以决定给予它们多大的自主权,从审批每一个工具调用到让它们完全独立工作;你还可以创建自定义代理,以根据项目需求定制它们的行为。

无论智能代理在何处运行,你都可以通过聊天 (Chat) 视图中的统一 会话列表 来监控和管理所有会话。

智能代理的工作原理

了解智能代理循环、代理如何规划和执行任务,以及内存和子代理的工作方式。

Screenshot of an agent session in VS Code showing code changes and chat interaction.

提示

在 VS Code 设置中启用智能代理 ( chat.agent.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置由组织级别管理。请联系管理员进行更改。)。你的组织也可能会禁用智能代理——请联系管理员以启用此功能。

智能代理的类型

根据你对结果的需求时间和所需监管程度,智能代理可以在不同的环境中运行。两个关键维度是:代理运行的位置(本地机器或云端)以及你与代理的交互方式(交互式或后台自主运行)。

  • 本地 (Local):使用 VS Code 代理循环,在编辑器中以交互方式运行代理,并完全访问你的工作区、工具和模型。
  • Copilot CLI:使用 Copilot CLI 在你的机器后台运行,可选择使用 Git 工作树 (worktrees) 进行隔离。
  • 云端 (Cloud):使用 GitHub Copilot 在远程运行,并与 GitHub 拉取请求 (PR) 集成以进行团队协作。
  • 第三方 (Third-party):使用 Anthropic 和 OpenAI 提供的第三方代理框架和 SDK,在本地机器或云端运行。

从聊天视图的代理目标下拉菜单中选择代理类型。

Screenshot showing agent target dropdown in the Chat view.

我应该使用哪种类型的代理?

使用下表为你当前的任务找到合适的代理类型

如果我想... 使用
以交互方式进行头脑风暴、探索或迭代想法 本地代理
获取关于代码库的答案 本地代理 (Ask)
创建一个结构化的实施计划 本地代理 (Plan)
修复需要编辑器上下文的问题(测试失败、Lint 错误、调试输出) 本地代理
使用集成浏览器构建和测试 Web 应用 (实验性) 本地代理。请参阅浏览器代理测试指南
使用特定的 VS Code 扩展工具或 MCP 服务器 本地代理
在我继续工作的同时实现定义明确的任务 Copilot CLI云端代理
探索多种变体或进行概念验证 (PoC) Copilot CLI云端代理
创建 PR 以供团队评审和协作 云端代理
将 GitHub Issue 分配给代理 云端代理
使用特定的 AI 提供商(Anthropic、OpenAI) 第三方代理

选择智能代理

如果说代理类型是指代理运行的位置,那么代理的角色或人设则决定了它如何执行任务。例如,具有“代码审查员”人设的代理专注于评审代码更改的质量和风格并提供反馈,而不是直接修改代码。代理的定义决定了它可以使用哪些工具、执行任务的方式,以及它与其他代理的交接点。

从聊天视图的代理下拉菜单中选择一个代理。你可以在会话期间随时切换代理。

Screenshot showing the Chat view with the agent picker expanded, displaying different agent options.

VS Code 具有三个内置代理

  • Agent:自主规划并在多个文件中实施更改、运行终端命令并调用工具。
  • Plan:在编写任何代码之前创建一个结构化的、分步骤的实施计划。当计划合理时,将其交给实施代理。
  • Ask:回答关于编码概念、你的代码库或 VS Code 本身的问题,而不进行文件更改。

对于更专业的工作流,你可以创建自己的自定义代理,定义特定的角色、可用工具和语言模型。

选择权限级别

智能代理可以自主执行任务,但你可以控制它们调用工具和终端命令的自主程度。给予智能代理更多的自主权可以提高效率,但可能会降低监管程度。聊天视图中的权限选择器允许你为每个会话设置权限级别,从审批每一个工具调用到允许代理完全自主工作。

权限级别 描述
默认批准 使用 VS Code 设置中指定的审批规则。默认情况下,只有只读和安全工具不需要显式审批。
绕过批准 自动审批所有工具调用,无需确认对话框。代理在工作时可能会询问澄清性问题。
自动驾驶 (Autopilot)(预览版) 自动审批所有工具调用,自动回复问题,并且代理会持续自主工作直到任务完成。

了解更多关于权限级别和 Autopilot 的信息。

将任务切换给其他智能代理

你可以将现有任务从一个代理切换(交接)给另一个代理,以发挥它们各自独特的优势。例如,先用本地代理制定计划,切换到 Copilot CLI 进行概念验证,然后继续使用云端代理提交 PR 以进行团队评审。

若要交接本地代理会话,请从聊天输入框的会话类型下拉菜单中选择不同的代理类型。VS Code 将创建一个新会话,并延续完整的对话历史和上下文。原会话在交接后将被归档。

Screenshot showing the session type dropdown for handing off to another agent.

在 Copilot CLI 会话中,通过在聊天输入框中输入 /delegate 命令来委派给云端代理。你可以在 /delegate 命令后提供额外指令。

将编码任务分配给代理

如果你安装了 GitHub Pull Requests 扩展,你可以分配代理来实施代码中的 TODO 注释。

Screenshot of assigning a TODO comment to Copilot coding agent.

在 GitHub.com 上,或通过 GitHub Pull Requests 扩展,你可以通过将 Issue 分配给 copilot,或在 Issue 评论/拉取请求中提及它,来将 GitHub Issue 分配给 Copilot 编码代理以请求代码审查。

  • 管理聊天会话:创建、切换和组织你的代理会话。

  • 智能代理教程:关于使用不同类型代理的实操教程。

  • 工具:通过内置工具、MCP 和扩展工具扩展代理能力。

  • 钩子 (Hooks):在生命周期事件中执行自定义命令,以实现自动化和策略强制执行。

  • 自定义代理:创建你自己的 AI 代理和扩展。

© . This site is unofficial and not affiliated with Microsoft.