ANTIGRAVITY LABEN
記事一覧/Agents & Manager
Agents & Manager/2026-04-01上級

Antigravity × A2Aプロトコル実装ガイド — エージェント間通信でスケーラブルなAIシステムを構築する

GoogleのA2A(Agent-to-Agent)プロトコルをAntigravityで実装する実践ガイドです。エージェントカード設計からタスク委譲、ストリーミング通信、本番環境デプロイまで実践的なノウハウを実運用の視点からまとめます。

A2A4エージェント71マルチエージェント41AgentKit17プロトコル2分散AI

プレミアム記事

取り組みの背景 — A2Aプロトコルが変えるエージェントアーキテクチャ

最初のエージェントを立てた日、私は自分のクライアントが返し続ける 404 の理由が分からず、curl を三十分ほど叩いておりました。原因は認証でも CORS でもなく、参照した記事に書かれていたカードのパスが、いまの仕様と違っていたというだけのことでした。仕様の変化に追いつけていなかったのは、コードではなく私のほうだったのです。

A2A(Agent-to-Agent)プロトコルは、AIエージェントが互いに通信し、タスクを委譲し合うための標準仕様です。2025年4月に公開され、いまは Linux Foundation 傘下の Agentic AI Foundation が管理しています。仕様は v1.0 に達し、操作名やエージェントカードの構造にも手が入りました。動くコードを載せた文章が古びやすい領域ですので、判断のよりどころにした一次情報へのリンクは、そのつど本文の中に置いています。

エージェント間の通信を自前で設計していた頃と比べて何が変わったかというと、異なるフレームワーク・異なる言語で実装されたエージェント同士が、ひとつのHTTP/SSEベースのインターフェースで会話できるようになりました。ここでは Antigravity で A2A 準拠のエージェントを一から組み立てながら、私がつまずいた箇所を通り道の目印として書き残します。

この記事で扱う範囲:

  • A2Aプロトコルのコアコンセプト(エージェントカード・タスク・アーティファクト)
  • Antigravity + AgentKit 2.0 での環境構築
  • エージェントカードの設計と公開
  • タスク委譲パターン(同期・非同期・ストリーミング)
  • 認証とセキュリティの実装
  • エラーハンドリングとリトライ戦略
  • Cloudflare Workers へのデプロイ
  • 実際のユースケースで学ぶ実装例
  • v1.0 での操作名・構造の変更と、既存実装の畳み方

A2Aプロトコルの基礎概念

A2Aを理解するうえで、まず4つのコアコンセプトを把握しておきましょう。

エージェントカード(Agent Card)

エージェントカードは、エージェントの「名刺」にあたるJSONマニフェストです。/.well-known/agent-card.json というパスで公開され、エージェントが何ができるか(スキル)、どう通信するか(エンドポイント・認証方式)、どんな入出力フォーマットに対応しているかを宣言します。

このパスについては、一度つまずいたので先にお伝えします。公開当初のサンプルや古い記事では /.well-known/agent.json と書かれていることがありますが、A2A の Agent Discovery ドキュメントが定める標準パスは /.well-known/agent-card.json です(RFC 8615 の well-known URI の考え方に沿ったもの)。私は移行期に書かれた記事のコードをそのまま貼って、クライアント側が 404 を返し続ける理由がしばらく分かりませんでした。既存の相手と接続する必要があるあいだは、両方のパスで同じカードを返しておき、相手の移行が済んでから旧パスを畳むのが安全です。

{
  "name": "DataAnalysisAgent",
  "description": "CSVデータを解析し、洞察とグラフを生成するエージェント",
  "url": "https://data-agent.example.com",
  "version": "1.0.0",
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "stateTransitionHistory": true
  },
  "authentication": {
    "schemes": ["Bearer"]
  },
  "skills": [
    {
      "id": "analyze-csv",
      "name": "CSV分析",
      "description": "CSVファイルを受け取り、統計分析とビジュアライゼーションを提供する",
      "tags": ["data", "csv", "analysis"],
      "inputModes": ["text", "file"],
      "outputModes": ["text", "file", "data"]
    }
  ]
}

タスク(Task)

タスクはエージェント間でやり取りされる仕事の単位です。一意のIDを持ち、submitted → working → completed(または failed) というライフサイクルをたどります。タスクにはメッセージ(会話履歴)とアーティファクト(成果物)が含まれます。

アーティファクト(Artifact)

アーティファクトはタスクの成果物です。テキスト、ファイル、構造化データなど複数のパーツを持つことができ、ストリーミングで段階的に配信することも可能です。

プッシュ通知(Push Notifications)

長時間かかるタスクの場合、エージェントは完了時にクライアントへWebhookでプッシュ通知を送れます。クライアントが常時接続を維持しなくて済むため、バッチ処理に適しています。


ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
エージェントカードの設計から認証・レジストリ・本番デプロイまで、A2A実装の全工程を一貫した設計思想でつなげられます
ETag による条件付き取得とプロセス内キャッシュの効き方の違いを実測値で示し、どちらを先に入れるべきかを判断できます
v1.0 の操作名・エージェントカード構造の変更点と、既存実装を壊さずに畳んでいく移行の順番がわかります
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

関連記事

Agents & Manager2026-04-24
Antigravity A2A プロトコル実装ガイド — エージェント同士が対話する現実的なパターン
Antigravity の A2A(Agent-to-Agent)プロトコルを実装ベースで解説します。2 つのエージェントの間でタスクを委譲・結果を受け取る最小構成から、複数エージェントの長期対話パターンまで、実際に動くサンプル付きで紹介します。
Agents & Manager2026-07-12
A2A のタスクが working のまま静かに滞留していたとき — 状態遷移を計測して詰まりを名指しする運用メモ
Antigravity の A2A 連携は、エラーで落ちるより「タスクが working のまま進まない」形で静かに詰まります。状態遷移を一本の時系列として記録し、滞留したタスクをどのエージェントのどの辺で止まったかまで名指しする監視の実装を、運用の実感とあわせて整理します。
Agents & Manager2026-05-05
AgentKit 2.0 でサブスク型AIエージェントサービスを作る — Stripe課金から月次収益設計まで
AgentKit 2.0を使ったサブスクリプション型AIエージェントサービスの構築方法を完全解説。Stripe課金統合・マルチエージェント設計・プライシング戦略・解約防止まで、月次収益を安定させる実装ガイドです。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます