VS Code 中的 AI 扩展性
本文概述了 Visual Studio Code 中的 AI 扩展选项,帮助您为自己的扩展选择合适的方法。
VS Code 包含强大的 AI 功能,可增强编码体验
- 代码补全 (Code completion):在您键入时提供内联代码建议
- 智能体模式 (Agent mode):使 AI 能够通过专用工具自主规划和执行开发任务
- 聊天 (Chat):让开发者通过聊天界面使用自然语言提问或在代码库中进行编辑
- 智能操作 (Smart actions):在整个编辑器中集成针对常见开发任务的 AI 增强操作
您可以扩展和自定义这些内置功能,以创建满足用户特定需求的量身定制的 AI 体验。
为什么要扩展 VS Code 中的 AI?
为您的扩展添加 AI 功能可为用户带来诸多益处
- 智能体模式下的领域特定知识:让智能体模式访问您公司的数据源和服务
- 增强的用户体验:提供针对您扩展领域的智能辅助
- 领域专业化:针对特定编程语言、框架或领域创建 AI 功能
- 扩展聊天能力:在聊天界面中添加专用工具或助手,以实现更强大的交互
- 提高开发者生产力:通过 AI 能力增强常见的开发者任务,如调试、代码审查或测试
扩展聊天体验
语言模型工具 (Language model tool)
语言模型工具使您能够使用领域特定的能力扩展 VS Code 中的智能体模式。在智能体模式下,这些工具会根据用户的聊天提示词自动触发,以执行专门的任务或从数据源或服务中检索信息。用户还可以通过在聊天提示词中 #-提及 (mention) 工具来显式引用它们。
要实现语言模型工具,请在您的 VS Code 扩展中使用 Language Model Tools API。语言模型工具可以访问所有 VS Code 扩展 API,并与编辑器深度集成。
主要优势:
- 作为自主编码工作流的一部分,提供领域特定的能力
- 由于在扩展宿主进程中运行,您的工具实现可以使用 VS Code API
- 通过 Visual Studio Marketplace 轻松分发和部署
关键考量:
- 远程部署需要扩展实现客户端与服务器之间的通信
- 在不同工具之间复用需要模块化的设计和实现
MCP 工具
模型上下文协议 (MCP) 工具通过使用标准化协议,提供了一种将外部服务与语言模型集成的方法。在智能体模式下,这些工具会根据用户的聊天提示词自动触发,以执行专门任务或从外部数据源检索信息。
MCP 工具运行在 VS Code 之外,既可以在用户的本地机器上运行,也可以作为远程服务运行。用户可以通过 JSON 配置添加 MCP 工具,或者由 VS Code 扩展通过编程方式进行配置。您可以通过各种语言 SDK 和部署选项来实现 MCP 工具。
由于 MCP 工具运行在 VS Code 之外,它们无法访问 VS Code 扩展 API。
主要优势:
- 作为自主编码工作流的一部分,添加领域特定的能力
- 支持本地和远程部署选项
- 可在其他 MCP 客户端中复用 MCP 服务器
关键考量:
- 无法访问 VS Code 扩展 API
- 分发和部署需要用户自行配置 MCP 服务器
聊天参与者
聊天参与者 (Chat participants) 是专门的助手,允许用户使用领域专家扩展“提问模式”。在聊天中,用户可以通过 @-提及并输入有关特定主题或领域的自然语言提示词来调用聊天参与者。聊天参与者负责处理整个聊天交互。
要实现聊天参与者,请在您的 VS Code 扩展中使用 Chat API。聊天参与者可以访问所有 VS Code 扩展 API,并与编辑器深度集成。
主要优势:
- 控制端到端的交互流程
- 在扩展宿主进程中运行,允许访问 VS Code 扩展 API
- 通过 Visual Studio Marketplace 轻松分发和部署
关键考量:
- 远程部署需要扩展实现客户端与服务器之间的通信
- 在不同工具之间复用需要模块化的设计和实现
构建您自己的 AI 驱动功能
VS Code 为您提供了对 AI 模型的直接编程访问,以便在扩展中创建自定义的 AI 驱动功能。这种方法使您能够构建使用 AI 能力且不依赖于聊天界面的编辑器特定交互。
要直接使用语言模型,请在您的 VS Code 扩展中使用 Language Model API。您可以将这些 AI 能力集成到任何扩展功能中,例如代码操作、悬停提示提供程序、自定义视图等。
主要优势:
- 将 AI 能力集成到现有的扩展功能中或构建新功能
- 在扩展宿主进程中运行,允许访问 VS Code 扩展 API
- 通过 Visual Studio Marketplace 轻松分发和部署
关键考量:
- 在不同体验之间复用需要模块化的设计和实现
决定使用哪种方案
在为您的 VS Code 扩展选择合适的 AI 扩展方法时,请参考以下准则:
-
在以下情况下选择语言模型工具::
- 您希望使用专门的功能扩展 VS Code 中的聊天
- 您希望在智能体模式下根据用户意图自动触发
- 您需要访问 VS Code API 以实现在 VS Code 中的深度集成
- 您希望通过 VS Code Marketplace 分发您的工具
-
在以下情况下选择 MCP 工具::
- 您希望使用专门的功能扩展 VS Code 中的聊天
- 您希望在智能体模式下根据用户意图自动触发
- 您不需要与 VS Code API 集成
- 您的工具需要在不同环境(不限于 VS Code)中工作
- 您的工具需要在远程或本地运行
-
在以下情况下选择聊天参与者::
- 您希望通过具有领域专业知识的专门助手来扩展提问模式
- 您需要自定义整个交互流程和响应行为
- 您需要访问 VS Code API 以实现在 VS Code 中的深度集成
- 您希望通过 VS Code Marketplace 分发您的工具
-
在以下情况下选择语言模型 API::
- 您希望将 AI 能力集成到现有的扩展功能中
- 您正在构建聊天界面之外的 UI 体验
- 您需要对 AI 模型请求进行直接的编程控制
后续步骤
选择最适合您扩展目标的方法
示例项目
- 聊天示例:带有智能体模式工具和聊天参与者的扩展
- 代码导师聊天参与者教程:构建一个专门的聊天助手
- AI 驱动的代码注释教程:使用语言模型 API 的分步指南
- MCP 扩展示例:注册 MCP 工具的扩展