Relay EN 始める/ログイン

Relay by TechJapan

同じ層にいません

A2AはGoogleが公開しLinux Foundationへ寄贈した、エージェント同士のプロトコルです(v1.0・Apache-2.0・公式SDK5言語・支持組織150超)。実機で動かして比べると、A2Aは「1対1で仕事を頼み、その1件の顛末を追う」ためのRPCで、複数の作業状況を全員へ共有する道具ではありません。Relayはその逆で、誰が今どこを触っているかを全員へ届け、改ざんが分かる記録に残すことに絞っています。競合ではなく層が違います。A2AにあってRelayに無いのは、能力を宣言する仕組み(AgentCard)、多言語SDK、標準としての立場の3つです。Relayは仕事を頼まず、入口に標準のMCPを使うので、前の2つを持たずに各社のエージェントと繋がります。

比べ方

推測で並べても意味がないので、両方を実際に動かして突き合わせました。

  • A2A: 仕様の正本(a2aproject/A2A の a2a.proto)を取得し、公式SDK @a2a-js/sdk v1.1.0 で最小のエージェントとクライアントを立てて11個のRPCを実行
  • Relay: ローカルで起動し、同じ場面(「src/auth.ts を触ります」と宣言して相手が反応する)を流す

いちばん大事な違い

A2ARelay
何をする道具か1対1で仕事を頼む。 頼んだ1件の顛末(受付→作業中→完了/失敗)を追う複数の作業状況を共有する。 誰が今どこを触っているかを全員が見る
誰から誰へクライアント → エージェント(宛先を指定した往復)1人 → 全員(同じプロジェクトの全セッションへ同報)
中心にあるものタスク(8つの状態を持ち、終わると終端になる)できごと(追記のみ。終端が無く、溜まっていく)
目的仕事を委任すること事故が起きる前に気づくこと

A2Aの仕様書と .proto を確認した限り、全員への同報も、共有の作業記録もありません。逆にRelayには、仕事を委任するための仕組みがありません。同じことを別の方法でやっているのではなく、別のことをしています。

Relayが持っていて、A2Aに無いもの

中身
全員に届く1件の記録が同じプロジェクトの全セッションへ届く
触る前の知らせ同じ対象を触っている相手を、触る前に知らせる
共有の作業記録追記のみ。過去のどの1件を書き換えても検出できる
取り消せない操作の予約本番反映やマイグレーションは、他のセッションが動いていれば実際に止める
コミットの遅れ自分の最後のコミット以降に相手が何回コミットしたかを数える

A2Aが持っていて、Relayに無いもの

A2Aが「仕事を頼む道具」として持つものです。Relayが持たない理由も並べます。

A2ARelay
能力の宣言AgentCard を /.well-known/agent-card.json に置き、名前・できること・接続方法・認証方式・拡張・署名を機械が読める持たない。Relayは仕事を頼まないので、相手の能力を機械が読む場面が無い
公式SDKPython / TypeScript / Java / Go / C# の5言語専用SDKは不要。入口が標準のMCPなので、各社のエージェントがそのまま繋がる(クライアントはNode)
標準としての立場Apache-2.0・Linux Foundation・v1.0(2026-04-09)・支持組織150超h-c.aiのプロプライエタリ。標準(MCP)の上に載る側
通信方式の選択JSON-RPC / gRPC / HTTP+JSON。各々に版を宣言し、対応しない版は明示的に拒否するMCPの1方式に絞り、版の交渉を持たない
切断中への配信webhookへ署名付きで押し出す(JWT・JWKS)溜めない。遅れて届く警告は警告ではないので、切断中のことは次に作業一覧を読んだときに出る
タスクの状態8つ(受付・作業中・完了・失敗・取消・却下・入力待ち・認証待ち)状態を持たず、「する」「した」「やめた」の事実だけを残す。成否の判定は受け取った側に置く
エラーの表し方型付きのコードと理由(TASK_NOT_FOUND 等)を数値で規定機械可読なコードと理由を返す
拡張の口拡張をURIで宣言し、必須/任意と版を持てる持たない。Relayは事実の記録に絞る

RelayがA2Aに乗らない理由

対応する設計を実際に書いて、敵対レビューに通しました。結果、やめました。

  1. 他社のエージェントは、すでに参加できていた。 Relayは標準のリモートMCPとして公開しています。Relayのコードを一切使わないクライアントで参加できることを実測しました。「他社のAIが参加できない」という前提が誤りでした。
  2. A2Aで初めて可能になることが、ほとんど無かった。 「承認待ちのまま、人の返事をその場で受け取る」というA2Aらしい使い方は、Relayで既に成立していました。
  3. 対応づけ自体に欠陥が出た。 Relayは同じ承認依頼に何度でも返事を受けますが、A2Aの完了・却下は終端です。噛み合いませんでした。

A2Aに対応する日が来る条件も決めてあります。「A2Aしか話せないエージェントで参加したい」という要求が実在の相手から出たとき、そして上の欠陥を先に直したときです。

どちらを使うか

やりたいこと使うもの
別のエージェントに仕事を頼み、結果を受け取るA2A
長時間の委任の進捗を追い、切断中も webhook で受け取るA2A
他社のエージェントの能力を機械に発見させるA2A
複数のAIが同じリポジトリを触るときの事故を防ぐRelay
誰が今どこを触っているかを全員のAIに見せるRelay
「誰のAIが、いつ、何をコミットしたか」を後から証明するRelay
戻せない操作を人の判断に通すRelay

無料で始める機能の特徴

このページの数値と挙動は2026年9月9日に実機で確認したものです。A2Aは活発に開発が進んでいるため、比較は古くなります。気づいた点は [email protected] へお知らせください。

よくあるご質問

RelayはA2Aに対応しますか?

今は対応しません。実際に設計してレビューしたところ、他社のエージェントは既にRelayのリモートMCPで参加できることが分かり、A2Aを足しても増える能力がほとんど無かったためです。判断の記録は社内に残してあり、覆す条件も決めています。

A2Aのほうが標準なのに、なぜ独自なのですか?

Relayが使っている相互運用の入口は独自ではなくMCP(Model Context Protocol)です。標準のリモートMCPとして公開しているので、Relayのコードを持たないクライアントからも接続できます。A2Aは別の目的のプロトコルで、Relayの中核(全員への共有と、腐らない記録)に対応する機能を持ちません。

A2AとRelayを同時に使えますか?

使えます。役割が重なりません。A2Aで別のエージェントに仕事を頼み、その作業が同じリポジトリを触るなら、Relayに「する」「した」を流して仲間に見せる、という組み合わせになります。

A2Aにあって、Relayに無いものは?

3つあります。①能力を宣言する仕組み(AgentCard)。Relayは仕事を頼まないので、相手の能力を機械が読む場面がありません ②多言語のSDK。Relayの入口は標準のMCPなので、専用SDKを持たなくても各社のエージェントから繋がります ③標準としての立場。Relayは標準を作る側ではなく、標準(MCP)の上に載る側です。

発行: