← 返回博客

代码之外的上下文

2024年11月25日


当大型语言模型首次出现时,与它们讨论代码库的唯一方法是将代码块复制/粘贴到文本界面中。 Zed 编辑器已经为您提供了快速的方式将代码输入到与 LLM 的对话中(我们正在开发更快的工具),但是项目中存在于代码库之外的所有部分呢?

大多数项目都有大量的有价值的上下文,这些上下文在源代码中找不到,例如

  • 生产环境中记录的堆栈跟踪
  • 数据库模式或查询
  • 分析和遥测

直到今天,将来自这些来源之一的上下文添加到 LLM 对话的最快方法就像我们在黑暗时代所做的那样进行复制/粘贴。现在不再需要了!

从今天开始,您现在可以从 Zed 扩展商店安装扩展,这些扩展在助手面板中添加了自定义斜杠命令,可以从扩展作者实现的任何数据源中提取上下文。 例如,一旦您安装了一个用于从数据库访问上下文的扩展,您就可以在对话中使用斜杠命令来指定要运行的查询。 来自该查询的数据库响应将直接注入到您与 LLM 的对话中,就在您放置斜杠命令的位置。

您不仅不需要离开编辑器,甚至不需要离开面板!

这是一个使用 Zed PostgreSQL 扩展 立即通知模型我们整个数据库模式的示例,因此当我们要求它为我们编写查询时,它确切地知道存在哪些表和列,以及它们的类型是什么。

使用 Postgres 上下文服务器让助手编写一个模式感知的查询。

这些新的扩展是使用 模型上下文协议构建的,这是一个我们与 Anthropic 合作引入 Zed 的新协议。 MCP 不与 Zed 或 Anthropic 耦合; 由于它是一个协议而不是一个库,任何人都可以使用它,而无需依赖我们的任何代码。 您可以阅读 Anthropic 的 MCP 发布公告以了解更多信息。

MCP 遵循了广受欢迎的语言服务器协议的脚步,该协议通过让作者一次性实现他们的工具,而不是为每个不同的编辑器实现一次,从而释放了一个充满活力的特定于语言的工具生态系统。 我们很高兴 MCP 有潜力为 LLM 上下文做同样的事情,通过让上下文服务器作者为特定的数据源(数据库、分析、生产日志等)创建一个实现,而不是每个编辑器创建一个实现。

为您节省复制/粘贴上下文的时间只是 MCP 扩展在未来可以实现的冰山一角。 工具使用,模型可以自主(或经过确认)调用上下文服务器,是自然的下一步。 Zed 是一个开源编辑器,我们非常欢迎此领域的贡献

在接下来的几个月中,我们将更深入地研究 Zed 的可扩展性,尤其是在代码和 AI 的交汇处。 随着令人兴奋的新工具不断涌现,以帮助世界各地的程序员扩展他们自己的创造力和解决问题的能力,我们很高兴能够构建一个可以帮助您充分利用它们的编辑器!