当大型语言模型(LLM)首次出现时,与它们讨论代码库的唯一方法是将代码块复制/粘贴到文本界面中。Zed 编辑器已经为你提供了快速方法,可以将代码纳入与 LLM 的对话(我们正在开发更快的工具),但你项目中所有不在代码库中的部分呢?
大多数项目都有大量有价值的上下文,而这些上下文在源代码中是找不到的,例如:
- 生产环境中记录的堆栈跟踪
- 数据库模式或查询
- 分析和遥测数据
直到今天,将这些来源的上下文添加到 LLM 对话中的最快方法仍然是像“黑暗时代”那样复制/粘贴。现在不同了!
从今天开始,你现在可以从Zed 扩展商店安装扩展,这些扩展在助手面板中添加了自定义斜杠命令,这些命令可以从扩展作者实现的任何数据源中拉取上下文。例如,一旦你安装了一个用于从数据库访问上下文的扩展,你就可以在对话中途使用斜杠命令来指定要运行的查询。该查询的数据库响应将直接注入到你与 LLM 的对话中,就在你放置斜杠命令的位置。
你不仅不需要离开编辑器,甚至不需要离开面板!
这是一个使用PostgreSQL 的 Zed 扩展的示例,它可以立即将我们整个数据库模式告知模型,这样当我们要求它为我们编写查询时,它就确切知道存在哪些表和列,以及它们的类型。
这些新扩展是使用模型上下文协议(Model Context Protocol)构建的,这是我们与Anthropic合作引入 Zed 的一个新协议。MCP 不依赖于 Zed 或 Anthropic;因为它是一个协议而不是一个库,任何人都可以使用它而无需依赖我们的任何代码。你可以阅读Anthropic 的 MCP 发布帖子以了解更多信息。
MCP 遵循了非常成功的语言服务器协议(Language Server Protocol)的足迹,该协议通过让作者一次性实现其工具,而不是为每个不同的编辑器实现一次,从而开启了一个充满活力的特定语言工具生态系统。我们对 MCP 潜力感到兴奋,它可以通过让上下文服务器作者为特定的数据源(数据库、分析、生产日志等)进行一次实现,而不是为每个编辑器进行一次实现,从而为 LLM 上下文做同样的事情。
节省你复制/粘贴上下文的时间只是 MCP 扩展未来可能实现的冰山一角。工具使用,即模型可以自主(或经确认)调用上下文服务器,是一个自然的下一步。Zed 是一个开源编辑器,我们非常欢迎在这一领域做出贡献。
未来几个月,我们将更深入地探讨 Zed 的可扩展性,尤其是在代码和 AI 的交叉领域。随着激动人心的新工具的出现,帮助世界各地的程序员提升他们的创造力和解决问题的能力,我们很高兴能构建一个编辑器,帮助你充分利用这些工具!