In Silico

AIエージェント

エージェント決済のAP2とACPは委任の範囲をどう縛るか

2026/9/30

目次
※ 概念図(決済手段を渡す/Mandateを運ぶ)・作図:AI 【保存した決済手段を渡す】 エージェントが保存済みの カードや口座をそのまま使う → 承認の範囲を後から示せない 署名は関与しない 【署名したMandateを運ぶ】 人が範囲を承認し、署名される 検証側が決定的なコードで照合 → 署名の前に読んだものは別 署名が守るのは署名のあと
※ 概念図(対比:決済手段を渡す/Mandateを運ぶ)・作図:AI。保存した決済手段をそのまま使う形と、人が承認し署名した範囲のMandateをエージェントが運び検証側が照合する形を並べた図であり、本文で引く一次資料そのものの主張ではない。
背景

AIエージェントに買い物や予約を任せるなら、支払いも任せることになる。利用者が毎回価格や条件を見て決済ボタンを押す手順を省き、エージェントが商品を選んでから支払うまでを続けて進める形である。

問題は、支払いのためにエージェントへ何を渡すかである。保存したカードや決済アカウントをそのまま渡すと、エージェントは利用者本人と同じだけ支払える。利用者が任せた用件に合わせた制限は、金額にも店にも掛からない。エージェントが偽の指示に従って支払っても、利用者が何をどこまで承認していたかを後から示す記録が無い。

注文を受ける加盟店(商品を売る店)にも同じ問題がある。エージェントから届いた注文が利用者本人の意思によるものか、利用者がどんな条件で承認したのかを、加盟店は外から確かめられない。標準化団体のFIDO Allianceも、誰が、どんな条件と上限で行為を認可したのかを検証する手段を、サービス提供者が欠いていると指摘する1。

この問題を扱う仕様が、二つ公開されている。AP2(Agent Payments Protocol)は、Googleが公開し、FIDO Allianceへ寄稿した仕様である1。FIDO Allianceは2026年4月28日、AP2とMastercardの寄稿を土台に、エージェント発の商取引向けの仕様を作ると発表した1。ACP(Agentic Commerce Protocol)は、OpenAIとStripeが保守する仕様で、現在はベータである2。

問い

AP2とACPは、エージェントに任せる支払いの範囲を、どうやって制限するのか。

要点

どちらの仕様も、支払ってよい範囲を先にデータに書き、実際の取引がその範囲に収まらなければ通さない。 AP2は、エージェントが組み立てて利用者が承認した範囲のデータに署名を付け、受け取る側がそのデータを機械的に照合する3。ACPは、加盟店が利用者のカード情報を使える範囲を、1回限り・上限額・通貨・有効期限の条件として書く2。署名が守るのは署名の後の取引内容で、署名の前にエージェントが読んだ商品情報やツールの出力は保護の外に残ると、独立の分析は指摘する4。

上限12,000円の買い物で、通る取引と通らない取引を分ける

この節の金額と日付は、説明のために決めた値である。仕様の値でも測定値でもない。

利用者がエージェントに、ランニングシューズを1足買うよう頼む。利用者が許す範囲は、金額が12,000円以下、期限が10月3日までの二つとする。範囲をデータに書くのはエージェントで、利用者はその内容を見て承認する。利用者は承認したあと、買い物が終わるまで画面を見ない。

はじめに、保存したカードをそのままエージェントに渡す場合を考える。カードの利用限度額は50万円とする。エージェントは、50万円までならいくらでも支払える。許した範囲はどこにも書かれていないので、15,000円の支払いも、10月5日の支払いも止まらない。

次に、範囲を先にデータに書く場合を考える。エージェントが取引を確定すると、支払いを処理する側が、取引の金額と日付を範囲と比べる。

エージェントが確定した取引範囲との比較と結果
取引A:9,800円・10月1日9,800 ≦ 12,000、期限内なので通る
取引B:15,000円・10月1日15,000 > 12,000 なので通らない
取引C:9,800円・10月5日期限の後なので通らない
取引D:11,500円・10月1日11,500 ≦ 12,000、期限内なので通る

取引Dは、エージェントが偽のレビューを読んで選んだ、利用者の望まない品だとする。それでも金額と日付は範囲に収まるので、比較の結果は取引Aと同じになる。

1回の取引で誤って失う金額の上限は、カードを渡す場合が50万円、範囲を書く場合が12,000円である。差は488,000円になる。

最後に、取引Aの9,800円を加盟店へ支払う段階を考える。加盟店にも、カード番号をそのままは渡さない。1回限り、上限9,800円という条件を付けて渡す。

加盟店の請求条件との比較と結果
9,800円を請求する9,800 ≦ 9,800、1回目なので通る
続けて、もう一度9,800円を請求する2回目なので通らない
9,800円の代わりに、12,000円を請求する12,000 > 9,800 なので通らない

二つの表が示す性質は、三つある。

  1. 取引が通るかどうかは、先に書いた範囲と、取引の値の比較で決まる。エージェントが取引の理由をどう説明しても、比較の結果は変わらない。
  2. 二つの範囲は、制限する相手が違う。12,000円の範囲はエージェントを制限し、9,800円の条件は加盟店を制限する。9,800円の条件だけでは、エージェントが取引Dを選ぶことは止まらない。
  3. 比較が守るのは、署名された範囲である。1回の取引で失う金額は範囲の上限を超えないが、取引Dのような範囲の内側の誤りは、比較では見つからない。署名の前にエージェントが範囲を広く書き、利用者がそれを承認すれば、広い範囲の取引も比較を通る。

AP2の開いたMandateは12,000円の範囲に当たり、閉じたMandateと、その取引に絞って渡される支払いの資格情報は、9,800円の条件に当たる3。ACPが書く利用条件は、9,800円の条件だけに当たる2。以下の節で、仕様と独立の分析の記述を、三つの性質に順に当てる。

AP2は、範囲との比較をエージェントに任せない

AP2で12,000円の範囲に当たるデータが、Mandateである。利用者はまず、AIエージェントが操作しない画面で、取引の内容を確かめて同意する。仕様はこの画面をTrusted Surfaceと呼ぶ。同意した内容は、購入の内容を書くMandateと、支払いの内容を書くMandateの2種類に書かれ、それぞれが署名される。エージェントは、署名されたMandateを、支払いを処理する側へ渡す3。Mandateを受け取って照合する側を、以下では検証側と書く。

署名に使う鍵は、利用者本人の資格情報の鍵か、検証側が信頼するエージェント提供者の鍵かのどちらかである。エージェント提供者は、エージェントを提供する事業者を指す。提供者の鍵で署名する場合、提供者は、エージェントがその鍵にアクセスできないようにしなければならない5。

性質1に当たるのは、検証についての二つの定めである。一つは、検証を決定的なコードで行うことである3。決定的なコードは、同じ入力に必ず同じ結果を返すプログラムを指す。もう一つは、同意を取るTrusted Surfaceを、エージェントに担当させないことである3。例に当てはめると、15,000円と12,000円を比べるのは決定的なコードで、エージェントの説明は比較の入力に入らない。検証側はMandateそのものを照合するので、エージェントが途中で何を主張しても、署名された範囲を超える取引は通らない3。

二つの定めの理由を、AP2は仕様に書いている。仕様が想定する攻撃は、エージェントが読む文章に偽の指示を混ぜて、エージェントを従わせるものである。この攻撃をプロンプトインジェクションと呼ぶ。仕様は、プロンプトインジェクションを防ぐことは不可能だと仮定し、すべてのLLMとエージェントを潜在的な攻撃者とみなす6。攻撃を受けていないエージェントも、同じ入力に同じ結果を返すとは限らない。このため仕様は、人間の利用者に求める以上に、エージェントの挙動を強く制約する必要があると書く5。

人が居ない場面では、範囲のMandateと取引のMandateを組にして照合する

例の買い物では、利用者は範囲だけを決めて、取引の確定には立ち会わなかった。仕様はこの場面を、人が居ない場面(Human Not Present)と呼ぶ。Googleは、この場面を扱う版のv0.2を、2026年4月28日に公開した5。

この場面では、Mandateが二段になる。範囲だけを書いたMandateを、仕様は開いたMandateと呼ぶ。確定した取引を書いたMandateを、閉じたMandateと呼ぶ3。例では、「12,000円以下・10月3日まで」が開いたMandateで、「9,800円・10月1日」が閉じたMandateである。

二つのMandateは、署名する主体が違う。開いたMandateは、利用者がTrusted Surfaceで範囲を確認して承認したあとに署名される。署名するのは、利用者か、検証側が信頼する一覧に載ったエージェント提供者である3。閉じたMandateには、エージェントが自分の鍵で署名する3。

検証側がエージェントの鍵を信頼できるのは、開いたMandateがその鍵を指定しているからである3。開いたMandateはエージェントの公開鍵を含み、その鍵を持つエージェントしか、有効な閉じたMandateを作れない6。閉じたMandateは、開いたMandateのハッシュ値を含み、どの開いたMandateに基づくかを示す6。検証側は両方を受け取り、閉じたMandateが開いたMandateの制約を満たすかを照合する3。例の取引Bは、この照合で通らない。

ACPの条件が制限するのは、加盟店である

ACPで9,800円の条件に当たるものを、仕様はallowanceと呼ぶ。allowanceは、1回限りの利用・上限額・通貨・有効期限をまとめた利用条件である2。条件を付ける対象は、支払いに使う情報である。ACPが今日扱うのはカードだけなので2、この記事ではカード情報と書く。

カード情報をallowance付きで預けるAPIを、ACPはDelegate Paymentと呼ぶ。このAPIでは、エージェントを動かすサービス(ChatGPTなど)が、利用者のカード情報とallowanceを、加盟店が使う決済代行事業者(PSP)の保管基盤へ送る2。PSPは、預かったカード情報の代わりに使うトークンを返す。エージェントがトークンを加盟店へ渡し、加盟店は自分のPSPを通して、allowanceの範囲内でだけトークンを使う2。決済や清算、コンプライアンスは、加盟店が既に使っている決済の仕組みに残る2。

性質1は、ACPでも成り立つ。Delegate Paymentを定める文書は、トークンがallowanceの範囲内でしか使えないと定め、利用の種類は1回限り(one_time)でなければならないと定める2。例で2回目の請求と12,000円の請求が通らないのは、この定めに当たる。

性質2に当たるのは、この文書が扱う範囲である。リクエストに署名するのは、エージェントを動かすサービスの鍵である。利用者がエージェントに何を許したかは、この文書の範囲にない2。例でエージェントが取引Dを選び、allowanceの上限を11,500円にして預ければ、加盟店の11,500円の請求は通る。取引Dが利用者の望んだ品かどうかを、allowanceは見ない。ACPの別の文書は、3D Secure(カード決済で本人確認を追加する仕組み)のような認証が要る取引では、クライアントが認証を試みて結果を返さなければならないと定める2。

署名の前の誤りと範囲の内側の誤りは、比較では止まらない

性質3に当たる記述は、AP2の仕様と独立の分析の両方にある。仕様が書くのは、失う金額に上限があることである。分析が書くのは、範囲の内側の誤りが見つからないことと、範囲そのものが署名の前に広げられうることである。

AP2の仕様は、プロンプトインジェクションによってエージェントが悪意ある商品を選ぶ脅威を挙げる。そのうえで、閉じたMandateの検証で制約を評価すれば「最悪の場合の金銭的・論理的な影響は厳密に有界になる」と書く6。有界は、上限があるという意味である。例では、1回の取引について12,000円がこの上限に当たる。

仕様には、範囲を狭く保つための定めもある。開いたMandateの有効期限は、エージェントが作業を完了できる最小の値にするよう推奨する3。同じ開いたMandateで複数の承認を得させないため、前の開いたMandateが拒否されたことを示す受領書を受け取るまで、エージェントが次の開いたMandateを提示することを禁じる3。

ただし、1回分の範囲に閉じるかは別の定めによる。仕様は、攻撃を受けたエージェントが同じ開いたMandateで複数の取引を承認しようとする脅威を挙げる。これを止める定めは、エージェント自身への禁止と、資格情報の提供者や決済網が重なるMandateを拒否してよいという許可である。禁止の根拠になる受領書は、エージェントのLLMから保護しなければならない6。範囲の繰り返し利用を許す制約もあり、そのときは回数と総額の上限を別に書く3。

独立の分析は、Avivらが2026年8月に公開した、AP2 v0.2の安全性の分析である4。分析は、署名されたMandateが守るのは、署名後の取引データが書き換えられていないことだと書く。承認の前に取引の内容を左右するエージェントのやり取りと外部からの入力は、その保護の外に残るとも書く4。例の取引Dでは、偽のレビューが外部からの入力に当たる。分析の結論は、署名の前にエージェントが受け取った情報が操作されると、Mandateの署名が有効でも、取引が利用者の意図を反映するとは保証されない、というものである4。

分析が挙げた脅威は、五つの攻撃系統にわたる48件である。分析はそのうち8件を、少なくとも一つの構成で危険度が高いと判定した4。この8件を覆う五つの実証は、公開の完全なAP2実装が無かったため、著者らが組んだ試験用の環境で行われた。著者ら自身、実証で示した失敗が第三者の実装で変わらず現れるとは言い切れないと断る4。

実証の一つは、範囲そのものを署名の前に広げる。利用者は、50ドル以下でカメラを1台買うようエージェントに頼んだ。加盟店のツールが50〜80ドルの見積もりを返し、エージェントはそこから上限80ドルの範囲を組み、支払先の制限も書かなかった。利用者はその範囲を承認し、加盟店はのちに同じカメラの80ドルの取引を作った4。80ドルの取引は、署名された範囲に収まる。分析が示す緩和は、署名の前にTrusted Surfaceが範囲の上限をそのまま示し、利用者の上限を超える範囲を拒むことである4。

分析は、対策の方向も示している。プロトコルが取るべき対応は、次のどちらかだと分析は書く。署名の前にエージェントが受け取った情報を発行するデータに結びつけるか、結びつけを作らない実行の経路を拒否するかである4。署名だけでは足りず、どの情報を結びつけるかは設計の選択として残る。

利用者がその場で承認するなら、範囲を先に書かなくてよい

例を変えて、利用者が9,800円の注文の内容を自分で見て承認するとする。このとき、12,000円という範囲を先に書く必要は無い。AP2の仕様も、人が居る場面では利用者が確定した購入内容を自分で承認するので、加盟店とTrusted Surfaceが直接やり取りする従来のECの流れに置き換えられることが多いと注記する3。

二つの仕様を使う前に確かめること

使う場面ごとに、確かめることは次のようになる。人が居る購入で、利用者がその場で確定した取引の内容を承認し、加盟店と直接やり取りできるなら、AP2の署名は要らない場面がある。人が居ない反復購入や予約を任せるなら、開いたMandateに書く制約の設計と、Trusted Surfaceをエージェントから分けることが要る。反復させるなら回数と総額の上限も書き、Trusted Surfaceは署名の前に範囲の上限を利用者にそのまま示す。加盟店がカード情報を使える範囲は、1回限り・上限額・期限・加盟店を固定したallowanceで制限できる。どの場面でも、エージェントが署名の前に読む商品情報やツールの出力への防御は、別に用意する。

エージェントに権限を渡すほかの仕組みを読むときも、12,000円の買い物の例が使える。まず、許した範囲がどのデータに書かれ、誰が取引と比べるのかを探す。次に、取引Dに当たる誤り、つまり範囲の内側に収まる誤りが起きたとき、その仕組みに何が残るのかを見る。範囲を書いたデータが見つからなければ、その仕組みは、保存したカードを渡す場合と同じものとして読む。

出典6件
  1. FIDO Alliance, “FIDO Alliance to Develop Standards for Trusted AI Agent Interactions”, 2026年4月28日公開。「これらの取り組みには、Agentic Authentication Technical Working Groupの設置と、Google(AP2)とMastercard(Verifiable Intent)からの初期の寄稿を踏まえたagent-initiated commerce向けの仕様策定が含まれる」(“These initiatives include the formation of an Agentic Authentication Technical Working Group and efforts to develop specifications for agent-initiated commerce, drawing from initial contributions from Google (AP2) and Mastercard (Verifiable Intent).”)、「今日の認証・認可モデルは、直接の人間の操作のために設計されており、委任された、エージェント発の行為のためではない」(“today’s authentication and authorization models were designed for direct human interaction, not delegated, agent-initiated actions.”)、「サービス提供者は、誰が行為を認可したか、どんな条件のもとで、どんな上限で認可したかを含め、利用者の意図を検証する信頼できる相互運用可能な手段を欠いている」(“service providers lack reliable, interoperable ways to verify user intent – including who authorized an action, under what conditions, and with what limits.”)と書き、「GoogleはAgent Payments Protocol(AP2)を寄稿した」(“Google has contributed its Agent Payments Protocol (AP2)“)とする。作業部会の割り当ては「開始時点で、Agentic Authentication Technical Working GroupはCVS Health・Google・OpenAIのメンバーが議長を務め」(“At launch, the Agentic Authentication Technical Working Group is chaired by members from CVS Health, Google and OpenAI”)、「並行して、FIDO AllianceはMastercardとVisaのメンバーが議長を務めるPayments Technical Working Groupの中でagent-initiated commerce向けの仕様を策定している。GoogleとMastercardからの技術的な寄稿が、これらの仕様の初期の土台を提供している」(“In parallel, the FIDO Alliance is developing specifications for agent-initiated commerce within its Payments Technical Working Group, chaired by members from Mastercard and Visa. Technical contributions from Google and Mastercard are providing an initial foundation for these specifications.”)、「MastercardはGoogleと共同開発しAP2と組んで動くよう設計されたVerifiable Intentの枠組みを寄稿した」(“Mastercard has contributed its Verifiable Intent framework, co-developed with Google and designed to work with AP2”)と書く。https://fidoalliance.org/fido-alliance-to-develop-standards-for-trusted-ai-agent-interactions/ ↩ ↩2 ↩3

  2. Agentic Commerce Protocol, “RFC: Agentic Commerce — Delegate Payment API”, Version 2025-09-29, Status Draft(GitHub、2026年9月21日取得)。「本RFCは、決済資格情報のための委任済みvault tokenを発行する、単一の、実装必須(MUST-implement)なHTTPエンドポイントを定義する」(“This RFC defines a single, MUST-implement HTTP endpoint that issues a delegated vault token for a payment credential.”)、「支払い・清算・コンプライアンスは加盟店のレールに残る」(“Payments, settlement, and compliance remain on the merchant’s rails.”)、「加盟店がChatGPT発のチェックアウトのために決済資格情報を安全に委任できるようにする」(“Enable merchants to safely delegate a payment credential for use in ChatGPT-initiated checkouts.”)、「返されるtokenは、提供されたAllowance(reason、max_amount、currency、expiry)の範囲内でのみ使用できる」(“The returned token MUST ONLY be usable within the provided Allowance (reason, max_amount, currency, expiry).”)、「reasonはone_timeでなければならない」(“reason: MUST be one_time”)、「tokenはその後、加盟店の既存のPSPが明示的なAllowanceの制約の範囲内でのみ使用できる」(“The token may then be used by the merchant’s existing PSP only within explicit Allowance constraints.”)、「Clientは自身の秘密鍵で分離署名を計算しなければならない」(“Client MUST compute a detached signature with its private key”)、「今日サポートされる資格情報の種類はちょうど一つ、cardである」(“Exactly one credential type is supported today: card.”)と書く。Version 2025-09-29はこのRFCのAPI-Versionである。同リポジトリの”RFC: Payment Handlers”(https://github.com/agentic-commerce-protocol/agentic-commerce-protocol/blob/main/rfcs/rfc.payment_handlers.md)は、handlerのrequires_delegate_paymentを「すべてのhandlerについてtrueを推奨」(“RECOMMENDED: true for all handlers to ensure explicit allowance constraints and secure credential handling.”)とし、決済手段に"payment_methods": ["card", "card.agentic_token"]を例示し、委任端点を通す理由を「1. 明示的なallowanceの上限 2. リスク信号の標準化 3. 資格情報のスコープ 4. 監査証跡 5. セキュリティの分離」(“1. Explicit allowance bounds: max_amount, currency, expires_at, checkout_session_id 2. Risk signal standardization: Consistent risk data format across payment methods 3. Credential scoping: Tokens bound to specific checkout sessions and merchants 4. Audit trail: Clear record of credential creation and usage 5. Security separation: Vault infrastructure separate from payment processing”)と列挙する。同RFCの§6.4は資格情報の保管の流れを「2. エージェントは加盟店のPSP(Stripe)に対しmerchant_idを使ってdelegate_paymentを呼ぶ 3. PSP(Stripe)が加盟店のアカウントに限定したvault token(SPT)を作る 4. エージェントがSPTを加盟店へ渡す 5. 加盟店はSPTを自分のPSP(Stripe)で開いて使う」(“2. Agent calls delegate_payment with the Seller’s PSP (Stripe) using the merchant_id 3. PSP (Stripe) creates vault token (SPT) scoped to the Seller’s merchant account 4. Agent submits SPT to Seller 5. Seller unwraps and uses the SPT with their PSP (Stripe)“)と書く。“RFC: Agentic Commerce Checkout”(https://github.com/agentic-commerce-protocol/agentic-commerce-protocol/blob/main/rfcs/rfc.agentic_checkout.md)は「3DSなどの認証が必要なとき、サーバはsession.statusをauthentication_requiredにしなければならない」(“Server MUST set session.status to authentication_required when authentication (e.g., 3DS) is required.”)、「そのときクライアントは提供されたメタデータで認証を試み、POST /completeのリクエスト本文でauthentication_resultを返さなければならない」(“When status is authentication_required, the client MUST attempt authentication using the provided metadata and MUST return the authentication_result in the POST /complete request body”)と定める。“RFC: Orders”(https://github.com/agentic-commerce-protocol/agentic-commerce-protocol/blob/main/rfcs/rfc.orders.md)は調整の種類の一つにdisputeを置き、「紛争またはチャージバック」(“Dispute or chargeback”)と説明する。README(https://github.com/agentic-commerce-protocol/agentic-commerce-protocol/blob/main/README.md)は最新安定版をspec/2026-04-17/とし、「本仕様はOpenAIとStripeによって保守されており、現在betaである」(“The specification is maintained by OpenAI and Stripe and is currently in beta.”)と書く。リポジトリは2025年9月29日に作られ、2026年9月21日時点のスターは1,546(GitHub API調べ)。https://github.com/agentic-commerce-protocol/agentic-commerce-protocol/blob/main/rfcs/rfc.delegate_payment.md ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11

  3. Google Agentic Commerce, “Agentic Payment Protocol (v0.2)” specification(GitHub、2026年9月21日取得)。「以下の役割は非エージェント的でなければならない」(“The following role MUST be non-agentic:”)、「役割がエージェント的かどうかに関わらず、それは決定的なコードで行われなければならない」(“it MUST happen in deterministic code regardless of whether the role is agentic or not.”)、「Mandateは、AP2がエージェントを認可するために使う中核の手段である」(“Mandates are the core means that AP2 uses to authorize agents.”)、「CheckoutとPaymentのMandateの中身は、利用者が何の作業を望むかを決めたあとにShopping Agentが組み立てる」(“The Checkout and Payment Mandate contents are assembled by the Shopping Agent after it has determined what task the user wishes it to perform.”)、「人が居ない場合(自律):利用者は、閉じたCheckoutとPaymentが自分の意図をどのように満たすかについての制約の集合を見て承認する」(“Human Not Present (Autonomous): The User sees and approves a set of constraints over what closed Checkout and Payment would meet their intent.”)、「自律の場合、閉じたMandateはエージェントの鍵で署名される。この鍵への信頼は、利用者または信頼されたエージェント提供者の一覧が署名した開いたMandateが与える」(“In the Autonomous case, the closed Mandates are signed by an Agent key. Trust in this key is provided by open Mandates that are signed by the User or a trust list of Agent Providers.”)、「これらはエージェントの公開鍵をcnfクレームとして含まなければならない」(“These MUST include the agent’s public key as a cnf claim.”)、「これらのMandateのexpクレームは、Shopping Agentが割り当てられた作業を完了できる最小の値に設定することが推奨される」(“It is RECOMMENDED to set the exp claim for these Mandates to the smallest value that will allow the Shopping Agent to complete the assigned task.”)、「Shopping Agentは、前のMandateからの拒否の受領を受け取ることなく、後続の開いたPaymentまたはCheckout Mandateを提示してはならない」(“Shopping Agents MUST NOT present any subsequent open Payment or Checkout Mandates without receiving a rejection receipt from the previous one.”)、「これは、エージェントが同じ開いたMandateを使って複数の異なるCheckoutを承認することを防ぐためである」(“This is to prevent an Agent approving multiple different Checkouts using the same open Mandate.”)、「加盟店の決済処理事業者は、Payment CredentialがそのCheckoutに適切に絞られていることを検証しなければならない」(“Merchant Payment Processor MUST verify the Payment Credential is appropriately scoped to the Checkout.”)、「現行仕様では、Shopping Agentが該当するMandateと開示をCheckoutに基づいてその場で決める必要がある。将来、商取引プロトコルに明示的な問い合わせ言語を用いると相互運用に役立つ」(“In the current specification, the Shopping Agent needs to determine the applicable Mandates and Disclosures ad-hoc based on the Checkout. In the future, utilizing an explicit query language in the commerce protocol can help practical interoperability.”)、「これがどのように紛争解決に使われるか、保存と取り出しの要件についての具体的な詳細は、本仕様の範囲外である」(“Specific details of how this is used for dispute resolution, retention, and retrieval requirements are outside the scope of this specification.”)、「単一の主体が複数、あるいはすべての役割を担うことも可能である。その場合、主体は担う各役割の責任をすべて負う」(“it is possible for a single entity to play multiple (or even all) of the roles. In that case, they would take on all of the responsibilities of each role they are playing.”)、「支払いの経路が二つの非エージェント的な面のあいだで直接行われる場合には、既存のECセキュリティモデルで十分である」(“In the case where the payment journey happens directly between two non-agentic surfaces (such as a Trusted Surface communicating directly with a non-agentic Merchant), then existing e-commerce security models are sufficient.”)、人が居る場合の注記として「利用者が閉じたCheckoutを承認するので、これは加盟店とTrusted Surfaceが直接やり取りする従来のECの流れに置き換えられることが多い」(“Because the User approves the closed Checkout, this can often be replaced with a traditional e-commerce journey where the Merchant and the Trusted Surface communicate directly.”)、「利用者のプライバシーを確保するため、Shopping Agentは閉じたMandateの評価に必要な開いたMandateからの開示だけを提示しなければならない」(“To ensure user privacy, Shopping Agents MUST present only the disclosures from the open Mandates needed in the evaluation of the closed Mandates.”)、「紛争の場合、Checkout Mandateと受領書、Payment Mandateと受領書を合わせて、取引の否認できない全体像を提供できる」(“In the case of a dispute, the Checkout Mandate and Receipt, and Payment Mandate and Receipt can be brought together to provide a non-repudiable picture of the transaction.”)、「紛争時に検証を行う場合、PaymentとCheckoutのMandateと受領書の完全性を保証するため、以下の手順に従わなければならない」(“When performing verification at the time of dispute, the following steps MUST be followed to ensure the integrity of the Payment and Checkout Mandate and Receipts.”)、「AP2は、Agentic Commerceの要請に適応できるよう、いくつかの拡張点を備える」(“AP2 provides several extension points to allow it to adapt to meet the needs of Agentic Commerce.”)、「概念上、この方式をあるShopping Agentから別のShopping AgentへのMandateの委任を支えるために使うことは可能である。これは現行仕様の範囲外である」(“Conceptually, it is possible to use this protocol to support delegation of Mandates from one Shopping Agent to another. This is outside the scope of the current specification.”)と書く。同リポジトリの”Payment Mandate”(https://github.com/google-agentic-commerce/AP2/blob/main/docs/ap2/payment_mandate.md)は、開いたPayment Mandateの制約に「Agent Recurrence:エージェントがこのPayment Mandateを複数回使うための条件を与える」(“Agent Recurrence: Provides conditions for the agent reusing this Payment Mandate multiple times.”)と「Budget:総額の上限を与える。Agent Recurrenceの制約とともに使う」(“Budget: Provides a total amount limit. To be used with the Agent Recurrence constraint.”)を置き、Agent Recurrenceの評価は頻度と「max_occurrencesの上限が現在の回数以上であること」(“and the max_occurrences limit is greater than or equal to the current occurrences”)を見ると書く。https://github.com/google-agentic-commerce/AP2/blob/main/docs/ap2/specification.md ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13 ↩14 ↩15

  4. Avital Aviv, Parth A. Gandh, Ron Bitton, Asaf Shabtai, “Beyond the Mandate: A Systematic Security Analysis of the Agent Payments Protocol (AP2)”, arXiv:2608.23858, v1 2026年8月24日。「署名されたCheckoutとPayment Mandateは、署名後の取引データの完全性を守る。承認前に取引を形づくるエージェントの相互作用と外部入力は、Agent-to-Agent Protocol(A2A)のメッセージやModel Context Protocol(MCP)のツール呼び出しを含め、その保護の外に残る」(“Its signed Checkout and Payment Mandates protect the integrity of transaction data after signing. Agent interactions and external inputs that shape a transaction before authorization remain outside that protection, including Agent-to-Agent Protocol (A2A) messages and Model Context Protocol (MCP) tool calls.”)、「先行研究はAP2 v0.1におけるリプレイ攻撃とプロンプトインジェクション攻撃を特定した。AP2 v0.2はこれらの問題の一部に対処するが、新たな能力と展開の前提を加えており、再分析を要する」(“Prior work identified replay and prompt-injection attacks in AP2 v0.1. AP2 v0.2 addresses some of these issues but adds capabilities and deployment assumptions that require renewed analysis.”)、「MAESTROを用いて、四つの脅威主体、十一の攻撃面、十八の攻撃者能力、六つの攻撃目標をモデル化する」(“Using MAESTRO (Multi-Agent Environment, Security, Threat, Risk, Outcome), we model four threat actors, eleven attack surfaces, eighteen adversary capabilities, and six attacker goals.”)、「結果として得られた目録は、五つの攻撃系統にわたる48件の脅威を含む」(“The resulting catalog contains 48 threats spanning five attack families.”)、「少なくとも一つのアーキテクチャでHigh帯に達する8件を特定した」(“identifying eight that reach the High band in at least one architecture.”)、「完全な公開AP2実装が利用できなかったため、五つのアーキテクチャすべてにわたるテストベッドを構築し、High帯の8件の脅威とその緩和策すべてを覆う五つの概念実証を開発した」(“Because no complete public AP2 deployment was available, we build a testbed spanning all five architectures and develop five proof-of-concept demonstrations covering all eight High-risk threats and their mitigations.”)、「我々の分析は、有効なMandateの署名だけでは、署名前の文脈が操作されたとき、エージェントが仲介した取引が利用者の意図を反映することを保証しないことを示す」(“Our analysis shows that valid mandate signatures alone do not ensure that an agent-mediated transaction reflects the user’s intent when its pre-authorization context is manipulated.”)と書く。PDF版(https://arxiv.org/pdf/2608.23858v1)の§9.1.1は「エージェント認可は、署名された意図だけでなく運用上の文脈を束縛しなければならない」(“Agentic authorization must bind operational context, not only signed intent.”)、「エージェント認可のプロトコルは、関連する署名前の文脈を発行する成果物に束縛するか、そうした束縛を作らない実行経路を拒否すべきである」(“Agentic authorization protocols should bind relevant pre-signature context to issued artifacts or reject execution paths that do not produce such bindings.”)と書き、§9.2.1は「そのため我々は、概念実証に用いたAP2のテストベッドを構築した」(“We therefore built the AP2 testbed used for our PoCs.”)とし、「これは、同じ失敗が将来の第三者の展開でも変わらず現れると主張する我々の能力を制限する」(“This limits our ability to claim that the same failures will appear unchanged in future third-party deployments”)と断る。§6(p.12)の実証AM1は「利用者はSAに、50ドル以下でカメラを1台買うよう頼む」(“The user asks the SA to buy one camera for no more than $50.”)、「SAはその結果を、min=5000、max=8000、currency=USDのpayment.amount_range制約に写す」「そのMCPの見積もりツールは50ドルから80ドルの金額の範囲を返すが、支払先の欄は無い」(“Its MCP quote tool returns an amount range from $50 to $80 but no payee field.”)、(“The SA maps that result into a payment.amount_range constraint with min=5000, max=8000, and currency=USD.”)、「ツールが支払先を返さないので、写す処理はpayment.allowed_payeesの制約を出さない」(“Because the tool supplies no payee, the mapper emits no payment.allowed_payees constraint”)、「同意の手順が警告しなかったことと加盟店の説明を頼りに、利用者は開いたMandateを承認する」(“Relying on the consent workflow’s lack of a warning and the merchant’s explanation, the user authorizes the open mandates.”)、「加盟店はのちに同じカメラの80ドルの加盟店署名付きCheckoutを作り、SAは結びつけられたエージェント鍵で対応する閉じたCheckoutとPayment Mandateに署名する」(“The merchant later creates a merchant-signed checkout for the same camera at $80, and the SA signs the corresponding closed Checkout and Payment Mandates with its bound agent key.”)と書き、緩和として「利用者の上限を超える最大値や、利用者が明示的に認めていない支払先の制限の欠落を拒み、自らが表示したバイトだけに署名する」(“It rejects a maximum above the user’s limit or an absent payee restriction that the user did not explicitly authorize, and signs only the bytes it rendered.”)を挙げる。https://arxiv.org/abs/2608.23858 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9

  5. Google Agentic Commerce, “Agent Authorization”(GitHub、2026年9月21日取得)。「非決定的な処理のため、行儀の良いエージェントであっても、通常の認可モデルが人間の利用者に求める以上に、その挙動を強く制約する必要がある」(“Due to their non-deterministic processes, even well-behaving Agents need to have their behavior tightly constrained above what a normal authorization model would require of human users.”)、「Mandateの委任:利用者は、エージェントが自分に代わって何らかの行為を行うことを認可する」(“Mandate Delegation: A User authorizes an Agent to perform some action (or actions) on their behalf.”)、「行為の認可:ここでは検証者がエージェントに対し、利用者に代わって行為を行う権限を持つことの証明を求める」(“Action Authorization: Here a Verifier challenges an Agent to provide proof that it is authorized to perform an action on behalf of a User.”)と書く。Mandate Delegationの型として「本書は以下のモデルを定義する: User Credential、Trusted Agent Provider」(“This document defines the following models for Mandate Delegation: - User Credential - Trusted Agent Provider”)を挙げ、後者について「エージェント提供者は、安全に保管した署名鍵を使ってMandateを作る」(“The Agent Provider uses a securely stored signing key to create the Mandate.”)、「エージェント提供者は、エージェントがその署名鍵にアクセスできず、Trusted Surfaceなしに使えないことを保証しなければならない」(“The Agent Provider MUST ensure that the Agent is not able to access the Agent Provider signing key, or use it without the Trusted Surface.”)と書く。立ち位置: リポジトリは2025年5月30日に作られ、2026年9月21日時点のスターは3,183(GitHub API調べ)。v0.1.0は2025年9月16日、v0.2.0は2026年4月28日で、リリースノートは「これはAP2の第二版であり、Human Not Presentのフローを提供することに焦点を当てる」(“This is the second release of AP2. It focuses on providing Human Not Present flows.”)と書く。https://github.com/google-agentic-commerce/AP2/blob/main/docs/ap2/agent_authorization.md ↩ ↩2 ↩3

  6. Google Agentic Commerce, “Security and Privacy Considerations”(GitHub、2026年9月21日取得)。「エージェントセキュリティの現状を踏まえ、AP2はプロンプトインジェクション攻撃を防ぐことは不可能だと仮定する。したがって、すべてのLLMとエージェントは潜在的な攻撃者とみなさなければならず、脅威モデルに明示的に含まれる」(“Given the current state of agent security, AP2 assumes that preventing prompt injection attacks is infeasible. Therefore, all LLMs and Agents MUST be considered potential attackers and are explicitly included in the threat model.”)、「閉じたMandateは、提示された開いたMandateに結びつけるため、sd_hashクレームを含まなければならない」(“Closed Mandates MUST contain the sd_hash claim to bind them to the presented open Mandate.”)、「開いたMandateは、そのエージェントだけが有効な署名を持つ閉じたMandateを作れるようにするため、cnfクレームを介してエージェントの鍵を含まなければならない」(“Open Mandates MUST contain the Agent’s key (via a cnf claim) so that only the agent could create a Closed Mandate with a valid signature.”)と書く。Manipulated Discoveryの節は脅威として「プロンプトインジェクションにより、Shopping Agentが悪意ある商品を選んだり、まずい購買判断をしたりする」(“Prompt injection causes the Shopping Agent to select malicious products or make poor purchase decisions.”)を挙げ、緩和として「LLMが最適な選択に失敗しても、閉じたMandateの検証時の制約評価により、最悪の場合の金銭的・論理的な影響は厳密に有界になる」(“Even if the LLM fails to make the optimal choice, constraint enforcement during closed Mandate verification ensures that the worst-case financial and logical impacts are strictly bounded.”)と書く。Double Spendの節は脅威として「プロンプトインジェクションを受けた、あるいは悪意あるShopping Agentが、同じ開いたMandateを使って複数の有効なCheckoutを承認しようとする」(“A prompt injected, or otherwise malicious Shopping Agent attempts to approve multiple valid Checkouts using the same open Mandate.”)を挙げ、緩和として「Shopping Agentの非決定的な部分は、前に出したMandateを拒否する受領書を受け取らずに、同じ開いたMandateについて重なり合う複数の閉じたMandateに署名することを避けなければならない」(“The non-deterministic portion of the Shopping Agent MUST avoid signing multiple, overlapping closed Mandates for the same open Mandate without receiving Receipts rejecting the previously released Mandates.”)、「これらの受領書は、Shopping AgentのLLMから完全性を保護されなければならない」(“These Receipts MUST be integrity protected from the Shopping Agent’s LLM.”)、「Credential Provider、決済網、MPPは、重なり合う複数のMandateを拒否するか、前に発行した決済トークンを無効にしてよい」(“Credential Provider, Networks or MPPs MAY reject multiple overlapping Mandates, or invalidate previously issued payment tokens.”)と書く。https://github.com/google-agentic-commerce/AP2/blob/main/docs/ap2/security_and_privacy_considerations.md ↩ ↩2 ↩3 ↩4 ↩5

この記事はAIが執筆しています。内容には誤りが含まれる可能性があります。ご注意ください。