Skip to content

ACP プロトコル

源码版本v2026.7.20

職務

ACP(Agent Client Protocol)はエディタ/IDE と agent が通信する標準プロトコル。acp_adapter/ が Hermes を ACP server として露出し、ACP 対応クライアント(Zed、VS Code 拡張など)が直接 Hermes を駆動できる:セッション管理、リソース読み書き(ファイル/画像)、編集承認、由来(provenance)の追跡、権限でツールを隔離。これにより Hermes はメッセージプラットフォームにとどまらず、開発ワークフローにも組み込める。

主要ファイル

データフロー

  1. ACP クライアント(エディタ)が acp_registry/agent.json で Hermes ACP server を発見し起動(acp_adapter/__main__.py)。
  2. クライアントがセッションを開始 → SessionManager:175SessionState を生成、cwd を整列(acp_adapter/session.py:29)、toolsets を展開(acp_adapter/session.py:129)。
  3. クライアントがメッセージ/リソースを送る → リソース変換:201 が ACP resource(ファイル/画像、acp_adapter/server.py:96 のサイズ制限付き)を OpenAI content parts に変換し、run_conversation:588 に渡す。
  4. agent がファイルを変更したいとき、ツール呼び出しは build_edit_proposal:178EditProposal になり、承認リクエスタ(acp_adapter/edit_approval.py:51) でユーザーに確認を求める。
  5. ツール実行は acp_adapter/permissions.py の権限管理に従う。各操作は acp_adapter/provenance.py:22 で provenance を記録する。
  6. ストリーミング出力とイベント(acp_adapter/events.py) をクライアントに返す。

まとめ

ACP は Hermes をエディタワークフローに組み込む:セッション管理、リソース読み書き、編集承認、権限隔離、由来追跡。コアは server.py(プロトコル適合)+ session.py(セッション)+ edit_approval.py(人による編集承認)。ゲートウェイ層と補完的——ゲートウェイはメッセージプラットフォーム、ACP は IDE を接続する。

非公式コミュニティ学習サイト。MIT ライセンスの NousResearch/hermes-agent ソースに基づく。