本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

代理模式:所有用户可用并支持MCP

2025年4月7日 由 Isidor Nikolic

代理模式正在向所有 VS Code 用户推出!代理作为一个自主的配对程序员,在您的指令下执行多步骤的编码任务,例如分析您的代码库、提出文件编辑建议和运行终端命令。它会响应编译和 lint 错误,监控终端输出,并在任务完成之前进行循环自动更正。代理还可以使用贡献的工具,允许它与外部 MCP 服务器或 VS Code 扩展进行交互,以执行各种各样的任务。

对所有用户可用

打开聊天视图,登录 GitHub,设置

聊天代理启用
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
ORG 在你的设置中,并选择 Agent 在聊天模式下拉菜单中。如果你没有看到这个设置,请确保在更新到最新版本后重新加载 VS Code。在接下来的几周内,我们将默认为每个人推出 - 不需要任何设置。

代理模式非常适合以下场景:

  • 您的任务涉及多个步骤。代理编辑代码,运行终端命令,监控错误,并迭代解决出现的任何问题。
  • 您对更改的范围不确定。代理自动确定相关的文件和上下文。
  • 您的任务需要与外部应用程序或数据进行交互。该代理与MCP服务器和VS Code扩展集成。

另一方面,当任务的范围定义明确、您希望快速完成或您希望对LLM请求的数量有更精细的控制时,请使用编辑模式。

我们创建了一个统一的聊天体验,将聊天和编辑视图结合起来,带来了会话历史记录、将聊天移至单独Windows和简化工作集视图等好处。所有这些现在在代理模式下也可以使用。

代理模式,编辑器中提出了更改建议

我们继续收到出色的用户反馈(请继续提供!),这些反馈激发了许多我们做出的改进。最显著的是:

  • 撤销操作现在会恢复到上次编辑文件工具调用之前的更改
  • 在同一个工作区中支持多个代理会话(最佳适用于编辑会话不修改相同的文件)
  • 代理现在可以创建和编辑笔记本
  • 自动批准工具调用的能力(终端自动批准将于四月推出)
  • 许多生活质量改进和错误修复

无论是提问还是编辑体验,都在朝着类似于代理的工具化架构发展。我们进行这一改变是为了将提问/编辑/代理模式统一为代理模式,目的是为了让整体用户体验更加流畅。这使得编辑模式能够使用编辑文件用于提高速度的工具,以及用于编辑和提问模式#代码库进行代理代码库搜索。因此,没有工具调用支持的语言模型将不再在编辑模式中可用。

要了解更多有关该Agents的工作原理,您可以阅读我们的先前文章

可扩展性:MCP服务器和VS Code扩展

正如 VS Code 扩展允许您定制特定的工作流程一样,代理可扩展性允许您根据需求定制代理。有了可扩展性,代理可以执行浏览器操作(进行 AI 网页调试)、连接到您的聊天和笔记应用程序、与您的数据库交互、从您的设计系统获取上下文、从 GitHub 获取问题和仓库上下文,并与您的云平台集成。代理模式的力量在于可用工具的多样性以及用户添加和删除工具的灵活性。我们正在预览中推出可扩展性,并向所有用户开放。

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

  • 内置工具由 VS Code 提供(图中显示为蓝色),这些工具允许代理搜索工作区、应用代码更改、运行终端命令、从编辑器捕获编译或 linting 错误、获取网站内容(#获取手动触发),以及更多。
  • MCP服务器(图中绿色)贡献的工具。
  • VS Code 扩展贡献的工具(图中的绿色)。

图表显示了代理模式的内部运作以及它如何与上下文、LLM和工具进行交互,包括由MCP服务器和VS Code扩展贡献的工具。

当 VS Code 团队在 2016 年发明 语言服务器协议 (LSP) 时,我们的目标是标准化语言服务器与开发工具之间的通信方式。我们很自豪 LSP 已经成为广泛采用的标准,并实现了我们的愿景。最近,LSP 的理念 启发了一种新的协议: 模型上下文协议 (MCP),该协议标准化了应用程序如何向 LLM 提供上下文。通过 MCP 服务器贡献的工具在 VS Code 的代理模式中使用,我们现在又回到了 VS Code。

这是关于开发者控制

并非每个任务都需要你可能添加到代理模式中的所有工具,就像任何AI工作流程一样,具体化会带来更好的结果。我们建议使用工具UI来管理和启用每个场景所需的工具,或者通过输入明确引用工具。#输入:.

编辑用户界面,展示如何启用和禁用工具

为了给您完全的控制权,每个工具调用都会在用户界面中透明地显示,并需要您的批准(除了只读的内置工具)。您可以允许特定工具用于当前会话、工作区或所有未来的调用。如果您希望通过始终允许代理使用所有工具来尽量减少中断,同时仍然保持安全性,请考虑使用Dev Containers扩展。这将所有代理驱动的更改隔离在容器环境中,直到某个点(例如,如果您允许的话,代理仍然可以将更改推送到远程)。

聊天用户界面显示一个工具调用

开始使用

为了定制适用于您的工作流程的代理,请选择聊天输入中的工具图标,并按照添加更多工具…的流程进行操作。或者,阅读我们的MCP服务器文档,该文档解释了配置格式,如何添加一个MCP服务器,或者如何从现有的MCP客户端应用(如Claude Desktop)导入MCP服务器。VS Code支持本地标准输入/输出(标准输入输出) 和服务器发送的事件 (上海证券交易所) 用于MCP服务器传输。

MCP的官方服务器仓库是一个很好的起点,用于展示MCP多功能性的官方和社区贡献的服务器。要安装提供工具的扩展,请打开扩展视图并使用标签@标签:语言模型工具输入:.

扩展搜索显示贡献工具的扩展

作为一名开发人员,您可以通过创建一个 MCP 服务器来扩展代理,或者如果您是扩展作者,您可以贡献工具到您的 VS Code 扩展。参考这些文档,了解编写工具的指导和最佳实践。

接下来是什么

代理模式每天都在改进,要成为首批受益者,请考虑安装VS Code Insiders。使用VS Code Insiders并在我们的仓库中提供反馈是帮助我们改进产品的最佳方式。接下来,我们计划进行:

  • 支持自定义模式和自定义工具集说明
  • 更快的代码应用体验
  • 扩展 MCP 支持,从工具扩展到提示、资源和最新的规格更新。
  • 流式传输仅限于更改的代码块,以提高速度
  • 检查点,以便在您的智能体模式会话中轻松返回到特定步骤
  • 整体性能和服务质量改进

确保您使用的是最新版本的 VS Code 稳定版,设置

聊天代理启用
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
ORG 在你的设置中,并选择 Agent 从模式下拉菜单中。今天就试试看,并告诉我们你的想法!你可以在这里找到文档 here.

快乐氛围编码(现在带有MCP和扩展!)

伊西多尔和VS Code团队