How to Use AI Agents in IntelliJ IDEA With ACP

TL;DR · AI 摘要
ACP协议让IntelliJ IDEA可灵活集成AI代理,标准化连接方式并支持多模型替换。
核心要点
- ACP是JetBrains与Zed合作开发的代理连接协议,类比LSP标准化集成
- 本地代理通过JSON-RPC通信,支持协议版本协商和能力声明
- IntelliJ IDEA内置Codex、Claude Agent等ACP兼容代理
结构提纲
按章节快速跳转。
描述ACP作为客户端与代理间的标准化协议,支持多模型替换
ACP如同LSP之于语言服务器,统一IDE与代理的集成方式
通过JSON-RPC实现协议版本协商和双向通信
Codex、Claude Agent等预装代理的使用方式和特性差异
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- ACP在IDE中的应用
- 协议定义
- 标准化连接方式
- 支持模型替换
- 技术实现
- JSON-RPC通信
- 协议版本协商
- 生态支持
- JetBrains与Zed合作
- 内置Codex/Claude Agent
金句 / Highlights
值得收藏与分享的关键句。
ACP is often described as the LSP for coding agents
ACP originated from a collaboration between JetBrains and Zed
Local agents communicate via JSON-RPC over stdin/stdout
如何在 IntelliJ IDEA 中使用 AI 代理(ACP)- JetBrains 博客
IntelliJ IDEA
IntelliJ IDEA – Java 和 Kotlin 专业开发的领先 IDE
关注
- 关注:
- 领英 LinkedIn
- 蓝天 Bluesky
- X X
- Facebook Facebook
- YouTube YouTube
- RSS RSS
下载
AI
AI 助手
教程
如何在 IntelliJ IDEA 中使用 AI 代理(ACP)
Anton Arhipov
代理客户端协议(ACP)定义了客户端(如 IntelliJ IDEA)与代理之间的通用契约。IntelliJ IDEA 已经包含多个兼容 ACP 的代理:Codex、Claude Agent 和 Junie。除了这些预装选项,ACP 注册表还提供其他选择,团队可以通过 acp.json 注册内部或未公开的代理。
核心思想是明确边界。IntelliJ IDEA 仍然是您导航项目、检查代码和查看更改的环境。通过 ACP 连接,每个代理会维护自己的模型、行为、认证和代理端工具。
这使得可替换单元的规模大于 LLM。一个兼容 ACP 的代理包含围绕模型的完整框架:其规划逻辑、工具、模型路由行为和可观测性。由于 ACP 标准化了 IDE 与代理之间的边界,您可以无缝替换一个代理为另一个,而无需更改 IntelliJ IDEA 与它的集成方式。
ACP 简介
ACP 通常被描述为编码代理的 LSP(语言服务器协议)。这种类比成立是因为集成问题本质上是相似的。
在 LSP 之前,支持每种语言意味着编写单独的编辑器集成。LSP 用单一契约取代了这种矩阵式结构。
ACP 将这一理念应用于编辑器或 IDE 与编码代理之间的连接。任何兼容 ACP 的代理都可以连接,无需为每对组合编写定制插件或私有 API。
ACP 最初源自 JetBrains 与 Zed 的合作,从一开始 JetBrains IDE 和 Zed 都被定位为客户端。
对于本地代理,IntelliJ IDEA 会启动一个子进程,并通过标准输入和输出的 JSON-RPC 进行通信。初始化期间,IDE 和代理会协商协议版本和功能。连接后,提示信息会发送到代理,而进度更新、文件操作和权限请求会返回到 IDE。
即使在共享契约下,代理仍可能表现出不同行为。初始化期间,每个代理会声明其支持的可选功能。计划、模式、斜杠命令、会话加载、终端操作等特性可能在不同代理之间存在差异。
ACP 负责 IntelliJ IDEA 与代理之间的交互。通过 MCP(模型上下文协议),额外工具和上下文可以传递给代理,包括用户配置的服务器和集成的 IntelliJ MCP 服务器。
该编辑和审阅循环是值得保留的部分。如果之后切换代理,将循环集成在IDE中可以避免需要移动项目或在其他工具中审阅更改。
从ACP注册表安装代理
ACP注册表包含额外的ACP兼容代理,以及IntelliJ IDEA安装这些代理所需的元数据。
在IntelliJ IDEA中,打开设置 | 工具 | AI助手 | 代理,然后从注册表中选择一个代理。当前的ACP文档描述了完整的安装流程。
代理的配置视图还允许您暴露在AI助手中配置的MCP服务器、集成的IntelliJ MCP服务器或两者。
当您应用设置时,IntelliJ IDEA会下载代理文件。首次会话可能需要您使用该代理支持的方法进行身份验证。
注册表还提供用于更新和卸载的元数据。这些操作保留在代理设置中,因此添加代理不需要维护另一个IDE插件。
每个注册表代理保留自己的许可证、服务、凭据和隐私条款。在授予仓库访问权限之前,请检查这些详细信息。
通过acp.json连接自定义代理
注册表代理旨在广泛分发。然而,内部代理通常有更狭窄的角色,应保留在公司内部。
如果内部代理实现了ACP,请在~/.jetbrains/acp.json中注册它。IntelliJ IDEA提供了一个添加自定义代理的操作,用于创建并打开此文件,但您也可以直接编辑该文件。
以下配置注册了一个假设的公司迁移代理:
{
"agent_servers": {
"Company Migration Agent": {
"command": "/opt/company/bin/migration-agent",
"args": ["acp"]
}
}
}agent_servers下的每个键都会成为代理的显示名称。command值必须包含IntelliJ IDEA将启动的可执行文件的完整路径。在args中放置激活该代理ACP模式所需的参数;确切值来自代理的文档。
当进程需要环境变量时使用env。许多代理期望您首先通过其CLI进行身份验证,并重用存储在代理用户配置中的凭据。如果代理通过env接受API密钥,请遵循其文档,并避免将文件或其密钥提交到仓库。
保存acp.json后,在IntelliJ IDEA中选择配置的代理。
如果机器上已安装任何ACP兼容代理,IDE将检测到它们并提供将其添加到配置的选项。
为什么使用多个代理?
团队可能希望为不同类型的工作使用不同的代理。ACP为这些代理提供了一种通用方式来连接到IntelliJ IDEA:
- 通过
acp.json连接ACP兼容代理可以避免开发和维护单独的IntelliJ IDEA插件。
- 在开发者选择代理进行工作时,导航、编辑和差异审阅仍保留在IntelliJ IDEA中。
- 如果某个代理的服务或模型提供者不可用,开发者可以切换到另一个配置的代理,并继续在同一IntelliJ IDEA项目中工作。
保留IDE,选择代理
使用IntelliJ IDEA中已有的代理,从ACP注册表安装一个,或在acp.json中注册内部代理。
ACP将编码代理从IDE承诺转变为可随时重新访问的可替换选择。
ACP
AI代理
AI在IJ
IntelliJ IDEA
- 分享
上一篇
IntelliJ IDEA 中的五大 AI 功能