内容提要
IntelliJ IDEA通过ACP协议连接多种AI代理(如Codex、Claude Agent、Junie),支持从注册表安装或通过acp.json配置内部代理。ACP标准化IDE与代理间的交互,使代理可替换且保留各自特性。用户可在IDE内完成编辑、审查差异,并灵活切换代理,无需开发插件。
延伸解读
ACP与LSP的类比
ACP常被比作编码代理领域的LSP,因为两者解决的是类似的集成问题。LSP之前,每种语言都需要单独的编辑器集成;LSP通过统一协议消除了这种矩阵。ACP将同样的思路应用于IDE与编码代理的连接,使得任何兼容ACP的代理都能无需定制插件或私有API即可接入。这一类比有助于理解ACP的标准化价值。
代理的可替换性
ACP的关键在于边界:IDE负责项目导航、代码检查和差异审查,而代理保留自己的模型、行为、认证和工具。这使得可替换单元大于单个LLM,因为代理包含完整的模型周边设施,如规划逻辑、工具和模型路由。由于ACP标准化了IDE与代理之间的边界,用户可以平滑地切换代理,而无需改变IDE的集成方式。
配置自定义代理的注意事项
通过acp.json注册内部代理时,需注意命令必须包含可执行文件的完整路径,参数需根据代理文档设置。环境变量可用于传递API密钥,但应避免将包含密钥的文件提交到仓库。此外,每个代理都有各自的许可证、服务、凭据和隐私条款,在授予仓库访问权限前应仔细检查。
Q&A
什么是ACP协议?它与LSP有何相似之处?
ACP(Agent Client Protocol)定义了客户端(如IntelliJ IDEA)与AI代理之间的通用契约。它常被比作编码代理的LSP(语言服务器协议),因为两者都解决了集成问题:LSP统一了编辑器与语言服务器的集成,而ACP统一了IDE与编码代理的连接,使得任何兼容ACP的代理无需定制插件或私有API即可连接。
IntelliJ IDEA内置了哪些ACP兼容的AI代理?
IntelliJ IDEA内置了Codex、Claude Agent和Junie,这些代理无需手动配置ACP即可使用。
如何在IntelliJ IDEA中安装来自ACP Registry的代理?
在IntelliJ IDEA中,打开Settings | Tools | AI Assistant | Agents,然后从ACP Registry中选择一个代理。应用设置后,IntelliJ IDEA会下载代理文件,首次会话可能需要认证。代理的更新和卸载也在Agents设置中管理。
如何通过acp.json配置自定义内部代理?
如果内部代理实现了ACP,可以在~/.jetbrains/acp.json中注册。IntelliJ IDEA提供“Add Custom Agent”操作来创建和打开该文件,也可以直接编辑。配置中,每个键对应代理的显示名称,command字段指定可执行文件的完整路径,args包含启动ACP模式的参数,env用于设置环境变量。保存后,在IntelliJ IDEA中选择该代理即可。
ACP如何实现代理的可替换性?
ACP标准化了IDE与代理之间的边界,使得代理可以互换而不改变IDE的集成方式。每个代理在初始化时声明其支持的可选能力,如计划、模式、斜杠命令等,因此代理可以保留各自特性,但IDE无需为每个代理开发单独的插件。
在IntelliJ IDEA中使用AI代理时,如何审查代理所做的更改?
当代理编辑文件后,AI Chat会在对话中显示更改的文件,点击它可以在编辑器旁边打开差异视图,方便审查具体改动。这个编辑-审查循环是值得保留的,即使切换代理,也能在IDE内完成审查。
为什么团队可能需要在IntelliJ IDEA中使用多个AI代理?
团队可能为不同类型的工作选择不同的代理。ACP提供了通用连接方式,避免了为每个代理开发插件;导航、编辑和差异审查保留在IDE中,开发者可以灵活选择代理;如果某个代理的服务或模型提供商不可用,可以切换到其他代理继续工作。