Tools

Agent Client Protocolってどんなプロトコル?

投稿日:

はじめに

AIコーディングエージェントが一気に広まったことにより、エンジニアは多数の選択肢を持つことになりました。
今や、さまざまなコードエディタなどでAIエージェントを使用できますが、各エディタごとに、各AIエージェント用のプラグインが開発されています。
どれも似たような機能・似たようなUIが各社から提供されていますが、その実装はバラバラとなっていて、エディタxAIエージェントの数だけプラグインが開発されていて、多くの組み合わせが起きています。

そうすると、AIエージェントプラグインの開発が追いつかず、一部のエディタでしか使用したいAIエージェントが提供されないといった「ロックイン」が起きてしまい、果てにはAIエージェント普及のボトルネックとなってしまう懸念があります。

そうした課題を解消するために生まれたプロトコルについて学習してみました。

Agent Client Protocol (ACP) の概要

ACPとは?

コードエディタとAIエージェントの組み合わせ問題への解決策として、コードエディタ(クライアント)とAIエージェント(サーバー)間の通信を標準化するために作られたプロトコルを作ると言うアプローチを取ったのが「ACP」です。
双方がACPに対応していれば、すぐにコードエティたとAIエージェントを繋ぐことができるようになります。

そうすることで、ボトルネックを解消し、利用者は好きなエディタとAIエージェントの組み合わせることができるようになります。

ACPの設計哲学

LSP (Language Server Protocol) が、プログラミング言語固有のインテリセンスをコードエディタから分離したのと同じアプローチを、AIエージェントの世界でも実現しようとしています。

ACPの仕組み

ACPの最小構成として、「クライアント」と「エージェント」から成り立ち、クライアントはサブプロセスとしてエージェントを立ち上げ、stdioで通信します。
通信プロトコルはJSON-RPCとなっていて、その上でエージェントはACPに準拠したインターフェースを提供します。

MCPについては、考え方が2つあります。

  1. ローカルマシンまたはリモートのMCPサーバの使用
    クライアント側のMCP Configurationをエージェントに渡し、エージェントがMCPサーバと直接接続する方法です。
  2. エディタ内蔵のMCPサーバの使用
    エディタ自身が、エディタを操作するためのMCPを提供している場合には、エージェントが提供するstdioを使い、クライアントのMCPと通信させることができます。
    この場合、MCPをstdioで使用できるための MCP Proxy を使用します。

ACPで定義されている機能

ACPでは以下のような機能が定義されていて、これらの機能をエージェント側が実装することで、クライアント側から利用できるようになります。

  • Prompt Turn
    ユーザのメッセージ送信から、エージェントの最終的な応答を1ターンと捉えます。この1ターンの中で、エージェントはLLMとの複数回のやり取りや、後述するツール呼び出し(Tool Calls)を行います。
  • Content
    ACP上でやり取りされる情報ブロックのことで、テキスト・画像・音声や、ファイルの中身を直接埋め込んだ「Embedded Resource」が定義されています。
  • Tool Calls
    エージェントがツールを実行する前に、ユーザへの通知と、必要に応じてユーザに実行許可を求める機能です。
  • File System
    エージェントが、クライアントの環境内のテキストファイルを読み書きするための機能です。エディタ上の「まだ保存されていない変更」などにもアクセスできます。
  • Terminals
    エージェントがクライアントの環境でシェルコマンドを実行し、その標準出力をリアルタイムでストリーミングして受け取るための仕組みです。
  • Agent Plan
    複雑なタスクを行う際、エージェントが「どのような手順で進めるか」という実行計画をクライアントに共有する機能です。これにより、ユーザーはエージェントの思考プロセスを視覚的に把握できます。
  • Session Config Options
    エージェントが「利用可能なモデル」「推論レベル」「動作モード(Askモードなど)」などの設定オプションのリストを提示し、クライアント側のUI(プルダウンなど)からユーザーが柔軟にセッションの設定を変更できるようにする仕組みです。
  • Slash Commands
    エージェントがサポートしている特定のコマンドをクライアントに事前通知する機能です。ユーザーがプロンプト内でこれらを入力することで、特定のアクションやワークフローを素早く呼び出すことができます。

ACPのデメリット

ACPのデメリットについて調べてみたところも以下のような点がありました。

クライアントが終了すると、エージェントプロセスも終了する

エージェントプロセスはクライアントのサブプロスセスとして実行されるため、クライアントが終了してしまうと、エージェントプロセスも修了してしまいます。
一方、Claude CodeやCodexなどのCLIツールは、エディタと別プロセスで動かせるため、エディタが何らかの理由で終了してしまってもタスクを続行できます。
この点を比べてみると、エージェントがサブプロセスで立ち上がるACPのデメリットが見えてきました。
(ただし、この点は各IDEに提供されているCopilot プラグインにも同じことが言えると思います。)

エディタ特有の機能が使えない場合がある

VSCodeのCopilot Extensionは、VSCode内部のコマンドを実行する場合があり、こうした各エディタ固有の統合機能がACPでは使えません。ただし、理論的にはVSCodeを操作するためのMCPを使えば、似たような事はできるかもしれません。

さいごに

ACPでは、ドラフトの仕様が10個以上提出されています。内容を見てみると「既存セッションのフォーク」「既存のセッションの再開」「セッション使用状況とコンテキストのステータス」といったものとなっていて、これらが実装されればより実用度が高まりそうだと思いました。

おすすめ書籍

直感 LLM ―ハンズオンで動かして学ぶ大規模言語モデル入門 実践 LLMアプリケーション開発 ―プロトタイプを脱却し、実用的な実装に迫るための包括的な手引き LLM入門:しくみから学ぶ生成AIの基礎: “使うだけ”から卒業するための、易しいけど深く言語モデルを探求する本 (LLMマスターシリーズ)

blog-page_footer_336




blog-page_footer_336




-Tools
-, ,

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

【Slack】OutgoingWebhookを利用して投稿を転送

1 はじめに2 OutgoingWebhook2.1 OutgoingWebhookの追加2.2 OutgoingWebhookの設定3 IncomingWebhook3.1 IncomingWebh ...

暗号資産(仮想通貨)の取引で損益が発生するパターン

1 はじめに2 暗号資産の利益が発生するパターン2.1 暗号資産を現金で売却した場合2.2 暗号資産を暗号資産で交換(購入)した場合2.3 取引所などから暗号資産を付与された場合(エアドロップ)2.4 ...

GCP無料枠×Theiaでいつでもコーディング

1 はじめに2 Theiaとは?3 GCPのセットアップ3.1 無料枠の利用を開始3.2 GCEインスタンスの作成3.2.1 1 f1-micro インスタンス(1 か月あたり、バージニア州北部を除く ...

元mac使いがUbuntuで理想の作業環境に近づけるためにやったこと

1 はじめに2 Ubuntuのインストール2.1 買ったもの2.2 インストールメディアの作成2.3 インストールメディアの起動3 キーボード・トラックパッド周りのカスタマイズ3.1 kinto.sh ...

暗号資産(仮想通貨)を個人で購入・売却した際の手数料の取り扱い

1 はじめに2 暗号資産の手数料の取り扱い2.1 購入時の手数料2.2 売却時の手数料2.3 手数料の消費税について3 手数料が含まれた暗号資産の仕訳3.1 暗号資産を現金で購入した場合3.2 暗号資 ...

フォロー

blog-page_side_responsive

2026年3月
1234567
891011121314
15161718192021
22232425262728
293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。