オープンプロトコル · v1 安定 · v2 ドラフト

Agent Client Protocol (ACP) — AI コーディングエージェントのための標準

ACP はコードエディタとコーディングエージェントの間の LSP 的標準です。ローカルエージェントは stdio 上の JSON-RPC を話します。リモート向け HTTP / WebSocket は標準化の途上です。本サイトは独立ガイドであり、公式仕様ではありません。

ワイヤプロトコル

v1 安定

本番ではこれを使う

次のメジャー

v2 ドラフト

バージョン交渉と feature flag 必須

認証済みエージェント

Registry 40

2026-09-12 時点

公式 SDK

TS & Rust 1.0

Python / Java / Kotlin もあり

エディタとエージェントの組み合わせごとに、まだ接着コードを書いていますか?

共有プロトコルがなければ、コーディングエージェントとエディタは密結合です。新しい組み合わせは、また別のプラグイン、別の RPC、別の一週間になります。

接着に週単位のコスト
プロセス寿命、ストリーミング、権限、diff、キャンセル。どれも組み合わせごとにゼロから。
ツールが組み合わない
Neovim + Claude、Zed + Codex、JetBrains + Gemini が欲しくても、ACP がなければベンダーの束を選ぶことになります。
ベンダーロックイン
エージェントが特定エディタの API しか話さないなら、IDE やエージェントを替えるたびに統合を捨てることになります。

ACP: 一度実装すれば、どこにでもつなげる

LSP が言語サーバを標準化したように、ACP はエージェントに一つのインタフェース、エディタに一つのクライアントを与えます。対応エージェントはどの ACP クライアントでも動き、対応エディタはエージェント生態系全体を手に入れます。使える MCP 型はそのまま再利用します。

Agent Client Protocol の動き

ユーザーはエディタに留まります。クライアントはローカルエージェントをサブプロセスとして起動するか、リモートエージェントに接続し、JSON-RPC でセッションを回します。

JSON-RPC over stdio

JSON-RPC 2.0

リクエスト、レスポンス、通知。双方向で、エージェントは権限、ファイル、ターミナル、構造化入力をクライアントに要求できます。

MCP 親和の型

コンテンツブロック、resource、ツール呼び出しは可能な範囲で MCP JSON を再利用し、diff や plan などコーディング UX 用の型を足します。

既定は Markdown

人が読むテキストは Markdown なので、クライアントは HTML エンジンを持たなくて済みます。

実際の ACP メソッド: session/prompt

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "session/prompt",
  "params": {
    "sessionId": "sess_abc123def456",
    "prompt": [
      {
        "type": "text",
        "text": "Refactor this function"
      }
    ]
  }
}
セッション
initialize → 必要なら authenticate → session/new または session/load。v1 では list / resume / close / delete も安定済みです。
ストリーミング UX
エージェントは session/update でテキスト、思考、ツール呼び出し、プラン、スラッシュコマンド、使用量を流します。
権限と elicitation
ツール呼び出しはユーザー承認を要求できます。安定済みの elicitation は構造化フォームや URL フローに使います。

ACP を選ぶ理由

共有契約は N×M のプラグインより強い一方で、各製品の UX は自由です。

普遍的な互換
一つのエージェントバイナリを Zed、JetBrains、Neovim、VS Code 拡張、モバイルやチャット面の後ろに置けます。
能力交渉
loadSession、ターミナル、elicitation、設定オプションは initialize で宣言します。未対応はプロトコル破壊ではありません。
開発者の自由度
エディタ側かエージェント側かを、相手を書き直さずに取り替えられます。
実績あるローカル転送
stdio は本番利用可能です。Transports WG が streamable HTTP と WebSocket を標準化中です。
安定 SDK
公式 TypeScript と Rust SDK は 1.0 です。Python、Java、Kotlin が残りの公式面をカバーします。
拡張性
独自メソッドはアンダースコア接頭辞。_meta で追加データを載せても相手を壊しません。

ACP の実際の使い方

プロトコルはパイプです。プロダクトは、いまのエディタ UX とエージェントのツールです。

エディタ内コーディングエージェント

リファクタ、テスト生成、diff 適用を、いつものキーバインドのまま。

マルチエージェント作業台

Claude、Codex、Gemini、OpenCode を別プラグインではなく並列セッションとして走らせます。

チャットとモバイルの制御面

Telegram、Slack、WeChat、QQ、Lark、スマホアプリからデスクトップのエージェントを駆動します。

ノートブックとデータツール

Jupyter、marimo、DuckDB の横でエージェントを動かし、独自 RPC を増やしません。

レビューと安全ループ

権限プロンプトとツール呼び出しカードで、ファイル書き込みとシェルを人の前に置きます。

カスタムハーネス

Deep Agents、Koog、Mastra、ACP Kit などが既存ランタイムを ACP エージェントとして包みます。

クライアント、エージェント、Registry

生態系はもう「Zed と数個の CLI」ではありません。エディタ、IDE、デスクトップ、そして 40 の認証済み Registry エージェントが ACP を出荷しています。

エディタとクライアント面

Zed
First-class external agent support
JetBrains IDEs
Built-in ACP client in AI Assistant
Visual Studio Code
ACP Client, ACP Pro, Multicoder, Poolside
Neovim
CodeCompanion, Avante, agentic.nvim, hermes.nvim
Emacs
agent-shell.el
Obsidian
Agent Client, Agent Console, Copilot, Harness

エージェントとアダプタ

Claude Agent · claude-agent-acp 0.76
Codex · codex-acp 1.11
Gemini CLI 0.59 · GitHub Copilot CLI
Cursor · Grok Build · Goose · OpenCode · Junie
Qwen Code · Kimi CLI · Cline · Factory Droid

特定の組み合わせが必要ですか?

クライアント面、アダプタ、Registry、能力サポートを比較します。

互換ガイドを開く

このサイトのガイド

現行プロトコルと生態系を要約します。正本の schema と RFD は agentclientprotocol.com にあります。

プロトコル
ユーザーはエディタに留まります。クライアントはローカルエージェントをサブプロセスとして起動するか、リモートエージェントに接続し、JSON-RPC でセッションを回します。
クライアントとエージェント
生態系はもう「Zed と数個の CLI」ではありません。エディタ、IDE、デスクトップ、そして 40 の認証済み Registry エージェントが ACP を出荷しています。
SDK
新しい言語バインディングを書くのでなければ、JSON-RPC framing を手書きしないでください。公式 SDK はクライアント側とエージェント側の両方をカバーします。
Registry
Registry は、クライアントが独自マニフェストを発明せずに対応エージェントを発見・インストール・設定するための仕組みです。厳選カタログで、エージェントは認証方法を出さなければなりません。
ACP vs MCP
検索結果の「ACP」がこのプロトコルとは限りません。Agent Client Protocol はエディタ↔コーディングエージェントの標準です。MCP を置き換えるのではなく、組み合わせて使います。
GitHub
github.com/agentclientprotocol/agent-client-protocol

ACP を始める

まずどちら側かを選んでください。本番は v1。v2 は明示的に開くドラフトです。

クライアント / エディタ開発者向け
エージェントをホストし、更新を描画し、危険なツールを権限の後ろに置きます。
アーキテクチャと v1 概要を読む
まず stdio 上の JSON-RPC を通す
手書き framing ではなく公式 SDK を使う
クライアント能力を宣言し、Registry のエージェントで試す
エージェント開発者向け
エージェント側を一度実装すれば、対応クライアントすべてに現れます。
initialize、session/new、session/prompt を扱う
テキスト、ツール、プランを session/update で流す
ログインが必要なら authMethods を出す
認証済みエージェントを ACP Registry に提出する

エディタとエージェントをつなぐ準備はできましたか?

v1 から始め、SDK を選び、v2 はバージョン確認の後ろに置いてください。

よくある質問

短い回答です。このガイドと公式 spec が食い違うときは、公式 schema が勝ちます。