文章摘要
Zed编辑器现已支持与第三方代理直接交互,为此开发了Agent Client Protocol(ACP),并与Google合作集成了Gemini CLI作为首个参考实现。该协议旨在让开发者能在不切换编辑器的情况下使用多种代理,类似于Language Server Protocol解耦语言智能与IDE的方式。开发者可通过Zed的便捷界面专注于构建最佳代理,而无需依赖VS Code。
文章总结
标题:在Zed中引入第三方代理——Gemini CLI的集成
发布日期:2025年8月27日
主要内容:
Zed现在支持用户直接与第三方代理进行交互。为了实现这一功能,Zed团队开发了代理客户端协议(ACP),并与Google合作,将Gemini CLI作为首个参考实现集成到Zed中。
由于软件开发者在不同的技术栈中依赖多种工具,Zed认为多个代理在不同领域竞争解决问题是有潜力的。正如语言服务器协议(LSP)将语言智能从单一IDE中解耦出来,ACP的目标是让用户无需切换编辑器即可在多个代理之间切换。对于代理开发者,Zed还提供了一个快速便捷的IDE用户界面,使他们能够专注于构建最佳代理,而无需分叉VS Code。
Gemini CLI在Zed中的应用
今年早些时候,Zed推出了代理编辑功能,接下来的重要任务是使这一体验更具扩展性。恰逢此时,Google联系了Zed团队。Gemini CLI团队在Zed的集成终端中使用他们的代理时体验良好,他们希望探索更深层次的集成。作为一个拥有大量早期用户的开源项目,Gemini CLI似乎是推动Zed中可扩展代理设计的理想选择。
命令行代理的简洁性使其易于在任何地方运行,包括作为另一个应用程序的子进程。Zed已经在嵌入式终端模拟器中运行Gemini CLI,但需要一种比ANSI转义码更结构化的通信方式。因此,Zed定义了一组最小的JSON-RPC端点,用于将用户请求传递给代理并渲染其响应。结果就是代理客户端协议(ACP),这是一个轻量级框架,允许任何客户端与任何代理进行通信,只要它们遵循协议。
通过在Zed中运行支持ACP的Gemini CLI子进程,Zed能够展示与基于终端的体验相同的底层功能,但将其紧密集成到专为软件开发构建的环境中。这解锁了在编辑器之外难以实现的功能,如实时编辑可视化、多缓冲区审查以及代码与代理交互之间的流畅导航。
代理客户端协议(ACP)简介
ACP允许开发者选择最适合其工作流程的工具。任何支持ACP的代理都可以插入到强大的用户界面中,用户可以跟随代理在代码库中的操作,控制其对工具和MCP服务器的访问,并在多缓冲区中审查其所有更改,同时支持完整的语法高亮和语言服务器功能。与第三方代理交互时,数据不会触及Zed的服务器,Zed也无法访问用户的代码。与所有Zed功能和服务一样,未经用户明确同意,Zed不会存储或训练用户数据。
ACP在Apache许可证下开源,任何代理都可以实现它,并可能以Gemini CLI的实现为起点。该协议也向其他客户端开放,Zed希望看到其他编辑器的采用。为此,Zed与Code Companion的Oli Morris合作,为Neovim用户带来了对ACP兼容代理的支持。
Zed还更新了其内置代理,使其使用与第三方代理相同的代码路径,确保为内置代理开发的任何UI原语也可以提供给外部代理。将UI与代理核心清晰分离已经提高了Zed的发布速度,团队期待用户尝试这一新体验。用户可以查看源代码或下载Zed亲自体验。
与Zed共同构建
Zed相信最好的工具来自开放性。正如语言服务器协议为IDE打开了专用工具的大门,ACP为每个开发者工作流程量身定制的代理生态系统创造了空间。Zed感谢Google对Gemini CLI的开放态度,这使得合作成为可能,Zed也承诺保持同样的开放性。Zed计划对ACP保持足够的控制,以快速推动其发展,同时谨慎地进行版本控制,鼓励代理和客户端生态系统的成长。
Zed欢迎对ACP的贡献和反馈,并希望在Zed中看到更多代理的加入,也期待其他编辑器采用该协议。Zed对社区如何实验、创新和构建Zed的未来充满期待。
寻找更好的编辑器?
用户可以在macOS或Linux上立即下载Zed进行体验。
Zed正在招聘!
如果对Zed博客中讨论的话题感兴趣,欢迎加入团队,共同推动软件开发的未来。
评论总结
评论内容总结:
关于ACP协议的讨论
- 评论1指出ACP(Agent Client Protocol)与IBM的ACP(Agent Communication Protocol)不同,并质疑是否尝试扩展现有协议以支持IDE交互,而非创建新协议。
- 引用:“I’m curious if there was an attempt to extend this to add first class support for interaction with IDEs rather than creating a new protocol.”
- 评论8希望Cursor-agent支持ACP。
- 引用:“I hope that cursor-agent get support to ACP.”
- 评论1指出ACP(Agent Client Protocol)与IBM的ACP(Agent Communication Protocol)不同,并质疑是否尝试扩展现有协议以支持IDE交互,而非创建新协议。
对Zed的质疑与担忧
- 评论3认为Zed由风投支持,可能导致其未来不稳定,建议使用Emacs或NeoVim等长期稳定的工具。
- 引用:“When I heared that Zed is VC backed, it was a signal to move away from it.”
- 评论4质疑Zed的独特价值,认为其仅以“快速”和“非VS Code”为卖点。
- 引用:“Honest question - why use Zed, other than it is fast and ‘not VS Code’?”
- 评论3认为Zed由风投支持,可能导致其未来不稳定,建议使用Emacs或NeoVim等长期稳定的工具。
对Zed的积极评价
- 评论7表示愿意为Zed付费,认为其值得购买。
- 引用:“Zed is great. I’d happily pay for it.”
- 评论10称赞Zed的速度和持续改进,但指出其与旧版eslintrc的兼容性问题。
- 引用:“It’s super fast and seems to be getting lots of improvement constantly.”
- 评论7表示愿意为Zed付费,认为其值得购买。
关于Zed与其他工具的对比
- 评论5认为Zed通过DeltaDB和ACP协议试图与Cursor竞争,但指出代理工具的粘性较低,Zed应专注于成为最佳编辑器。
- 引用:“I think I agree with the implicit judgment from the Zed team that it’s too early to try to lock people in and capture value.”
- 评论6询问Zed的定制能力,特别是能否模拟其他编辑器的行为。
- 引用:“Can i make my own Modes trees like Helix/etc offers?”
- 评论5认为Zed通过DeltaDB和ACP协议试图与Cursor竞争,但指出代理工具的粘性较低,Zed应专注于成为最佳编辑器。
其他相关讨论
- 评论2提到Google的Gemini CLI已集成到Zed中。
- 引用:“Related post from Google: [link]”
- 评论9推测QwenCoder可能支持ACP,因为它是Gemini CLI的分支。
- 引用:“This in theory means you can use QwenCoder too since it’s a fork of Gemini CLI?”
- 评论11询问哪些主要代理支持ACP。
- 引用:“which other major agents are on board with Agent Client Protocol?”
- 评论2提到Google的Gemini CLI已集成到Zed中。