一家刚刚发布了自己编程智能体的公司,把自家 IDE 里同一块面板开放给了四十多个对手,其中包括 Anthropic 的和 OpenAI 的。这不是让步,而把它读成大方就错过了这步棋:去看一看那个来访的智能体真正被递到手里的是什么,你就能看出 Google 认为这个技术栈的哪一半值得拥有。客人带来一个模型。主人留下模拟器、构建系统、日志流、项目上下文与 skills——而上周坍塌掉的那份切换成本,是你的,不是他们的。
发布了什么
Android Studio Rabbit 2 随一项名为 Bring Your Own Agent 的特性进入稳定版,发布于 2026 年 10 月 28 与 29 日在 Mountain View 举行的 Android Dev Summit。它构建在 Agent Client Protocol 之上——一个开放协议,而不是 Google 的协议;之所以值得把名字写全,是因为至少有一家媒体把它报道成了「Agent Context Protocol」,而那完全是另一回事。
| 部件 | 是什么 | 在哪里跑 |
|---|---|---|
| Bring Your Own Agent | IDE 里的智能体选择器,40 多个兼容 ACP 的智能体 | Android Studio Rabbit 2,稳定版 |
| 已点名的选项 | Claude Agent、Codex、Junie、Google Antigravity | 同一个窗口,同一套工具 |
| 被授予的工具访问 | Android 模拟器、构建系统、Logcat、Android skills | 由主人提供 |
| Android CLI 插件 | Claude Code 与 Codex 的插件 | 终端与 CI,无需 IDE |
配置过程就是一个选择器:打开智能体窗口,或者进 Settings、Tools、AI、Agents,选一个智能体,用那家厂商的账号认证,然后发一段提示词。认证这一步是安静的那部分——你登录的是智能体厂商,而不是 Google,这就告诉了你那次模型调用归属于谁的关系。
工具才是那个资产
把一个 Android 编程智能体要想有用所需要的东西逐条列出来,几乎没有一项是模型。它需要构建项目,这意味着构建系统及其缓存。它需要运行应用,这意味着模拟器。它需要看到发生了什么,这意味着 Logcat。它需要知道这个项目是什么,这意味着已建索引的源码,以及这个仓库所承载的那些约定。Rabbit 2 把这些全都递给了来访的智能体,外加 Android skills——那些把「Android 的活到底怎么干」编码起来的、打包好的平台专属指令。
那一整套东西建起来很贵,而且一个智能体厂商几乎不可能从外部复制出来。没有它,智能体就是一个对着你的 Gradle 配置瞎猜的聊天窗口;有了它,同一个智能体能编译、安装、运行、读崩溃日志,然后再试一次。于是模型成了那个便宜且可替换的层——四十个选项的选择器正是在告诉你它就是这么一层——而工具面成了你绕不开的那个东西。Google 送掉了那个已经自我商品化的部分,留下了那个没有商品化的部分。
这与智能体外壳那条论证从另一个方向说的是同一个结构性要点:你观察到的能力,至少与模型同等程度地属于那个外壳——这也是为什么那些在单一脚手架上给模型排序的排行榜,总是预测不了换一个脚手架会发生什么。Rabbit 2 就是那个主张被做成了产品决策——一套工具面、四十个可互换的模型,而工具面才是护城河。
CLI 插件才是那个破绽
如果那个论点仅仅是「占住 IDE」,那么合理的后续动作应当是让 Android 的工具面只能透过 IDE 窗口够到。Google 在同一口气里做了相反的事:Android CLI 加上了 Claude Code 与 Codex 的插件,于是同样这些智能体能在终端里、或者在 CI 内部工作,完全不需要有 IDE 在跑。
那是在赌「有价值的是工具面、而不是望向它的那扇窗」。而这恰好也是就编程智能体的走向而言正确的判断——长时间运行、无人看守的任务属于 CI,而不属于一块需要有人一直开着的面板;而一个只能从图形界面驱动的智能体是没法排进定时任务的。把两扇门同时发出来,意味着主人不必去猜哪一扇会赢。
对读者来说,实际后果比这套策略要窄:你现在可以在 IDE 与流水线上标准化到同一个智能体,或者在两处各跑不同的,而不必重建那套集成。智能体变成了一个配置项。
这对你改变了什么
有用的那个反转是这样的:过去两年里,关于怎么挑编程智能体的建议是「去评估那个智能体」。对 Android 的活来说,这条建议现在几乎是反的——因为智能体是你周二就能换掉的那一层,而工具面是你继承下来的那一层。如果你在做选择,请把评估预算花在「主人是否暴露了你的工作流所需要的东西」上——智能体能不能跑一个带插桩的测试、能不能从一台真机上读崩溃、能不能看到你的构建变体——然后把模型当成一个你反正每年都要换两次的东西。
如果你在造一个智能体,真正要紧的风险已经不再是排行榜上的位置。同一个选择器里有四十个对手,意味着你的差异化必须在「被递到手里的是完全相同的工具」之后还能存活,而生存层面的风险是被某个主人的工具面切断,而不是输掉一张排行榜。这就构成了一条支持「实现 ACP 而不是做一个定制 IDE 插件」的有力论证:协议才是那个让你出现在一扇不属于你的窗口里的东西。
没人标准化的那部分
一个把智能体连到工具面的开放协议是好事,而把它没有承载的东西讲清楚也是值得的。ACP 标准化的是一个智能体如何连接、以及如何与宿主对话。它没有规定某个特定的客人可以够到哪些工具、在什么授权之下、留下什么审计痕迹——而这里摆出来的那份工具清单可是相当有能力的。一个握有构建系统、模拟器与 Logcat 的智能体,能在你的机器上执行代码、读取你应用的运行时输出、并修改你的源码树。
那对这份工作来说是正确的能力集合,而它同时也是爆炸半径。主人决定借出什么;协议不会替你决定,而一个有四十个条目的选择器,就是四十家不同厂商的软件在够你机器上的同一个面。该向一个主人追问的都是些寻常问题——一个客人智能体默认拿到什么、你能不能把它收窄、有没有东西记录它做了什么——而它们是关于这个 IDE 的授权模型的问题,而不是关于那个协议的。Agent Client Protocol 讲了这份规范承担与不承担什么;而审查一个第三方 skill 讲的是 Rabbit 2 现在会加载的另一半,因为 Android skills 是智能体对着你的项目去执行的内容。
这些都不会让这项特性变成一个坏主意。它只是让它成为一项「安全属性由主人设定」的特性——而在那扇窗里,主人刚刚请进来了四十位客人。
常见问题
Android Studio 里的 Bring Your Own Agent 是什么?
这是 Android Studio Rabbit 2(现为稳定版)里的一项特性,让你在 IDE 的智能体窗口内运行第三方编程智能体。它构建在 Agent Client Protocol 之上,支持四十多个兼容 ACP 的智能体,已点名的选项包括 Claude Agent、Codex、Junie 与 Google Antigravity。
它用的是哪个协议?
Agent Client Protocol,一个把编程智能体连到宿主编辑器的开放协议。请注意至少有一篇报道把它叫成了「Agent Context Protocol」,那是另一个名字、指的是另一回事。
一个来访的智能体实际上能做什么?
Google 的文档列出了对 Android Studio 工具的访问,包括 Android 模拟器、构建系统与 Logcat,外加使用 Android skills 的能力。换句话说,它能构建、运行、观察并修改这个项目——这正是重点,同时也正是爆炸半径。
用这些智能体一定要有 IDE 吗?
不用。Android CLI 另外加上了 Claude Code 与 Codex 的插件,于是同样这些智能体能在终端里、或在 CI 中工作,完全不需要有 IDE 在跑。对长时间运行、无人看守的任务来说,那才是更合适的地方。
模型调用的钱谁付?
配置过程中你用智能体自己厂商的账号认证,所以模型这层关系是你与那家厂商之间的,而不是走 Google。具体条款请查各家厂商的说明——那个配置流程告诉你的是「用的是谁的账号」,而不是「它要花多少钱」。
这是否意味着编程智能体的选择不再要紧了?
要紧程度降低了,而且方式变了。智能体现在是你能不返工就换掉的那一层,而主人的工具面是你继承下来的那一层——所以在花很长时间比较模型之前,先评估主人有没有暴露你的工作流所需要的东西。
延伸阅读
本站:
- Agent Client Protocol——这份规范覆盖了什么,又把什么留给了宿主。
- 智能体外壳——为什么被测出来的能力至少与模型同等程度地属于脚手架。
- 智能体 skills——智能体对着你的项目加载的那些打包指令。
- 编程智能体架构——当你自己造一个时,这些零件如何拼起来。
- 审查一个第三方 skill——审阅智能体将会执行的内容。