AI 入门指南
什么是 ACP(Agent Client Protocol)?自带智能体
ACP 是代码编辑器与编码智能体之间的插槽。本文介绍它与 MCP 的区别,以及你的模型和 API 密钥位于何处。

Android Studio 现在提供 40 多种编码智能体的菜单,相关新闻反复提到三个字母:ACP。简短版本如下。Agent Client Protocol (ACP) 是代码编辑器与编码智能体之间的共享插槽,有点像电脑与所插入设备之间的 USB。任何支持 ACP 的编辑器都能托管任何支持 ACP 的智能体。MCP 是另一根线缆:它把智能体连接到工具和数据,而不是连接到你的编辑器。
新闻的由头是 Android Studio。Android Developers 博客(2026 年 10 月 28 日)称,现已稳定的 Android Studio Rabbit 2 提供“Bring Your Own Agent”:你可以从 40 多种编码智能体中选择,包括 Claude Agent、OpenAI 的 Codex、Junie 和 Google Antigravity。该文章从未明确写出“ACP”。名称和机制来自 ACP 介绍(2026 年 11 月 1 日查阅)。
为什么需要插槽?#
假设有 5 个编辑器和 8 个编码智能体。如果每一对都需要手工建立连接,那就是 5 × 8 = 40 个集成,而且每新增一个智能体,五个编辑器团队就要各多做五份工作。如果大家都约定使用同一个插槽,每个编辑器只需实现一次,每个智能体也只需实现一次:5 + 8 = 13 份工作。这就是全部思路。
ACP 网站用 LSP(Language Server Protocol)做了同样的类比:一个语言服务器可以在许多编辑器中使用。同样的技巧应用到编码智能体上:任何 ACP 智能体都能与任何 ACP 编辑器配合,无需为每一对做定制集成。
闪卡
你会围绕 ACP 遇到的词汇
点击卡片翻转
ACP 如何工作,用大白话说#
想象两位同事通过投信口传递纸条。编辑器写一个请求,智能体写回它想展示的内容。对于本地智能体,这个投信口是字面意义上的:编辑器在你的机器上把智能体作为子进程启动,它们通过 stdio 交换 JSON-RPC 消息。每条消息都有相同的大致结构:
{ "jsonrpc": "2.0", "id": 1, "method": "…", "params": { … } }方法名由 ACP 本身定义,所以你永远不用手写这些。编辑器和智能体会写。
智能体不必住在你的笔记本电脑上。远程智能体使用 HTTP 或 WebSocket,不过 ACP 网站表示完整的远程支持仍在开发中。而且由于该协议是为编码而构建的,它尽可能复用 MCP 的 JSON 表示,并增加了编辑器需要绘制的内容类型,例如差异。这就是为什么一个提议的更改可以在你的编辑器中以差异形式显示,而不是一大段文字。

ACP 与 MCP:各自连接什么#
把智能体放在中间。一侧是你的编辑器,那条连接是 ACP。另一侧是智能体所操作的东西:文件、数据库、服务。那条连接是 MCP。它们位于智能体的不同两侧,所以并不竞争。如果你对 MCP 还不熟悉,请从我们的通俗 MCP 指南开始。

它们也是近亲:如上所述,ACP 尽可能借用 MCP 的 JSON 表示。试着自己配对:
配对
将每个名称与其连接的对象配对
点击左侧项目,然后点击其配对项
- ACP编辑器 ⇄ 编码智能体
- MCP智能体 ⇄ 工具和数据
- 基于 stdio 的 JSON-RPC本地 ACP 智能体如何与编辑器通信
- 模型 API(base URL + key)智能体 ⇄ 语言模型
在 Android Studio 中自带智能体#
没有共享协议时,向编辑器添加智能体是编辑器厂商的工作。使用 Android Studio Rabbit 2,你可以自己选择智能体。根据 Android Developers 的文章,你打开智能体窗口并选择一个智能体,或者在 Settings > Tools > AI > Agents 中选择一个。然后进行身份验证并发送你的第一个提示。文章只说了“authenticate”;具体要求取决于你选择的智能体,所以应查阅该智能体自己的文档。
如果你想自己核对,顺序如下:
排序
将 Android Studio 的步骤排序
拖动项目或使用箭头
- 打开 Android Studio Rabbit 2
- 选择一个智能体(智能体窗口或 Settings > Tools > AI > Agents)
- 进行身份验证
- 发送第一个提示
模型和 API 密钥位于何处#
这是最让初学者困惑的部分。ACP 连接承载编辑器和智能体之间的对话。智能体仍然需要一个语言模型来思考,而那是单独的连接,通常有自己的登录或 API 密钥。切换编辑器不会改变模型,切换模型也不会改变编辑器。Android Studio 的文章没有提到自定义密钥或模型,所以你能改变什么取决于你选择的智能体。
有些智能体允许你将其指向 OpenAI 兼容端点:一个 base URL、一个密钥和一个模型 id。当你的智能体支持时,这就是模型侧的全部连接,你可以在改动任何设置之前先在终端中测试它(密钥是环境变量中的占位符):
curl https://api.cheaptokens.dev/v1/chat/completions \
-H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/DeepSeek-V4-Flash-0731",
"messages": [{"role": "user", "content": "Explain ACP in one sentence."}]
}'你会收到一个 JSON 回答,文本在 choices[0]. 中,token 计数在 usage 中。编码智能体在每一步都会重新发送大量上下文,所以长上下文模型适合它们。在 CheapTokens 中,那就是 DeepSeek-V4-Flash:380K 上下文窗口,每次回答最多 32,768 个输出 token,一天中任何时段价格相同,所有模型共用一个余额。该 API 兼容 OpenAI 和 Anthropic。请从 CheapTokens 文档获取确切的模型 id;不同提供商之间的 id 不同。DeepSeek 模型页面有详细信息。
不确定哪个工具接受自定义密钥?我们的指南在哪里接入你自己的 API 密钥涵盖了聊天、编辑器、终端和代码。如果“base URL”是个新术语,请阅读什么是 base_url 以及如何切换。
自己试试试一试:你安装了一个 ACP 智能体。要切换它使用的模型,你需要更改哪个连接?显示答案
不是 ACP 那个。编辑器到智能体的插槽保持原样。模型是智能体自己的设置:如果智能体暴露了这些设置,就在智能体的配置中设置 base URL、密钥和模型 id。
接下来做什么#
打开你想要使用的智能体的文档,找到它设置模型的位置。如果你好奇智能体内部如何工作,AI 智能体如何工作:循环会一步步展示。ACP 只回答一个问题:编辑器和智能体如何通信。其他一切都在智能体与其工具和模型之间。



