acp
OpenClaw Gateway と通信する Agent Client Protocol (ACP) ブリッジを実行します。 このコマンドは IDE 向けに stdio 経由で ACP を話し、プロンプトを WebSocket 経由で Gateway に転送します。 ACP セッションは Gateway のセッションキーに対応付けられたまま維持されます。openclaw acp は Gateway をバックエンドとする ACP ブリッジであり、完全な ACP ネイティブのエディター
ランタイムではありません。主眼は、セッションルーティング、プロンプト配信、基本的なストリーミング
更新にあります。
ACP ハーネスセッションをホストする代わりに、外部 MCP クライアントから OpenClaw のチャネル
会話へ直接接続したい場合は、
openclaw mcp serve を使ってください。
これは何ではないか
このページは ACP ハーネスセッションと混同されることがよくあります。openclaw acp の意味は次のとおりです。
- OpenClaw が ACP サーバーとして動作する
- IDE または ACP クライアントが OpenClaw に接続する
- OpenClaw がその作業を Gateway セッションに転送する
acpx を通じて Codex や Claude Code のような外部ハーネスを実行します。
簡単なルール:
- エディター/クライアントが ACP で OpenClaw とやり取りしたい:
openclaw acpを使う - OpenClaw が Codex/Claude/Gemini を ACP ハーネスとして起動すべき:
/acp spawnと ACP Agents を使う
互換性マトリクス
| ACP 領域 | ステータス | 注記 |
|---|---|---|
initialize, newSession, prompt, cancel | 実装済み | stdio から Gateway の chat/send + abort へのコアブリッジフロー。 |
listSessions, slash commands | 実装済み | セッション一覧は Gateway セッション状態に対して動作します。コマンドは available_commands_update を通じて通知されます。 |
loadSession | 一部対応 | ACP セッションを Gateway セッションキーに再バインドし、保存済みの user/assistant テキスト履歴を再生します。tool/system 履歴はまだ再構築されません。 |
プロンプト内容(text、埋め込み resource、画像) | 一部対応 | テキスト/リソースは chat 入力にフラット化され、画像は Gateway 添付ファイルになります。 |
| セッションモード | 一部対応 | session/set_mode はサポートされています。ブリッジは初期の Gateway バックドなセッション制御として、thought level、tool verbosity、reasoning、usage detail、elevated actions を公開します。より広い ACP ネイティブの mode/config サーフェスはまだ対象外です。 |
| セッション情報と使用量の更新 | 一部対応 | ブリッジは、キャッシュされた Gateway セッションスナップショットから session_info_update とベストエフォートの usage_update 通知を出します。使用量は概算であり、Gateway のトークン合計が fresh とマークされている場合にのみ送信されます。 |
| ツールストリーミング | 一部対応 | tool_call / tool_call_update イベントには、Gateway のツール引数/結果がそれらを公開している場合に、生の I/O、テキスト内容、ベストエフォートのファイル位置が含まれます。埋め込み端末や、より豊かな diff ネイティブ出力はまだ公開されません。 |
セッションごとの MCP サーバー(mcpServers) | 未対応 | ブリッジモードではセッションごとの MCP サーバー要求を拒否します。代わりに OpenClaw gateway または agent 側で MCP を設定してください。 |
クライアントのファイルシステムメソッド(fs/read_text_file, fs/write_text_file) | 未対応 | ブリッジは ACP クライアントのファイルシステムメソッドを呼び出しません。 |
クライアントの端末メソッド(terminal/*) | 未対応 | ブリッジは ACP クライアント端末を作成せず、tool call を通じて terminal id もストリームしません。 |
| セッション計画 / thought ストリーミング | 未対応 | 現在のブリッジは出力テキストとツール状態を出力しますが、ACP の plan や thought 更新は出力しません。 |
既知の制限
loadSessionは保存済みの user と assistant のテキスト履歴を再生しますが、 過去の tool call、system 通知、より豊かな ACP ネイティブイベント 種別は再構築しません。- 複数の ACP クライアントが同じ Gateway セッションキーを共有する場合、イベントと cancel の
ルーティングはクライアントごとに厳密に分離されるのではなくベストエフォートになります。エディター
ローカルでクリーンなターンが必要な場合は、既定の分離された
acp:<uuid>セッションを 推奨します。 - Gateway の stop 状態は ACP の stop reason に変換されますが、その対応付けは 完全な ACP ネイティブランタイムほど表現力がありません。
- 初期セッション制御で現在公開されているのは、Gateway ノブのうち絞られた一部です: thought level、tool verbosity、reasoning、usage detail、elevated actions。model 選択や exec-host 制御はまだ ACP の config オプションとしては公開されていません。
session_info_updateとusage_updateは Gateway セッション スナップショットから導出されるものであり、ライブの ACP ネイティブなランタイム会計ではありません。使用量は概算で、 コストデータは含まず、Gateway が合計トークン データを fresh とマークした場合にのみ送信されます。- ツール追従データはベストエフォートです。ブリッジは、既知のツール引数/結果に 現れるファイルパスを公開できますが、ACP の端末や構造化されたファイル diff はまだ出力しません。
使い方
ACP クライアント(デバッグ)
IDE なしでブリッジを簡易確認するには、組み込みの ACP クライアントを使います。 ACP ブリッジを起動し、対話的にプロンプトを入力できます。- 自動承認は許可リストベースで、信頼できるコア tool ID にのみ適用されます。
readの自動承認は現在の作業ディレクトリ(設定時は--cwd)に限定されます。- ACP が自動承認するのは、アクティブな cwd 配下の限定的な読み取り専用
read呼び出しと、読み取り専用の検索ツール(search,web_search,memory_search)だけです。未知の/コアでないツール、範囲外の読み取り、実行可能なツール、コントロールプレーンツール、変更を伴うツール、対話フローは常に明示的なプロンプト承認が必要です。 - サーバー提供の
toolCall.kindは信頼できないメタデータとして扱われます(認可の根拠にはなりません)。 - この ACP ブリッジポリシーは ACPX ハーネス権限とは別です。
acpxバックエンド経由で OpenClaw を実行する場合、plugins.entries.acpx.config.permissionMode=approve-allがそのハーネスセッション用の非常用「yolo」スイッチです。
これを使う場面
IDE(または他のクライアント)が Agent Client Protocol を話し、 それに OpenClaw Gateway セッションを操作させたい場合に ACP を使います。- Gateway が実行中であることを確認します(ローカルまたはリモート)。
- Gateway の接続先を設定します(設定またはフラグ)。
- IDE が stdio 経由で
openclaw acpを実行するように設定します。
エージェントの選択
ACP はエージェントを直接選びません。Gateway のセッションキーによってルーティングします。 特定のエージェントを対象にするには、エージェントスコープのセッションキーを使います。acp:<uuid> セッションを使います。
ブリッジモードではセッションごとの mcpServers はサポートされません。ACP クライアントが
newSession または loadSession 中にそれらを送信した場合、ブリッジは黙って無視するのではなく
明確なエラーを返します。
ACPX バックドなセッションから OpenClaw plugin tools を見せたい場合は、
セッションごとの mcpServers を渡そうとするのではなく、gateway 側の ACPX plugin bridge を有効にしてください。
詳細は ACP Agents を参照してください。
acpx から使う(Codex、Claude、その他の ACP クライアント)
Codex や Claude Code のようなコーディングエージェントを ACP 経由で
OpenClaw ボットと接続したい場合は、組み込みの openclaw target を持つ acpx を使います。
一般的な流れ:
- Gateway を実行し、ACP ブリッジがそこへ到達できることを確認します。
acpx openclawがopenclaw acpを指すようにします。- コーディングエージェントに使わせたい OpenClaw セッションキーを指定します。
acpx openclaw が毎回特定の Gateway とセッションキーを対象にするようにしたい場合は、
~/.acpx/config.json で openclaw agent command を上書きします。
Zed エディターのセットアップ
~/.config/zed/settings.json にカスタム ACP agent を追加します(または Zed の Settings UI を使います):
セッション対応付け
既定では、ACP セッションにはacp: 接頭辞付きの分離された Gateway セッションキーが割り当てられます。
既知のセッションを再利用するには、セッションキーまたはラベルを渡します。
--session <key>: 特定の Gateway セッションキーを使います。--session-label <label>: 既存のセッションをラベルで解決します。--reset-session: そのキーに対して新しいセッション id を発行します(同じキー、新しい transcript)。
オプション
--url <url>: Gateway WebSocket URL(設定されている場合は gateway.remote.url が既定)。--token <token>: Gateway 認証 token。--token-file <path>: Gateway 認証 token をファイルから読み取ります。--password <password>: Gateway 認証 password。--password-file <path>: Gateway 認証 password をファイルから読み取ります。--session <key>: 既定のセッションキー。--session-label <label>: 解決する既定のセッションラベル。--require-existing: セッションキー/ラベルが存在しない場合は失敗します。--reset-session: 最初の使用前にセッションキーをリセットします。--no-prefix-cwd: プロンプトの先頭に作業ディレクトリを付けません。--provenance <off|meta|meta+receipt>: ACP provenance メタデータまたは receipt を含めます。--verbose, -v: stderr へ詳細ログを出力します。
--tokenと--passwordは、一部のシステムではローカルプロセス一覧に見えることがあります。--token-file/--password-fileまたは環境変数(OPENCLAW_GATEWAY_TOKEN,OPENCLAW_GATEWAY_PASSWORD)を推奨します。- Gateway 認証の解決は、他の Gateway クライアントと共有される契約に従います:
- local mode: env(
OPENCLAW_GATEWAY_*)->gateway.auth.*->gateway.remote.*へのフォールバックはgateway.auth.*が未設定の場合のみ(設定済みだが未解決の local SecretRef は fail closed) - remote mode:
gateway.remote.*。env/config のフォールバックは remote の優先順位ルールに従います --urlは override-safe で、暗黙の config/env 認証情報を再利用しません。明示的な--token/--password(またはファイル版)を渡してください
- local mode: env(
- ACP ランタイムバックエンドの子プロセスには
OPENCLAW_SHELL=acpが渡され、コンテキスト固有の shell/profile ルールに利用できます。 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: 詳細なクライアントログ。