ACP プロトコル
ACP とは
Agent Client Protocol (ACP) は、AI エージェントとそのクライアント間の標準化された通信プロトコルです。クライアント(IDE、エディタ、自動化ツール)が構造化された JSON-RPC メッセージを使用してエージェントセッションの開始、対話、管理を行う方法を定義しています。
ACP サーバーとしての iac-code
iac-code は ACP サーバーを通じて Infrastructure as Code の機能を公開します。ACP 互換のクライアントは iac-code acp をサブプロセスとして起動(または HTTP+SSE で接続)し、プログラム的に以下を行えます:
- プロジェクトディレクトリにスコープされたセッションの作成
- 自然言語プロンプトの送信とストリーミング応答の受信
- ファイル書き込みや破壊的操作の承認または拒否
- 複数の同時セッションの管理
これにより iac-code はターミナルツールから、あらゆる開発環境のためのコンポーザブルなバックエンドに変わります。
ユースケース
- IDE / エディタ統合 — Zed、VS Code、またはカスタムエディタが iac-code をコンテキストサーバーとして組み込み、IaC 生成をインラインで提供できます。
- エージェント間オーケストレーション — 他の AI エージェントがプロトコル経由で iac-code の IaC 機能を呼び出し、マルチエージェントワークフローを実現できます。
- 自動化パイプライン — CI/CD スクリプトやチャットオプスボットが iac-code をヘッドレスで呼び出し、テンプレートの生成と検証を行えます。
インタラクションモードの比較
| モード | コマンド | 最適な用途 |
|---|---|---|
| 対話 REPL | iac-code | ハンズオンでの探索、反復的なテンプレート作成 |
| 非対話 CLI | iac-code --prompt "..." または --headless | スクリプティング、ワンショット生成、CI パイプライン |
| ACP サーバー | iac-code acp | IDE 統合、マルチセッション管理、プログラムアクセス |
ACP サーバーモードは、複数の同時セッションをサポートし、プレーンテキスト出力ではなく構造化ストリーミングイベント(ツール呼び出し、権限リクエスト、思考)を提供する唯一のモードです。
コア機能
- マルチセッション管理 — 独立したセッションの作成、一覧表示、フォーク、再開、クローズ。各セッションは独自の会話履歴と作業ディレクトリを持ちます。
- ストリーミング応答 — エージェントテキスト、思考、ツール呼び出し、ツール進捗、完了のリアルタイムイベント。
- 権限フレームワーク — 読み取り専用ツールは自動許可。書き込みおよび破壊的ツールは実行前にクライアントの明示的な承認が必要。
- デュアルトランスポート — ローカル/サブプロセス用の Stdio、リモートおよびネットワークシナリオ用の HTTP+SSE。
- MCP サーバー設定パススルー — クライアントはセッション作成時に MCP サーバーを宣言してツール拡張できます。
- スラッシュコマンドサポート — プロトコルを通じてスラッシュコマンド(
/compact、/clear、/debugなど)を転送。 - ランタイムメトリクス — セッションレベルのトークン使用量、レイテンシ、ツール呼び出し統計。