代理模式:所有用户可用并支持MCP
2025年4月7日,作者:Isidor Nikolic
代理模式正在向所有VS Code用户推出!该代理充当自主结对程序员,根据您的指令执行多步骤编码任务,例如分析您的代码库、提议文件编辑和运行终端命令。它会响应编译和lint错误,监控终端输出,并在循环中自动更正,直到任务完成。该代理还可以使用贡献的工具,使其能够与外部MCP服务器或VS Code扩展交互,以执行各种任务。
所有用户可用
打开聊天视图,登录GitHub,在设置中设置chat.agent.enabled,并在聊天模式下拉列表中选择Agent。如果您看不到此设置,请确保在更新到最新版本后重新加载VS Code。在接下来的几周内,我们将默认向所有人推出此功能——无需任何设置。
代理模式非常适合以下场景:
- 您的任务涉及多个步骤。代理会编辑代码、运行终端命令、监控错误,并迭代解决出现的任何问题。
- 您不确定更改的范围。代理会自动确定相关文件和上下文。
- 您的任务需要与外部应用或数据交互。代理与MCP服务器和VS Code扩展集成。
另一方面,当任务范围明确、您希望快速周转或希望对LLM请求的数量进行更精细的控制时,请使用编辑模式。
我们创建了统一的聊天体验,结合了聊天和编辑视图,带来了会话历史、将聊天移至单独窗口以及简化工作集视图等好处。所有这些现在在代理模式下也可用。
我们不断收到出色的用户反馈(请继续提供!),这启发了我们进行的许多改进。最值得注意的是
- 撤消操作现在可撤销更改,直到上次编辑文件工具调用为止
- 支持同一工作区中的多个代理会话(当编辑会话不修改相同文件时效果最佳)
- 代理现在可以创建和编辑笔记本
- 自动批准工具调用的能力(终端自动批准将于四月推出)
- 大量生活质量改进和错误修复
提问和编辑体验都在向一种与代理类似、利用工具的架构发展。我们正在进行此更改,以将提问/编辑/代理模式统一为均具备代理功能,目标是优化整体用户体验。这使得编辑模式可以使用 edit_file
工具来提高速度,并且编辑和提问模式可以使用 #codebase
这一代理式代码库搜索功能。因此,不支持工具调用的语言模型将不再在编辑模式下可用。
要了解更多关于代理如何工作的信息,您可以阅读我们的上一篇文章。
可扩展:MCP服务器和VS Code扩展
正如VS Code扩展让您能够自定义特定工作流一样,代理可扩展性也允许您根据需求调整代理。通过可扩展性,代理可以执行浏览器操作(执行AI网络调试)、连接到您的聊天和笔记应用程序、与您的数据库交互、从您的设计系统获取上下文、从GitHub获取问题和仓库上下文,并与您的云平台集成。代理模式的强大之处在于其可用工具的多样性以及作为用户添加和移除工具的灵活性。我们正在推出预览版可扩展性,并对所有用户可用。
代理模式可以使用以下工具
- VS Code贡献的内置工具(图中标蓝色),这些工具允许代理搜索工作区、应用代码更改、运行终端命令、从编辑器捕获编译或linting错误、获取网站内容(手动触发
#fetch
)等。 - MCP服务器贡献的工具(图中标绿色)。
- VS Code扩展贡献的工具(图中标绿色)。
当VS Code团队在2016年发明语言服务器协议(LSP)时,我们的目标是标准化语言服务器与开发工具的通信方式。我们很自豪LSP已成为广泛采用的标准并实现了我们的愿景。最近,LSP背后的思想启发了一个新协议:模型上下文协议(MCP),该协议标准化了应用程序如何向LLM提供上下文。随着VS Code中的代理模式使用MCP服务器贡献的工具,我们现在回到了VS Code的起点。
这一切都关乎开发者控制
并非每个任务都需要您可能已添加到代理模式的所有工具,与任何AI工作流一样,具体化会带来更好的结果。我们建议使用工具UI来管理和启用每个场景所需的工具,或者通过键入#
在您的提示中明确引用工具。
为了让您完全控制,每次工具调用都会在UI中透明显示并需要您的批准(只读内置工具除外)。您可以允许特定工具用于当前会话、工作区或所有未来调用。如果您想通过始终允许代理使用所有工具来最大程度地减少中断,同时仍保持安全性,请考虑使用开发容器扩展。这将在一定程度上将所有代理驱动的更改隔离在容器环境中(例如,如果您允许,代理仍然可以将更改推送到远程)。
入门
要为您的工作流自定义代理,请选择聊天输入中的工具图标,然后按照添加更多工具…流程操作。或者,阅读我们的MCP服务器文档,其中解释了配置格式、如何添加MCP服务器,或者如何从现有MCP客户端应用(如Claude Desktop)导入MCP服务器。VS Code支持本地标准输入/输出(stdio
)和服务器发送事件(sse
)用于MCP服务器传输。
MCP的官方服务器仓库是官方和社区贡献服务器的一个很好的起点,展示了MCP的多功能性。要安装贡献工具的扩展,请打开“扩展”视图并使用标签@tag:language-model-tools
进行搜索。
作为开发者,您可以通过创建MCP服务器来扩展代理;如果您是扩展作者,您可以为您的VS Code扩展贡献工具。有关编写工具的指导和最佳实践,请参阅这些文档。
接下来
代理模式每天都在改进,要成为首批受益者,请考虑安装VS Code Insiders。使用VS Code Insiders并在我们的仓库中提供反馈是帮助我们改进产品的最佳方式。接下来,我们计划致力于
- 支持带有自定义工具集和指令的自定义模式
- 更快的代码应用体验
- 将MCP支持从工具扩展到提示、资源和最新的规范更新
- 编辑流限制为已更改的代码块以提高速度
- 检查点,以便轻松返回到代理模式会话中的特定步骤
- 整体性能和服务质量改进
确保您使用的是最新版VS Code Stable,在设置中设置chat.agent.enabled,然后从模式下拉列表中选择Agent。立即试用,并告诉我们您的想法!您可以在此处找到文档。
愉快的氛围编程(现在支持MCP和扩展)!
Isidor和VS Code团队