{
  "format": "agent-article-v0",
  "article_id": "EA-158",
  "canonical_url": "/tools/ea-158-a2a",
  "page_type": "reference",
  "claim_ids": [],
  "evidence_ids": [
    "EA-158-CURRENT-APPROVAL",
    "EA-158-CURRENT-BODY-READBACK"
  ],
  "unknown_ids": [
    "EA-158-UNKNOWN-01"
  ],
  "operational_object_ids": [],
  "provider": [],
  "models": [],
  "plans": [],
  "surfaces": [],
  "regions": [],
  "current_status": "CURRENT",
  "observation_status": "SPEC_ONLY",
  "freshness": "CURRENT",
  "last_verified": "2026-10-11",
  "supersedes": [],
  "superseded_by": [],
  "provenance": [
    "GXART-EA158-20261011-R1",
    "BODY-SHA256:49580675d3a03bc68c8bb1c166f1ec05e3a8d612633baf9771078180c2fd701a"
  ],
  "article_sources": [
    {
      "id": "EA-158-CURRENT-APPROVAL",
      "evidence_class": "RESEARCH",
      "title": "現行本文の監査・revision対応",
      "supports": [
        "現行台帳のAUDIT_PASSと候補・revision・本文ハッシュの対応を確認しています。"
      ],
      "limit": "監査状態と来歴の記録です。外部根拠の最新性や本文の全主張を追加保証しません。",
      "origin_class": "AUDITED_CANONICAL_RESEARCH_PACKET",
      "source_or_experiment_ids": [
        "GXART-EA158-20261011-R1"
      ],
      "supporting_locators": [
        "1KqhJtiSb2S84rWmeYVwKcT_76dBwZ_B0ZZuAWQqH0rQ",
        "EA_REVISION_LEDGER!A381:U381",
        "EA-158-GX-REFRESH-20261011-R1"
      ],
      "provenance_status": "CURRENT_CANONICAL_APPROVAL_READBACK"
    },
    {
      "id": "EA-158-CURRENT-BODY-READBACK",
      "evidence_class": "IMPL",
      "title": "現行本文の収録照合",
      "supports": [
        "公開生成入力の本文SHA-256が、監査済み候補に結び付いたハッシュと一致しています。"
      ],
      "limit": "本文の同一性の検査です。外部システムの挙動や全主張の真偽を実証したものではありません。",
      "checked_at": "2026-10-12",
      "origin_class": "IMPLEMENTATION_READBACK",
      "source_or_experiment_ids": [
        "BODY-SHA256:49580675d3a03bc68c8bb1c166f1ec05e3a8d612633baf9771078180c2fd701a"
      ],
      "supporting_locators": [
        "content/staging/EA-158.md",
        "49580675d3a03bc68c8bb1c166f1ec05e3a8d612633baf9771078180c2fd701a",
        "EA-158-GX-REFRESH-20261011-R1"
      ],
      "provenance_status": "CURRENT_APPROVED_BODY_HASH_MATCH"
    }
  ],
  "research_sections": [
    {
      "heading": "結論・何が分かったか",
      "text": "A2A 1.0はagent-to-agent通信の共通契約を提供するが、endpointへ到達できること、Agent Cardを読めること、Taskを受理されたことだけでは相互運用成立とは判定できない。実運用では、少なくとも protocol version、protocol binding、Agent Card、認証・認可、tenant routing、Task/Artifact semantics、streaming/push、署名・鍵trust、error/cancel/retry を分離して確認する必要がある。"
    },
    {
      "heading": "確認できたclaim",
      "text": "### Claim 1 — A2A 1.0ではversionとbindingをinterface単位で扱う\n現行仕様では AgentInterface が endpoint URL、protocolBinding、protocolVersion を持つ。標準bindingは JSON-RPC、gRPC、HTTP+JSON であり、Agent Cardは利用可能なinterfaceを順序付きで宣言する。\n\n### Claim 2 — 複数bindingは意味的等価性を要求される\n複数protocolを提供するagentは、core operation、behavior、error mapping、authenticationを機能的に等価に保つことを要求される。JSON-RPCだけの疎通成功をgRPC/HTTP+JSONの成功へ一般化してはならない。\n\n### Claim 3 — Agent Cardはdiscovery contractであり能力の真実性証明ではない\nAgent Cardはidentity、capabilities、skills、supported interfaces、security requirements等を宣言する。A2A 1.0ではJWS署名とJCS canonicalizationを利用できるが、署名はCardの真正性・完全性を強化するだけで、capability truthやrequest authorization、business outcomeを証明しない。\n\n### Claim 4 — tenant routingもprotocol contractの一部である\nAgentInterfaceはtenant routing値を持ち得る。endpoint共有型では、接続成功だけでtenant isolationを判定せず、cross-tenant task/list/cancel/artifact accessをnegative testする必要がある。\n\n### Claim 5 — Task受理は完了・rollback・exactly-onceを意味しない\nA2Aはmessage、Task、Artifact、streaming/push等を定義するが、外部business APIの既実行side effect rollback、duplicate delivery完全排除、業務結果の正しさまではprotocol単体で保証しない。"
    },
    {
      "heading": "失敗経路・反証・例外",
      "text": "- Agent Card取得成功をremote agent能力の証拠にする。\n- Signed Agent Cardをrequest authorization成立と同一視する。\n- JSON-RPC成功をgRPC/HTTP+JSONへ一般化する。\n- protocolVersionを確認せずv0.3とv1.0を暗黙互換とみなす。\n- Task acceptanceを業務完了とみなす。\n- CancelTask成功を既実行side effectのrollbackとみなす。\n- push callbackを通常requestと同じtrust boundaryで扱う。"
    },
    {
      "heading": "Availability Gate",
      "text": "1. Agent Card取得元とfreshness。\n2. supportedInterfaces のURL・binding・protocolVersion。\n3. clientが実際に選んだbinding/version。\n4. authentication schemeとrequest authorization。\n5. Signed Agent Cardのtrust store、kid/jku、rotation/revocation。\n6. tenant routingとcross-tenant resource isolation。\n7. Task state、cancel/retry、duplicate、idempotency。\n8. Artifact provenance/integrity。\n9. streaming/push callbackのauthentication、replay、SSRF境界。\n10. provider/SDK/region/org policyによるavailability。"
    },
    {
      "heading": "OPEN_UNKNOWN",
      "text": "- provider横断のA2A 1.0 conformance実測。\n- JSON-RPC/gRPC/HTTP+JSON間のsemantic parity。\n- Agent Card freshness/registry mirror/緊急失効の共通運用。\n- delegated authorization/token propagation。\n- Task retry/cancel/idempotencyのSDK間差異。\n- Artifact checksum/provenance。\n- push delivery retry/dedup/replay。\n- managed gatewayのtenant isolation。\n- cross-organization incident corpus。"
    },
    {
      "heading": "実務チェックポイント",
      "text": "接続前にAgent Cardを保存し、interfaceごとのbinding/version/security requirementを固定する。各bindingへ同一fixtureを流し、success/error/authenticationの等価性を確認する。task/artifact/list/cancelをtenant・actor・scope違いでnegative testする。Card署名検証と能力実測を分離し、disconnect、duplicate push、retry、cancel/commit raceを障害試験する。"
    },
    {
      "heading": "証拠・更新情報",
      "text": "Evidence as of: 2026-10-11 JST.\n\nPrimary / author-maintained:\n- A2A Protocol Specification — latest released version 1.0.0.\n- specification/a2a.proto — AgentInterface / AgentCard / AgentCardSignature.\n- A2A specification sections for binding interoperability and Agent Card signing.\n- A2A custom protocol bindings guidance.\n- Existing EA-158 canonical research/audit packet.\n\nGX provenance:\n- GX01_RUN_20260928_1113_A3. GX RUN番号はprovenanceであり公開記事identityではない。"
    },
    {
      "heading": "SAFE_WORDING",
      "text": "A2A 1.0はagent間のdiscovery、message、Task、Artifact、streaming/pushを共通化するprotocol contractである。ただし「A2A対応」だけでは相互運用の十分条件ではない。interfaceごとのprotocol version/binding、Agent Card trust、request authorization、tenant isolation、Task/Artifact semantics、failure/retryを分離して検証する。"
    }
  ],
  "human_url": "/tools/ea-158-a2a",
  "markdown_url": "/agent/article.md?path=%2Ftools%2Fea-158-a2a",
  "json_url": "/agent/article.json?path=%2Ftools%2Fea-158-a2a"
}