The IntelliJ IDEA Blog

How to Use AI Agents in IntelliJ IDEA With ACP

8.5内容质量
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兼容代理

结构提纲

按章节快速跳转。

  1. §ACP协议定义

    描述ACP作为客户端与代理间的标准化协议,支持多模型替换

  2. ·LSP的类比

    ACP如同LSP之于语言服务器,统一IDE与代理的集成方式

  3. 通过JSON-RPC实现协议版本协商和双向通信

  4. CodexClaude Agent等预装代理的使用方式和特性差异

  5. JetBrainsZed合作开发,目标支持多IDE客户端

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • ACP在IDE中的应用
    • 协议定义
      • 标准化连接方式
      • 支持模型替换
    • 技术实现
      • JSON-RPC通信
      • 协议版本协商
    • 生态支持
      • JetBrains与Zed合作
      • 内置Codex/Claude Agent

金句 / Highlights

值得收藏与分享的关键句。

#ACP#IntelliJ IDEA#AI代理#JetBrains
打开原文

如何在 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提供了一个添加自定义代理的操作,用于创建并打开此文件,但您也可以直接编辑该文件。

以下配置注册了一个假设的公司迁移代理:

code
{
  "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

  • 分享
  • Facebook
  • Twitter
  • Linkedin

上一篇

IntelliJ IDEA 中的五大 AI 功能