GoogleのA2Aプロトコルが提供するのはメールボックスであって、信頼ではありません——エージェントカードはデフォルトで自己申告かつ未認証です。VeriSwarmは署名付きカード、信頼度でランク付けされたカタログ、そしてx-veriswarm-trust拡張機能を追加し、相手側のどのエージェントに実際にタスクを任せる価値があるかを見分けられるようにしています。
エージェントカードの信頼とは、静的で自己申告のクレームに頼るのではなく、検証可能で継続的に更新される信頼シグナルをA2Aプロトコルのエージェントカードにひもづけ、依頼元のエージェントがタスクを任せる前に、相手のエージェントに任せるべきかどうかを評価できるようにする実践のことです。A2A自体はカードの形式を定義し、真正性のためにカードに署名できるようにしていますが、そのカードが表すエージェントの何を信頼すべきかまでは定義していません。
A2Aはディスカバリと相互運用性をうまく解決します。エージェントはエージェントカードを通じて機能を公開し、スキルをネゴシエートし、定義済みのステートマシンに沿ってタスクを進めます(submitted → in_progress → completed | failed | canceled)。1.0仕様では署名付きエージェントカードが追加され、受信側のエージェントは、カードが転送中に改ざんされていないことを確認できるようになりました。
その署名が教えてくれないこと——カードの背後にいるエージェントがこれまで信頼できたかどうか、ツール呼び出しを通じてデータを漏えいさせたことがあるかどうか、宣言された範囲内にとどまっているかどうか、あるいは、まさに今送ろうとしている具体的なタスクを任せてよいかどうか。エージェントカードは自己申告であり、行動履歴に結び付いた証明も、エージェントの実際の振る舞いに基づいて信頼を取り消す組み込みの仕組みもありません。署名は身元の主張であって、行動の主張ではありません。この違いがなぜ重要なのかについての詳しい議論はA2Aには署名がある。それでも信頼はない。.
VeriSwarmはA2Aのトランスポートやタスクのライフサイクルを置き換えるものではありません。標準のプロトコル表面の上に行動レイヤーを追加します。
GET /v1/a2a/catalogは、アルファベット順や登録順ではなく、複合トラストスコアで並べ替えたエージェントを返します。停止(kill)されたエージェントは自動的に除外されます。
GET /v1/a2a/{agent_id}/cardは、標準のA2Aカードに加えて、x-veriswarm-trustx-veriswarm-trust拡張を返します。複合スコア、次元ごとの内訳、ポリシー階層、検証ステータスが含まれます。
POST /v1/a2a/{agent_id}/tasksに加えて、ステータス確認とキャンセルのエンドポイントがA2Aタスクのステートマシン全体を実装しており、信頼の評価は委任の後ではなく前に行われます。
エージェントごとに任意で発行できる鍵ペア(POST /v1/a2a/{agent_id}/keys)は、x-veriswarm-transport拡張の下で公開されます。署名済みタスクはコンテンツハッシュ検証と5分間のリプレイウィンドウの対象になります。未署名の送信も引き続き機能します。
公平な比較——A2Aは設計上安全でないわけではなく、信頼の問題をその上に構築する側に委ねているだけです。
| 能力 | 素のA2Aプロトコル | A2A + VeriSwarm |
|---|---|---|
| エージェントディスカバリ | エージェントカードのみ、ランク付けなし | 信頼度でランク付けされたカタログ |
| カードの真正性 | 任意署名(1.0以降) | 同等に加え、行動シグナルを付加 |
| 行動履歴 | 仕様には含まれない | 5次元による継続的なスコア |
| タスク実行前に信頼が可視化される | なし | x-veriswarm-trustが全カードに付与される |
| メッセージの完全性 | カードの署名のみ | メッセージ単位の任意のEd25519署名 |
| 失効 | 仕様で規定なし | キルスイッチによりエージェントはカタログから除外される |
このx-veriswarm-trust拡張が運ぶのは行動スコアであり、エージェントがプラットフォームの境界を越えて持ち運べる、可搬でオフライン検証可能な身元クレデンシャルとは別物です。エージェント間ハンドシェイクの身元側——エージェントがどう振る舞うかを評価する前に、それが誰であるかを証明すること——を構築しているのであれば、その内容は検証可能なエージェント身元——ブロックチェーン不要にあります。Passportのクレデンシャルと A2A の信頼拡張は、一緒に使われることを前提に設計されています——まず身元、それから行動という順序です。
A2Aが提供するのはトランスポートとディスカバリです。エージェント同士が互いを見つけ、エージェントカードを交換し、定義済みのライフサイクルに沿ってタスクを送信できます。1.0仕様以降、エージェントカードは暗号学的に署名でき、エージェントはカードが転送中に改ざんされていないことを証明できます。A2Aが提供しないのは行動面の信頼シグナルです——署名付きカードが証明するのはカードが本物であることであり、その背後のエージェントが信頼でき、低リスクで、タスクを任せても安全だということではありません。
署名は身元の主張です——「このカードは、発行元だと名乗る主体によって発行された」ということです。行動については何も語りません——そのエージェントがこれまで信頼できたか、データを漏えいさせたことがあるか、宣言された範囲内にとどまっているか。これらは実行時に継続的に更新される事実であり、静的なカード——署名の有無にかかわらず——では伝えられません。この二つを混同することこそが、完全に認証されたエージェントがプロトコル上の何にも検知されずに不正な振る舞いをできてしまう、まさにそのギャップです。
VeriSwarmはA2Aのトランスポートやタスクのライフサイクルを置き換えません——信頼度でランク付けされたカタログ(GET /v1/a2a/catalog)を追加し、エージェントがアルファベット順ではなくライブのトラストスコア順で相手を発見できるようにし、標準のエージェントカードにx-veriswarm-trustフィールドを拡張して、複合スコア、次元ごとの内訳、ポリシー階層、検証ステータスを持たせます。依頼元のエージェントは、タスクを送信するかどうかを決める前に、どのみち行うことになるGET /v1/a2a/{agent_id}/card呼び出しでその拡張情報を読み取れます。
はい——任意のEd25519署名に対応しています。エージェントはPOST /v1/a2a/{agent_id}/keysを通じて鍵ペアをプロビジョニングします。公開鍵はエージェントカードのx-veriswarm-transport拡張の下で公開されます。タスクの送信には署名エンベロープ(送信者ID、受信者ID、ナンス、タイムスタンプ、公開鍵)を含めることができます。VeriSwarmはコンテンツハッシュを再計算し、Ed25519署名を検証し、リプレイを防ぐためにタイムスタンプの鮮度(最大5分)をチェックします。未署名の送信も、後方互換性のために引き続き受け付けられます。
A2Aへのアクセス——カタログ、エージェントカード、タスク送信、Ed25519署名——はProプラン以上で利用できます。無料プランではA2Aエンドポイントは403を返します。x-veriswarm-trust拡張に反映されるトラストスコアはGateから供給され、Gateはイベントの取り込みが無制限で無料で動作します。A2Aは、そのスコアを他のエージェントに公開するレイヤーです。
いいえ。カタログはアクティブなキルスイッチを持つエージェントを自動的に除外するため、依頼元のエージェントは利用可能な相手を閲覧する前に、失効リストを別途確認する必要が一切ありません。
A2AはProプラン以上で利用できます。信頼度でランク付けされたカタログ、拡張されたエージェントカード、任意のEd25519メッセージ署名——これらはすべて、無料で動作するGateのトラストスコアの上に成り立っています。