openclaw acp はゲートウェイをバックエンドとする ACP ブリッジであり、完全な ACP ネイティブのエディタランタイムではありません。セッションのルーティング、プロンプトの配信、および基本的なストリーミング更新に重点を置いています。
互換性マトリックス
既知の制限事項
loadSessionは保存されたユーザーとアシスタントのテキスト履歴を再生しますが、過去のツール呼び出し、システム通知、またはリッチな ACP ネイティブイベントタイプは再構築しません。- 複数の ACP クライアントが同じゲートウェイセッションキーを共有する場合、イベントやキャンセル(中断)のルーティングはクライアントごとに厳密に分離されるのではなく、ベストエフォートになります。クリーンなエディタローカルのターンが必要な場合は、デフォルトの分離された
acp:<uuid>セッションを使用してください。 - ゲートウェイの停止状態は ACP の停止理由に変換されますが、そのマッピングは完全な ACP ネイティブランタイムほど表現力が高くありません。
- 初期のセッション制御は、現在、思考レベル、ツールの詳細度、推論、使用状況の詳細、および権限昇格アクションといった、ゲートウェイの設定のサブセットのみを対象としています。モデル選択や実行ホストの制御は、まだ ACP 構成オプションとして公開されていません。
session_info_updateとusage_updateは、ライブの ACP ネイティブランタイム計測ではなく、ゲートウェイのセッションスナップショットから派生しています。使用状況は概算であり、コストデータは含まれず、ゲートウェイがトークン合計データを「最新」とマークした場合にのみ発行されます。- ツールの追跡データはベストエフォートです。ブリッジは既知のツールの引数や結果に現れるファイルパスを表示できますが、ACP ターミナルや構造化されたファイル diff はまだ発行しません。
使用法
ACP クライアント (デバッグ用)
IDE を介さずにブリッジの動作確認を行うための組み込み ACP クライアントです。ACP ブリッジを起動し、対話的にプロンプトを入力できます。- 自動承認は許可リストに基づいており、信頼されたコアツール ID にのみ適用されます。
readの自動承認は、現在の作業ディレクトリ(--cwd設定時)に制限されます。- 未知のツールや非コアツール、範囲外の読み取り、および危険なツールには、常に明示的な承認プロンプトが必要です。
- サーバーから提供される
toolCall.kindは、信頼できないメタデータとして扱われます(権限付与の根拠にはなりません)。
利用手順
IDE(または他のクライアント)が Agent Client Protocol をサポートしており、OpenClaw ゲートウェイのセッションを操作したい場合に ACP を使用します。- ゲートウェイが起動していることを確認します(ローカルまたはリモート)。
- ゲートウェイの接続先を構成します(構成ファイルまたはフラグ)。
- IDE の設定で、stdio 経由で
openclaw acpを実行するように指定します。
エージェントの選択
ACP はエージェントを直接選択するのではなく、ゲートウェイのセッションキーによってルーティングを行います。 特定のエージェントをターゲットにするには、エージェントスコープのセッションキーを使用します:acp:<uuid> セッションを使用します。
ブリッジモードでは、セッションごとの mcpServers はサポートされていません。ACP クライアントが newSession や loadSession 時にこれらを送信した場合、ブリッジは黙って無視するのではなく、明確なエラーを返します。
acpx (Codex, Claude Code 等の ACP クライアント) からの利用
Codex や Claude Code などのコーディングエージェントから OpenClaw ボットと ACP 経由で通信したい場合は、acpx の組み込み openclaw ターゲットを使用します。
標準的な流れ:
- ゲートウェイを実行し、ACP ブリッジから到達可能であることを確認します。
acpx openclawの参照先としてopenclaw acpを指定します。- コーディングエージェントに使用させたい OpenClaw のセッションキーを指定します。
~/.acpx/config.json で openclaw エージェントコマンドを上書きします:
Zed エディタのセットアップ
~/.config/zed/settings.json にカスタム ACP エージェントを追加します(または Zed の設定 UI を使用します):
セッションマッピング
デフォルトでは、ACP セッションにはacp: プレフィックスが付いた分離されたゲートウェイセッションキーが割り当てられます。既存のセッションを再利用するには、セッションキーまたはラベルを渡します。
--session <key>: 特定のゲートウェイセッションキーを使用します。--session-label <label>: 既存のセッションをラベルで解決します。--reset-session: そのキーに対して新しいセッション ID を発行します(同じキーですが、履歴は新しくなります)。
オプション
--url <url>: ゲートウェイの WebSocket URL (構成済みであれば gateway.remote.url がデフォルトとなります)。--token <token>: ゲートウェイ認証トークン。--token-file <path>: ゲートウェイ認証トークンをファイルから読み込みます。--password <password>: ゲートウェイ認証パスワード。--password-file <path>: ゲートウェイ認証パスワードをファイルから読み込みます。--session <key>: デフォルトのセッションキー。--session-label <label>: 解決するデフォルトのセッションラベル。--require-existing: セッションキーやラベルが存在しない場合にエラーにします。--reset-session: 初回使用前にセッションキーをリセットします。--no-prefix-cwd: プロンプトの前に作業ディレクトリを付加しません。--verbose, -v: stderr への詳細ログ出力を有効にします。
- 一部のシステムでは、
--tokenや--passwordはローカルのプロセス一覧から可視状態になる場合があります。 --token-file/--password-fileまたは環境変数 (OPENCLAW_GATEWAY_TOKEN,OPENCLAW_GATEWAY_PASSWORD) の使用を推奨します。- ゲートウェイ認証の解決は、他のゲートウェイクライアントと共通のルールに従います:
- ローカルモード: 環境変数 (
OPENCLAW_GATEWAY_*) ->gateway.auth.*->gateway.auth.*未設定時はgateway.remote.*へフォールバック - リモートモード:
gateway.remote.*(リモート優先順位ルールによる環境変数/構成フォールバックあり) --url指定時は上書きが優先され、暗黙的な構成や環境変数の認証情報は再利用されません。明示的に--token/--password(またはファイル版) を指定してください。
- ローカルモード: 環境変数 (
- ACP ランタイムバックエンドの子プロセスは
OPENCLAW_SHELL=acpを受け取ります。これはコンテキスト固有のシェルやプロフィールルールに使用できます。 openclaw acp clientは、起動したブリッジプロセスにOPENCLAW_SHELL=acp-clientを設定します。
acp client オプション
--cwd <dir>: ACP セッションの作業ディレクトリ。--server <command>: ACP サーバーコマンド (デフォルト:openclaw)。--server-args <args...>: ACP サーバーに渡す追加の引数。--server-verbose: ACP サーバーの詳細ログ出力を有効にします。--verbose, -v: クライアントの詳細ログ出力。