我们启动了 代理客户端协议 (ACP),因为我们希望 Zed 中有更多的代理。我们没有单独集成每一个代理,而是构建了一个任何代理都可以实现的协议。我们也希望它能帮助更广泛的生态系统:代理可以专注于逻辑,而编辑器处理用户体验,这让开发者有了真正的选择,而不是被锁定在特定的工具组合中。
然而,当时这感觉像是一次冒险。真的会有人采用它吗?其他编辑器会看到我们所看到的益处吗?
反响令人鼓舞。很快,不同生态系统的开发者开始实现 ACP 支持。
最初与 Google 合作将 Gemini CLI 引入 Zed,现已迅速发展成为一个更大的项目:一个在客户端和代理端都得到实际采用的真实协议。
以下是迄今为止已构建的内容以及社区正在进行的工作。
客户端:将 ACP 引入不同的编辑器
ACP 支持已扩展到 Zed 之外。几个编辑器社区已经构建了自己的实现,证明该协议可以在不同的环境中工作。
现已可用
Neovim:目前有两个插件支持 ACP。CodeCompanion 和 yetone/avante.nvim。两者都允许 Neovim 用户直接在他们的工作流程中连接到兼容 ACP 的代理。
Emacs: agent-shell 插件通过原生 Emacs shell 将代理带给 Emacs 用户,以便与由 ACP 提供支持的 LLM 代理进行交互。
marimo notebook:ACP 已进入 marimo 的 Python notebook 环境,展示了该协议超越传统代码编辑器的潜力。
进行中
Eclipse:目前有一个 Eclipse IDE 的 ACP/MCP 支持原型。
Toad:终端代理式编程的通用接口正在实现 ACP 支持。
代理:为开发者提供更多选择
我们仍在努力通过 ACP 将代理添加到 Zed 中,我们希望看到更多代理加入生态系统。以下是目前可用的代理。
现已可用
Gemini CLI:作为我们最初的发布合作伙伴,该集成 作为参考实现,展示了代理和编辑器 cleanly 协作的可能性。
Claude Code:通过 Zed 的 SDK 适配器 提供。我们构建这个是为了演示如何使现有的代理 API 适应与兼容 ACP 的编辑器一起工作。也是因为很多人都在要求它!
Goose:Square 的开源代理通过实现 ACP 加入了生态系统。它现在可供任何 ACP 客户端使用。
进行中
Codex:我们正在为 OpenAI 的 Codex 开发一个适配器,以将其引入 ACP 生态系统。我们正在采用与集成 Claude Code 类似的方法。另外,目前已有一个社区版本。
Aider:一个 Aider 的 ACP 实现正在进行中。
Cursor:显然有一个 Cursor ACP 适配器,并且 Cursor 社区对此表现出了一定的兴趣。如果 Cursor 的代理能在 Zed 中使用会非常酷,如果您同意,请帮助我们宣传。
如果您想参与
ACP 显然正在发挥作用,但总有更多需要构建。如果您有兴趣,我们欢迎您的帮助。
我们希望看到更多的代理实现,无论是为其他流行代理构建适配器,包装现有 API,还是使用 ACP 从头开始构建新代理。我们也欢迎更多的客户端,并乐意与任何考虑采用 ACP 的人交流。
我们还在寻求有关协议本身的反馈。我们正在边学边做,因此关于协议的输入非常有用:哪些有效,哪些无效,以及缺少什么。请在 Discord 中找到我们,或开启讨论。
ACP 的下一步
我们正在进行一些更大的 ACP 合作,目前还不能分享,但势头正在加速。我们对社区迄今为止所做的一切感到兴奋,迫不及待地想在适当的时候分享更多关于 ACP 的未来。
随着 ACP 的日益普及,我们还致力于让用户更好地控制在 Zed 中配置的 ACP 代理。我们仍在内部讨论这个问题,但我们倾向于采用一种选择和配置不同代理的方法,就像今天在用户界面中显示 MCP 服务器一样。关于这一点,未来会有更多消息!
如果我们遗漏了您的 ACP 实现,请联系我们([email protected]),以便我们添加您并保持此列表的更新。