エージェント・クライアント・プロトコル(ACP)とは?

Dev.to / 2026/3/27

💬 オピニオンDeveloper Stack & InfrastructureIdeas & Deep AnalysisTools & Practical Usage

要点

  • エージェント・クライアント・プロトコル(ACP)は、コードエディタ/IDEがローカル環境およびリモート環境の両方でコーディングエージェントとどのように通信するかを標準化する規格です。
  • ACPは、エディタとエージェントがカスタム連携を必要とするという現在の相互運用性の問題に動機づけられており、その結果として連携のオーバーヘッドが増大し、互換性が限定され、エディタ/エージェントへのロックインが発生しています。
  • 本記事ではACPを、言語サーバプロトコル(LSP)に類するものとして位置づけ、ACPに対応したどのエディタでもエージェントが動作でき、さらにエディタ側が互換性のあるエージェントのエコシステムにアクセスできるようにすることを目指します。
  • DeepAgentsコードベースでは、ACPは`libs/acp`フォルダ配下として実装されており、Zedエディタとの関連で言及されています。
  • さらに、互換性のあるツール群の中でACPを実際にどのように使うことを想定しているかの例として、`deepagents-mcp`統合を挙げています。

この記事ではACPが何であるかを説明します。学べること:

  1. Agent Client Protocol(エージェント・クライアント・プロトコル)とは?

  2. DeepAgentsのコードベースにおけるACP。

Enterキーを押すかクリックして画像をフルサイズで表示

Agent Client Protocol(ACP)とは?

Agent Client Protocol(ACP)標準は、コードエディタ/IDEとコーディングエージェント間の通信を標準化するもので、ローカル環境でもリモート環境でも適しています。

なぜACPなのか?

AIコーディングエージェントとエディタは密に結合していますが、相互運用性はデフォルトではありません。サポートしたい各エージェントごとに、各エディタはカスタムの統合を構築する必要があり、ユーザーに到達するにはエージェント側がエディタ固有のAPIを実装する必要があります。これにより、いくつかの問題が生じます:

  • 統合のオーバーヘッド: エージェントとエディタの組み合わせが新しくなるたびに、カスタム作業が必要

  • 互換性の制限: 利用可能なエディタの一部にしかエージェントが対応していない

  • 開発者のロックイン: エージェントを選ぶということは、しばしばそのエージェントが用意しているインターフェースを受け入れることを意味する

ACPは、エージェントとエディタの通信のための標準プロトコルを提供することで、この問題を解決します。これは、Language Server Protocol(LSP)が言語サーバー統合を標準化したのと同様です。ACPを実装したエージェントは、対応している任意のエディタで動作します。ACPに対応したエディタは、ACPに対応したエージェントのエコシステム全体にアクセスできます。この疎結合によって、双方が独立してイノベーションを進めながら、開発者にはワークフローに最適なツールを選ぶ自由が与えられます。

についてもっと知るには Agent Client Protocol.

DeepAgentsのコードベースにおけるACP。

ACPはlibs/acpのフォルダとして定義されています。そのREADMEにはZedについての言及があります。zedのサイトを確認してみてください。Zedは、人間とAIとの協働とスピードのために作られた最小限のコードエディタです。

deepagents-mcpのREADMEからの使用例:

// ~/.config/zed/settings.json
{
  "agent": {
    "profiles": {
      "deepagents": {
        "name": "DeepAgents",
        "command": "npx",
        "args": [ "deepagents-acp"]
      }
    }
  }
}

以下はプログラム的な使用例の別例です:

import { startServer } from "deepagents-acp";

await startServer({
  agents: {
    name: "coding-assistant",
    description: "AI coding assistant with filesystem access",
  },
  workspaceRoot: process.cwd(),
});

DeepAgentsのドキュメントを確認して、適切ないくつかのユースケースを探し、以下の例を見つけました:

  • 計画と分解を必要とする、複雑で多段階のタスクの処理

  • ファイルシステムツールを通じて、大量のコンテキストを管理

  • ファイルシステムのバックエンドを切り替え、インメモリ状態、ローカルディスク、耐久ストア、サンドボックス、またはあなた自身のカスタムバックエンドを利用する

  • 文脈の隔離のために、専門のサブエージェントへ作業を委譲

  • 会話やスレッドをまたいで記憶を永続化

についてもっと知るには Deep Agents.

自己紹介:

こんにちは、私の名前はRamu Narasingaです。メール: ramu.narasinga@gmail.com

AIの低品質な投げっぱなしコンテンツにうんざりしていませんか?

私は3年以上、OSSのコードベースを研究し、それらをプロダクションレベルにする要素について350本以上の記事を書いてきました。既存のコードベースのパターンに対して、あなたのPRをレビューするオープンソースツールを作りました。

あなたのコードベース。あなたのパターン。強制します。

無料で始める — thinkthroo.com

参考:

  1. langchain-ai/deepagentsjs/libs/acp/README.md

  2. agentclientprotocol.com/get-started/introduction

  3. langchain-ai/deepagentsjs/libs/acp

  4. zed.dev/

広告