ACP协议:打通多个超级AI编程工具
AI编程今年很可能今年被正式取代,前两天google说内部70%的代码是AI生成,Antrophic更高,去年就说接近90%了。我们有必要聊聊AI编程底层的一些工具,工欲善其事必先利其器,了解下基本原理可以让我们更有效的使用工具~
1、痛点和背景
先说痛点:你可能已经在用 Kiro CLI、Claude Code、OpenAI Codex 这些终端 AI 编码工具,但它们都是”单机版”——只能在终端里用,没法接入微信、飞书这些 IM 渠道。
能不能实现这样一个功能?
在微信里发一条消息,就能让 Kiro 写代码、Codex 抓网页发小红书、Claude 做 Code Review——这篇文章手把手教你怎么配。

Kiro CLI、Claude Code 这些工具都支持一种叫 ACP(Agent Client Protocol)的协议——本质上就是通过 stdin/stdout 传输 JSON-RPC 2.0 消息。
ACP Bridge 做的事情是:
-
接收外部的 HTTP 请求
-
启动 CLI 工具的子进程
-
把 HTTP 请求翻译成 JSON-RPC 消息写入子进程的 stdin
-
从子进程的 stdout 读取 JSON-RPC 响应
-
翻译回 HTTP 响应返回给调用者

一句话总结:任何有 CLI 的 AI Agent,配任何模型,都能通过 ACP Bridge 接入 IM。
Agent兼容性:

2、过程中依赖的核心技术
2.1 JSON-RPC
JSON-RPC 的核心思想是:“调用一个远程的方法,就像调用本地的方法一样。”当客户端想要调用服务器上的某个函数时,它会向服务器发送一个符合 JSON-RPC 规范的 JSON 对象。服务器收到后,解析这个对象,执行相应的函数,然后将结果打包成另一个 JSON 对象返回给客户端。
-
语言无关性:只要能解析 JSON,任何编程语言(Python, Java, Go, JS 等)都可以使用 JSON-RPC 进行通信。
-
传输层无关性:虽然最常用的是 HTTP/HTTPS,但它也可以在 TCP、WebSocket 或其他传输协议上运行。
-
轻量级:相比于 SOAP 或复杂的 gRPC,JSON-RPC 非常简单,易于调试(人类可读)。
-
无状态:每个请求都是独立的,服务器不需要维护客户端的状态。
2.2 ACP协议
ACP(Agent Client Protocol,Agent 客户端协议)是一个开放标准,定义了代码编辑器(客户端)与 AI 编程 Agent(服务端)之间的通信方式。它由 Zed 编辑器 团队于 2025 年 8 月发布,采用 Apache License 开源。
简单来说,ACP 之于 AI 编程 Agent,就像 LSP(Language Server Protocol)之于编程语言支持 —— 让任何编辑器可以对接任何 AI Agent,无需定制插件。
ACP 基于 JSON-RPC 2.0,通过 stdio(Agent 作为子进程)或 HTTP(远程 Agent)通信。核心消息流如下:

Session Update 类型包括:plan(执行计划)、agent_message_chunk(流式文本)、thought_message_chunk(推理过程)、tool_call(工具调用)、tool_call_update(工具进度/结果)等。
1)与 MCP 的关系:
ACP 和 MCP 是互补的,不是竞争关系:
-
MCP 解决的是 Agent 如何访问外部工具和数据(Agent ↔ 工具)
-
ACP 解决的是 Agent 如何与编辑器/UI 通信(Agent ↔ 客户端)
ACP 会话启动时,编辑器会将可用的 MCP Server 端点和凭证传递给 Agent,Agent 可以通过标准 MCP 调用来使用这些工具(运行测试、查询文档、访问数据库等)。编辑器始终保持监督权,敏感操作需要用户确认。

这三者的关系分别是:MCP是Agent如何调用不同的工具,ACP是(人如何控制)程序如何调用不同的Agent,A2A则更进一步Agent之间的相互调用。
2)生态现状:
-
Zed 编辑器原生支持(自身内置 AI 助手也重构为 ACP)
-
Google Gemini CLI 作为首个参考实现
-
Neovim 通过 Code Companion 插件支持
-
社区正在探索 Claude Code 等更多 Agent 的集成
-
JetBrains、Obsidian 等编辑器也在适配中
2.3 kiro-gateway:
Kiro Gateway 是一个协议翻译代理,让你可以用任何兼容 OpenAI/Anthropic 的客户端(Claude Code、Cursor、Cline等)来调用 Kiro 提供的免费 Claude 模型。

五个核心机制:
-
认证管理 (auth.py)
支持 4 种认证方式,自动检测类型:
– Kiro Desktop Auth:读取 Kiro IDE 的 JSON 凭证文件,用
prod.{region}.auth.desktop.kiro.dev/refreshToken 刷新
– AWS SSO OIDC:读取 kiro-cli 的 SSO 缓存,用 oidc.{region}.amazonaws.com/token 刷新(需要
clientId/clientSecret)
– SQLite DB:直接读 kiro-cli 的 data.sqlite3 数据库
– 环境变量:直接传 refresh_token
关键:用 asyncio.Lock 保证并发安全的 token 刷新,token 过期前自动续期。
2. 协议转换 (converters_core.py)
这是最核心的部分。Kiro API 的请求格式是私有的,不同于 OpenAI/Anthropic:

-
模型解析 (model_resolver.py)
4 层解析管道,兼容各种客户端发来的模型名:

-
流式响应解析 (parsers.py + streaming_core.py)
Kiro API 返回的是 AWS Event Stream 二进制格式(不是标准 SSE),需要:
– 解析二进制帧头(4 字节长度 + headers + payload)
– 提取 JSON 事件
– 用 FSM(有限状态机)解析 <thinking> 标签,分离推理内容和正文
– 处理 tool call 的特殊格式(Kiro 用 [{…}] 括号格式返回)
– 转换成标准 OpenAI SSE (data: {…}\n\n) 或 Anthropic SSE 格式
5. 容错与重试 (http_client.py)
– 403 → 自动刷新 token 重试
– 429 → 指数退避
– 5xx → 指数退避
– 首 token 超时 → 重试(模型可能在”思考”)
– 流式请求用独立 httpx client(防止 CLOSE_WAIT 连接泄漏)
3、令人经验的效果展示
1)微信里面使用kiro帮你完成调研

2)kiro转API供给本地AI服务


同样的逻辑也可以配置Claudecode和codex,实现买一个套餐玩儿转所有coding Agent!
4、参考:
1)kiro-gateway
https://github.com/jwadow/kiro-gateway
2)acp-bridge
https://github.com/allvegetable/acp-bridge
夜雨聆风