本文へスキップ

AI運用の判断と根拠を引く

トップへ戻る

Agentの能力契約を検証する

用語・参照用語・参照公式仕様のみ公式仕様のみ現行現行として扱う

記事状態: 公開 · 最終確認: 2026-10-18

要点

Agentが能力を公開していることと、その能力を利用者の期待どおりに実行できることは別です。能力契約の検証では、宣言、入出力データ形式の定義、protocolと版、認証・認可、呼出し状態、業務上の効果を分けて確認します。同じ名前のskillやツール、同じJSON構造だけから、取消、重複実行、失敗、完了の意味まで同じと推定しません。

現在の判断

A2A v1.0.1のAgent Cardは、interfaceとprotocol版、capabilities、skill、入出力media等を記述します。skillは能力を説明する概念であり、宣言文が業務の正確な実行を証明するわけではありません[S1]。署名があるcardでも、署名対象の完全性と、宣言した仕事が安全・正確にできることは別の検証です。

どこまで当てはまるか

Agentの能力契約を検証する

詳しく理解する

CONTRACT LAYERS

検証層契約へ記録するものその層だけでは証明できないこと
宣言card/ツール定義、説明、endpoint、版、hash実装が説明どおり動くこと
構造入出力データ形式の定義、media、必須field、制約業務上意味のある正しい出力
接続protocol、transport、認証、必要利用可能な機能対象操作の現在権限
呼出しrequest/call/task ID、状態、error、期限効果の適用と重複の不存在
業務効果対象版、意図した変更、結果結果の照合全業務・全環境での同等性
運用再試行、取消、更新、監査、失効将来の版でも同じであること

この層分けは提案する検証モデルです。ツールのread-onlyなどの注記があっても、適用先の権限と実際の操作を確認します。自然言語の説明と機械的なデータ形式の定義が矛盾する場合、実行時に都合のよい方だけを選びません。

CONSUMER EXPECTATIONS

利用側は、自分が依存する条件を具体化します。例えば「顧客IDを指定して現在の契約状態を読み、変更しない」という能力なら、対象組織の利用環境、取得時点、存在しないID、権限不足、部分応答、データ形式の定義上のnull、古い結果の再利用、外部書込みの不存在を別の条件にします。これは例示する契約であり、特定の実APIで確認した挙動ではありません。

提供元側では、固定した状態と入力を用いて実装へrequestを送り、利用側が必要とする応答・error・副作用を確認します。mockが返す期待値を同じmockへ照合するだけでは、提供元の実装検証になりません。外部serviceへの接続をmockにした場合も、SDKの送信内容を確認したのか、実serverの認可や効果まで確認したのかを区別します。

NEGATIVE CONTRACTS

正常系に加え、unsupported 利用可能な機能、protocol版の不一致、認証不成立、権限のないresource、無効な引数、依存serviceの停止、処理待ち時間の上限、部分応答、重複requestを確認します。protocolとして受理されたことと、ツールの業務処理が成功したことを同じ成功へ潰しません。

取消では、要求を送る前、受理後、効果の適用後、結果配信前を区別します。処理が完了してから取消が届く場合には、その効果の結果を調べる必要があります。request取消と、長時間task・提供元側jobの取消が同じ手順や同じ保証を持つとは仮定しません。外部操作の結果が不明なら、即座に再実行する前に対象の状態と操作IDを照合します。

streamingでは、途中の引数や部分contentを最終結果として適用しません。完了・失敗・取消・未完了を判別し、関連するIDを保持します。接続が切れてもjobが残る構成では、そのjobを追跡する契約が必要です。clientの処理待ち時間の上限を外部job停止の証明にしません。

NONDETERMINISTIC OUTPUTS

生成を含む能力は、応答文の完全一致だけでは検証しにくい場合があります。構造、必須情報、禁止された効果、根拠の対応、業務上の許容条件を分けます。意味評価が必要な部分は、入力集合、評価基準、評価者、試行条件とばらつきを残します。評価用LLMがPASSと言ったことを、権限や外部結果の代わりにしません。

回数や合格率の閾値は、業務影響と母集団に応じて決めます。本項では普遍的な数値を指定しません。少数の例で良い結果が出ても、全言語、全media、全モデルへ同じ能力を宣言しません。画像、音声、文書などでは、データ形式の定義が通ることに加え、内容の欠落や順序・引用元の保持も確認します。

確認・評価方法

契約と結果には、利用側/提供元、agent/モデル、protocol、SDK/adapter、card/データ形式の定義、ツール実装、policy、評価集合の版を結び付けます。宣言が変わらなくても、実装、モデル、権限、backendが変われば依存する検証を再実施します。cardのhash一致だけで実効状態が同じと判断しません。

失敗した契約がどの利用側へ影響するかを追跡し、影響しない検証まで毎回全面的にやり直さず、依存関係に基づいて再検証します。逆に宣言・データ形式の定義だけの変更と決めつけて意味的変更を見逃さないよう、変更理由と実装差分を記録します。配布や切替前には、実際に組み合わされる版の検証結果を照合します。

実装・運用

契約マニフェストには利用可能な機能 ID、宣言のhash、対象interface、protocol版、データ形式の定義、認可条件、外部効果、正常・異常系、状態遷移、期待結果の照合、検証環境と結果資料内の該当箇所を持たせます。利用側側の期待と提供元側の実装検査を区別し、生成品質の評価と機械的な不変条件も別に管理します。

本実行ではA2A/MCP server、Pact 提供元、実LLMを接続した契約試験を実行していません。ここに示した試験項目は実装・監査へ渡す設計であり、特定agentの適合証明ではありません。

運用上の停止・確認条件

実行対象の版、認可、error/取消の意味、部分結果、外部効果の結果の照合が不明な場合は、その能力を適合済み・意味的に同等と宣言しません。

SOURCES AND PROVENANCE

EA-500-R1-20261013と継続Doc 1XpjZC_R1eHlIckvUaEaJ_mcj6YW6j0ihZ0b91z5vewUのEA-500節を継承。2026-10-18に一次資料を再確認。A2A v1.0.1、MCPの指定版、Pactの実装検証を別の証拠として扱いました。

確認できていること

  • A2A v1.0.1のAgent Cardは、interfaceとprotocol版、capabilities、skill、入出力media等を記述します。skillは能力を説明する概念であり、宣言文が業務の正確な実行を証明するわけではありません[S1]。署名があるcardでも、署名対象の完全性と、宣言した仕事が安全・正確にできることは別の検証です。

    MCP 2025-06-18のTools仕様には、ツールのデータ形式の定義、結果content、ツール実行errorとprotocol errorの区別が示されています[S2]。また2026-07-28版のcancellation文書は、進行中requestの取消が、既に処理が完了した時点へ到着する場合を扱っています[S3]。ここでは異なる版の文書を全実装の共通仕様へ混ぜず、対象が採用する版を契約に固定します。

    Pactの公式資料は、利用側側の期待を実装に対する提供元 verificationと組み合わせ、その結果を共有する契約検証を説明しています[S4]。データ形式の定義から作ったファイルだけで双方の実装互換性が証明されたことにはなりません。この考え方をagent連携にも適用しますが、Pactを使うだけで生成結果の品質や外部効果の正しさが保証されるとは主張しません。

よくある失敗・反証

  • 主な失敗は、skill名一致を意味一致とすること、宣言から生成したデータ形式の定義検査だけで実装をPASSすること、errorを通常contentへ変換すること、処理待ち時間の上限後の重複効果、途中streamの適用、取消後の結果未照合、版を特定しない検証結果の流用です。低権限の検証を管理者権限の本番経路へ一般化することも避けます。

  • 利用可能な機能宣言とデータ形式の定義は発見・事前検査に有用です。ただし、それぞれの仕様に準拠した実装でも、業務目的に対する同等性は別に評価する必要があります。条件・契約 testingも、契約に含めていない条件や観測していない外部serviceの効果を保証しません。宣言・実装・意味・運用のどこまで確認したかを明記します。

  • 実行対象の版、認可、error/取消の意味、部分結果、外部効果の結果の照合が不明な場合は、その能力を適合済み・意味的に同等と宣言しません。

まだ確認できていないこと

  • EA-500-UNKNOWN-01

    対象agentと実装版、採用protocolの公開・提供状態・拡張、SDKによる変換、利用側の実依存、権限と副作用、非決定性の許容値、長時間・streaming・multimodalの実挙動、独立した運用事故は未確認です。複数protocolや提供元の完全互換性を主張しません。

根拠資料

更新履歴

  1. EA-500-R1-20261013: 正式な 監査/publication 対応付け

出典ID・検証情報・機械可読データ

根拠の種類と情報の鮮度は、ラベルとアイコンで確認できます。

記事ID
EA-500
最終確認日
2026-10-18
提供元・モデル・プラン・利用環境
—
対象地域
—
元資料の全文と収録照合記録
PUBLIC_CLAIM

Agentが能力を公開していることと、その能力を利用者の期待どおりに実行できることは別です。能力契約の検証では、宣言、入出力schema、protocolと版、認証・認可、呼出し状態、業務上の効果を分けて確認します。同じ名前のskillやtool、同じJSON構造だけから、取消、重複実行、失敗、完了の意味まで同じと推定しません。

ESTABLISHED

A2A v1.0.1のAgent Cardは、interfaceとprotocol版、capabilities、skill、入出力media等を記述します。skillは能力を説明する概念であり、宣言文が業務の正確な実行を証明するわけではありません[S1]。署名があるcardでも、署名対象の完全性と、宣言した仕事が安全・正確にできることは別の検証です。

MCP 2025-06-18のTools仕様には、toolのschema、結果content、tool実行errorとprotocol errorの区別が示されています[S2]。また2026-07-28版のcancellation文書は、進行中requestの取消が、既に処理が完了した時点へ到着する場合を扱っています[S3]。ここでは異なる版の文書を全実装の共通仕様へ混ぜず、対象が採用する版を契約に固定します。

Pactの公式資料は、consumer側の期待を実装に対するprovider verificationと組み合わせ、その結果を共有する契約検証を説明しています[S4]。schemaから作ったファイルだけで双方の実装互換性が証明されたことにはなりません。この考え方をagent連携にも適用しますが、Pactを使うだけで生成結果の品質や外部効果の正しさが保証されるとは主張しません。

CONTRACT_LAYERS
検証層契約へ記録するものその層だけでは証明できないこと
宣言card/tool定義、説明、endpoint、版、hash実装が説明どおり動くこと
構造入出力schema、media、必須field、制約業務上意味のある正しい出力
接続protocol、transport、認証、必要capability対象操作の現在権限
呼出しrequest/call/task ID、状態、error、期限効果の適用と重複の不存在
業務効果対象版、意図した変更、結果readback全業務・全環境での同等性
運用再試行、取消、更新、監査、失効将来の版でも同じであること

この層分けは提案する検証モデルです。toolのread-onlyなどの注記があっても、適用先の権限と実際の操作を確認します。自然言語の説明と機械的なschemaが矛盾する場合、実行時に都合のよい方だけを選びません。

CONSUMER_EXPECTATIONS

consumerは、自分が依存する条件を具体化します。例えば「顧客IDを指定して現在の契約状態を読み、変更しない」という能力なら、対象tenant、取得時点、存在しないID、権限不足、部分応答、schema上のnull、古いcache、外部書込みの不存在を別の条件にします。これは例示する契約であり、特定の実APIで確認した挙動ではありません。

provider側では、固定した状態と入力を用いて実装へrequestを送り、consumerが必要とする応答・error・副作用を確認します。mockが返す期待値を同じmockへ照合するだけでは、providerの実装検証になりません。外部serviceへの接続をmockにした場合も、SDKの送信内容を確認したのか、実serverの認可や効果まで確認したのかを区別します。

NEGATIVE_CONTRACTS

正常系に加え、unsupported capability、protocol版の不一致、認証不成立、権限のないresource、無効な引数、依存serviceの停止、timeout、部分応答、重複requestを確認します。protocolとして受理されたことと、toolの業務処理が成功したことを同じsuccessへ潰しません。

取消では、要求を送る前、受理後、効果の適用後、結果配信前を区別します。処理が完了してから取消が届く場合には、その効果の結果を調べる必要があります。request取消と、長時間task・provider側jobの取消が同じ手順や同じ保証を持つとは仮定しません。外部操作の結果が不明なら、即座に再実行する前に対象の状態と操作IDを照合します。

streamingでは、途中の引数や部分contentを最終結果として適用しません。完了・失敗・取消・未完了を判別し、関連するIDを保持します。接続が切れてもjobが残る構成では、そのjobを追跡する契約が必要です。clientのtimeoutを外部job停止の証明にしません。

NONDETERMINISTIC_OUTPUTS

生成を含む能力は、応答文の完全一致だけでは検証しにくい場合があります。構造、必須情報、禁止された効果、根拠の対応、業務上の許容条件を分けます。意味評価が必要な部分は、入力集合、評価基準、評価者、試行条件とばらつきを残します。評価用LLMがPASSと言ったことを、権限や外部結果の代わりにしません。

回数や合格率の閾値は、業務影響と母集団に応じて決めます。本項では普遍的な数値を指定しません。少数の例で良い結果が出ても、全言語、全media、全modelへ同じ能力を宣言しません。画像、音声、文書などでは、schemaが通ることに加え、内容の欠落や順序・引用元の保持も確認します。

VERSION_BINDING_AND_INVALIDATION

契約と結果には、consumer/provider、agent/model、protocol、SDK/adapter、card/schema、tool実装、policy、評価集合の版を結び付けます。宣言が変わらなくても、実装、model、権限、backendが変われば依存する検証を再実施します。cardのhash一致だけで実効状態が同じと判断しません。

失敗した契約がどのconsumerへ影響するかを追跡し、影響しない検証まで毎回全面的にやり直さず、依存関係に基づいて再検証します。逆に宣言・schemaだけの変更と決めつけて意味的変更を見逃さないよう、変更理由と実装差分を記録します。配布や切替前には、実際に組み合わされる版の検証結果を照合します。

IMPLEMENTATION_IMPLICATION

契約マニフェストにはcapability ID、宣言のhash、対象interface、protocol版、schema、認可条件、外部効果、正常・異常系、状態遷移、期待readback、検証環境と結果locatorを持たせます。consumer側の期待とprovider側の実装検査を区別し、生成品質の評価と機械的な不変条件も別に管理します。

本RUNではA2A/MCP server、Pact provider、実LLMを接続した契約試験を実行していません。ここに示した試験項目は実装・監査へ渡す設計であり、特定agentの適合証明ではありません。

FAILURE_ENVELOPE

主な失敗は、skill名一致を意味一致とすること、宣言から生成したschema検査だけで実装をPASSすること、errorを通常contentへ変換すること、timeout後の重複効果、途中streamの適用、取消後の結果未照合、版を特定しない検証結果の流用です。低権限の検証を管理者権限の本番経路へ一般化することも避けます。

COUNTEREVIDENCE_AND_LIMITATIONS

capability宣言とschemaは発見・事前検査に有用です。ただし、それぞれの仕様に準拠した実装でも、業務目的に対する同等性は別に評価する必要があります。contract testingも、契約に含めていない条件や観測していない外部serviceの効果を保証しません。宣言・実装・意味・運用のどこまで確認したかを明記します。

OPEN_UNKNOWN

対象agentと実装版、採用protocolのrelease状態・拡張、SDKによる変換、consumerの実依存、権限と副作用、非決定性の許容値、長時間・streaming・multimodalの実挙動、独立した運用事故は未確認です。複数protocolやproviderの完全互換性を主張しません。

SAFE_WORDING

「指定したconsumer/providerの版と入力・状態について、宣言・構造・呼出し・効果の契約を検証した」とします。「同じtool名とschemaなので、同じ能力として交換できる」とは記述しません。

運用上の停止・確認条件

実行対象の版、認可、error/取消の意味、部分結果、外部効果のreadbackが不明な場合は、その能力を適合済み・意味的に同等と宣言しません。

SOURCES_AND_PROVENANCE

EA-500-R1-20261013と継続Doc 1XpjZC_R1eHlIckvUaEaJ_mcj6YW6j0ihZ0b91z5vewUのEA-500節を継承。2026-10-18に一次資料を再確認。A2A v1.0.1、MCPの指定版、Pactの実装検証を別の証拠として扱いました。

  • EVD-EA-500-URL-6984F18D1DFE研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    [S1] A2A v1.0.1 specification、AgentCard / AgentSkill / AgentInterface:

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-500-URL-6984F18D1DFE
    検証箇所
    SOURCES_AND_PROVENANCE · S1 · - [S1] A2A v1.0.1 specification、AgentCard / AgentSkill / AgentInterface: https://a2a-protocol.org/v1.0.1/specification/
    適用範囲
    SOURCES_AND_PROVENANCE
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EVD-EA-500-URL-ACA6492C13F6研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    [S2] MCP 2025-06-18 Tools、schemaとerror handling。全採用環境の最新版とは扱わない:

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-500-URL-ACA6492C13F6
    検証箇所
    SOURCES_AND_PROVENANCE · S2 · - [S2] MCP 2025-06-18 Tools、schemaとerror handling。全採用環境の最新版とは扱わない: https://modelcontextprotocol.io/specification/2025-06-18/server/tools
    適用範囲
    SOURCES_AND_PROVENANCE
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EVD-EA-500-URL-8A617A7F51FE研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    [S3] MCP author repository、2026-07-28 cancellation文書。対象実装の対応とrelease状態は別途照合:

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-500-URL-8A617A7F51FE
    検証箇所
    SOURCES_AND_PROVENANCE · S3 · - [S3] MCP author repository、2026-07-28 cancellation文書。対象実装の対応とrelease状態は別途照合: https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/docs/specification/2026-07-28/basic/patterns/cancellation.mdx
    適用範囲
    SOURCES_AND_PROVENANCE
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EVD-EA-500-URL-946C1750A8B4研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    [S4] Pact How Pact works / Verifying Pacts、consumer期待とprovider実装の検証:

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-500-URL-946C1750A8B4
    検証箇所
    SOURCES_AND_PROVENANCE · S4 · - [S4] Pact How Pact works / Verifying Pacts、consumer期待とprovider実装の検証: https://docs.pact.io/getting_started/how_pact_works
    適用範囲
    SOURCES_AND_PROVENANCE
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EVD-EA-500-URL-587A3277B63D研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    [S4] Pact How Pact works / Verifying Pacts、consumer期待とprovider実装の検証: https://docs.pact.io/getting_started/how_pact_works ;

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-500-URL-587A3277B63D
    検証箇所
    SOURCES_AND_PROVENANCE · S4 · - [S4] Pact How Pact works / Verifying Pacts、consumer期待とprovider実装の検証: https://docs.pact.io/getting_started/how_pact_works ; https://docs.pact.io/provider
    適用範囲
    SOURCES_AND_PROVENANCE
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EA-500-CURRENT-APPROVAL研究資料研究資料根拠の出所: AUDITED_CANONICAL_RESEARCH_PACKET

    現行本文の監査・revision対応

    裏付ける内容
    現行台帳のAUDIT_PASSと候補・revision・本文ハッシュの対応を確認しています。
    確認日
    —
    出典・実験ID
    MANUAL-EA500-DRAIN-20261018-C1
    検証箇所
    1KqhJtiSb2S84rWmeYVwKcT_76dBwZ_B0ZZuAWQqH0rQ/EA_REVISION_LEDGER#ea_id=EA-500&revision_id=EA-500-R1-20261013&candidate_id=MANUAL-EA500-DRAIN-20261018-C1 · EA-500-R1-20261013
    適用範囲
    —
    出典・来歴
    CURRENT_CANONICAL_APPROVAL_READBACK
    限界
    監査状態と来歴の記録です。外部根拠の最新性や本文の全主張を追加保証しません。
  • EA-500-CURRENT-BODY-READBACK実装資料実装資料根拠の出所: IMPLEMENTATION_READBACK

    現行本文の収録照合

    裏付ける内容
    公開生成入力の本文SHA-256が、監査済み候補に結び付いたハッシュと一致しています。
    確認日
    2026-10-18
    出典・実験ID
    BODY-SHA256:9d6bda3663c3a267dfa53959811f4ad70d470029b24d8c8fd8bd930ca764e478
    検証箇所
    content/staging/EA-500.md · 9d6bda3663c3a267dfa53959811f4ad70d470029b24d8c8fd8bd930ca764e478 · EA-500-R1-20261013
    適用範囲
    —
    出典・来歴
    CURRENT_APPROVED_BODY_HASH_MATCH
    限界
    本文の同一性の検査です。外部システムの挙動や全主張の真偽を実証したものではありません。
出典ID
MANUAL-EA500-DRAIN-20261018-C1, SRC-EA-500-URL-6984F18D1DFE, SRC-EA-500-URL-ACA6492C13F6, SRC-EA-500-URL-8A617A7F51FE, SRC-EA-500-URL-946C1750A8B4, SRC-EA-500-URL-587A3277B63D, BODY-SHA256:9d6bda3663c3a267dfa53959811f4ad70d470029b24d8c8fd8bd930ca764e478
追跡中のUNKNOWN ID
EA-500-UNKNOWN-01
再確認のきっかけ
正式な 改訂版/publication 状態 change · 本文 成果物 hash change · 出典 現行性 change · new contradiction or 実装 結果の照合

機械検査: 通過 — 機械検査の結果です。情報の正確性や実行の承認を保証するものではありません。

    同じ記事IDの機械可読データです。