尝试以扩展 VS Code 中的代理模式!

您只需要 GitHub Copilot 扩展

2024年6月24日,由 Isidor Nikolic (@isidorn) 发布

2017年,谷歌研究人员在其开创性论文《Attention is All You Need》中引入了 Transformers 的概念。这类模型以类似于人类注意力的方式优先处理信息,是当今现代语言模型(例如驱动 GitHub Copilot 的模型)的基础。

正如 Transformers 对人工智能具有变革性意义一样(抱歉双关了),我们相信 GitHub Copilot 扩展将最终为开发者兑现人工智能的全部承诺。

VS Code 是历史上使用最广泛的开发工具之一。它的普及在很大程度上归功于社区贡献的庞大扩展生态系统。如果您是 VS Code 用户,您可能能立刻说出几个您离不开的扩展。想象一下,如果这些扩展能够利用人工智能和 GitHub Copilot 的力量,可能性将是无穷的。

当人工智能了解您的特定上下文时,其真正的力量才能被释放。而 VS Code 就拥有这些知识。扩展可以使用 VS Code API 来利用这些上下文,直接在所有开发者已经聚集的 VS Code 中提供最佳、最相关的 AI 驱动的答案和交互。

在这篇文章中,我们将探讨新的 API,这些 API 使扩展能够直接与语言模型以及由 GitHub Copilot 提供的聊天体验进行交互。我们将看看您今天如何开始使用这些 API 进行构建,并展示一些已经开始利用这些 API 来丰富其扩展的早期采用者。

聊天和语言模型 API

在今年的 Build 大会上,我们宣布了 VS Code 中 GitHub Copilot 的一组新 API

请务必观看我们关于使用 GitHub Copilot 增强 VS Code 扩展的 Build 大会演讲,以了解所有关于这些 API 的信息。

您可能最熟悉通过聊天界面使用大语言模型(LLM)。您的扩展利用 GitHub Copilot 强大功能的一种方式是构建一个**聊天参与者 (chat participant)**,用户可以在 VS Code 的聊天视图中与其互动。您可以使用聊天 API 创建一个聊天参与者,并使用语言模型 API 处理自然语言并构建对用户查询的响应。在我们的扩展指南中了解更多关于聊天 API 的信息,该指南使用一个 @cat 代码导师作为新 API 概念的示例。

Screenshot of the Chat view in VS Code, showing the cat sample participant.

通过语言模型 API,您现在可以在自己的扩展中直接访问和利用由 GitHub Copilot 贡献的大型语言模型(简称 LLM)。只需选择您想使用的模型,构建一个提示,然后向所选模型发送请求即可。通过使用 VS Code API,您可以将相关的上下文添加到提示中。例如,可以包含当前文件的内容或正在使用的技术栈。

语言模型 API 还可以用于增强编辑器所有部分的开发体验,而不仅仅是聊天视图。您可以将使用语言模型 API 的操作贡献到 VS Code 的所有可贡献界面,例如编辑器上下文菜单。例如,源代码管理视图使用语言模型 API,允许用户根据源代码的更改生成提交信息。另一个例子是 Copilot 驱动的重命名功能,其中语言模型会根据代码的上下文提供符号重命名建议。

Screenshot of the Copilot-powered rename functionality in the VS Code editor.

在我们的扩展指南中了解更多关于语言模型 API 的信息。

我们相信,将聊天和语言模型 API 与 VS Code 强大的 API 套件相结合,将产生最令人愉悦的用户体验。扩展作者应该创造性地利用这些工具,超越简单的问答机器人,在 VS Code 中开发丰富、集成的交互,并使用正确的用户上下文。用户欣赏在他们工作流程中无缝且强大的交互。这些新的 API 使扩展能够通过将 AI 功能直接集成到 VS Code 中来提高用户的生产力。

GitHub Apps

或者,您可以通过创建一个在聊天视图中贡献聊天参与者的 GitHub App 来扩展 GitHub Copilot。GitHub App 由一个服务支持,并在所有 GitHub Copilot 界面上工作,例如 github.com、Visual Studio 或 VS Code。GitHub Apps 没有对 VS Code API 的完全访问权限。要通过 GitHub App 扩展 GitHub Copilot,您应该加入Copilot 合作伙伴计划

我们在 Microsoft Build 大会上宣布了通过 GitHub Apps 实现的 GitHub Copilot 扩展,并且我们已经在 GitHub Marketplace 上看到了一些很棒的扩展。

观看我们关于扩展 GitHub Copilot 的 Build 大会演讲,观看实际操作。

VS Code 扩展展示

我们很高兴能展示 VS Code 扩展社区使用语言模型和聊天 API 所构建的成果。到目前为止,我们已经看到超过 100 个扩展在各种场景中基于 GitHub Copilot 构建。以下是我们认为特别引人注目的一些例子。

Stripe

Stripe 使开发者能够在线接受付款和转移资金。新的 @stripe 聊天参与者将 Stripe 的文档、代码示例和最佳实践知识带到您的指尖,这样您就可以在不离开 VS Code 的情况下构建和维护您的 Stripe 集成。

“我们不断努力让开发者更容易地集成 Stripe,这就是为什么我们很高兴能用 Stripe 特定的上下文和功能来扩展 Copilot。新的可扩展性 API 制作精良且易于构建,因此我们能够非常迅速地行动。” - Ian McCrystal(Stripe 开发者 AI 团队工程经理)

@stripe 参与者可以帮助您

  • 生成和调试 Stripe API 代码,并将其插入到您的项目中
  • 基于 Stripe 文档,获得您问题的答案
  • 逐步构建并最终升级您的 API 集成

Screenshot of the Stripe chat participant in the Chat view in VS Code.

所有 Stripe VS Code 扩展用户将在七月中旬前使用 @stripe 参与者。

MongoDB

MongoDB 开发者喜爱 MongoDB for VS Code 扩展,它能实现无缝的数据导航、查询构建、使用 Playground 进行原型设计以及导出到流行语言。@mongodb 聊天参与者与该扩展深度集成,使开发者能够利用 GitHub Copilot 和该扩展的强大组合,在 VS Code 内更快地进行 MongoDB 应用开发。

@mongodb 聊天参与者

  • 通过自然语言生成 MongoDB 查询
  • 从数据库日志中提供对查询性能和错误模式的洞察
  • 提供数据库和集合的模式信息
  • 直接在 VS Code 中回答问题,并提供官方文档的参考

Screenshot of the MongoDB chat participant in the Chat view in VS Code.

如果您有兴趣使用 MongoDB 聊天参与者,可以注册以获取私人预览版的访问权限。

Parallels

Parallels,这款流行的 macOS 虚拟化软件,最近推出了一款新的 Parallels Desktop VS Code 扩展,以提升 Parallels Desktop 的体验。他们通过与 GitHub Copilot 集成进一步改进了它。

“简单而强大的 API 以及良好的示例使我们能够快速创建一个强大的 Copilot 参与者,否则这需要相当大的精力和时间。” – Carlos Lapao(Parallels 解决方案架构师)

通过新的 @parallels 聊天参与者,您可以使用自然语言轻松执行大多数虚拟机操作。例如,您可以说“@parallels 启动 Windows 11 虚拟机”,然后让聊天参与者代您执行操作。

Screenshot of the Parallels chat participant in the Chat view in VS Code.

PostgreSQL

PostgreSQL 是一个非常受欢迎的关系数据库平台,现在您可以使用 PostgreSQL Chat Participant 扩展直接与它聊天。@pg 聊天参与者将学习您的数据库模式并为您提供答案,这些答案都基于数据库模式。您还可以用它来生成模式、获取 SQL 查询的帮助,甚至生成与数据库交互的代码。

Screenshot of the PostgreSQL chat participant in the Chat view in VS Code.

后续步骤

我们才刚刚开始。与 VS Code 中所有的产品计划一样,我们将随着时间的推移扩展我们的 AI 可扩展性能力。我们预计以下功能将在今年晚些时候推出:

  • 意图检测,以便聊天参与者被自动调用
  • 支持 GPT-4o 语言模型
  • 增加模型请求的令牌限制(当前限制为 4K 令牌)
  • 编辑器内联聊天、终端和笔记本中的聊天参与者
  • 变量解析 API - 允许扩展贡献聊天变量,这些变量从扩展的领域提供上下文
  • 工具 API – 将自然语言转换为带参数的工具调用;允许扩展注册可被其他参与者调用的工具

今天对所有人开放!

聊天和语言模型 API 现在已在 VS Code Insiders 中提供,并将于七月初在 VS Code Stable 版本中发布。通过我们的文档示例,很容易开始构建强大的 AI 扩展。如果您有任何问题或反馈,可以在我们的代码仓库中提交一个 issue。

从今天起,您就可以将依赖于语言模型和聊天 API 的扩展发布到 VS Marketplace。真正的问题是:您会创造出什么令人难以置信的扩展?可能性是无穷的,只有您能将这些创新的想法变为现实。所以,投入我们出色的扩展开发流程,利用正确的用户上下文驾驭 AI 的力量,让您的创造力塑造开发的未来!构建的过程很有趣——去尽情享受吧!

谢谢,

Isidor 和 VS Code 团队