Google、ECシステムとAIエージェントをつなぐ「Universal Commerce Protocol」発表 デモも公開「N対N」のAPI開発を不要に? 次世代ECのオープン標準を策定

GoogleはAIエージェントによる次世代のコマース体験を実現する「Universal Commerce Protocol」を発表した。ShopifyやWalmartなど業界リーダーと連携し、エージェントと企業間の複雑な統合を簡素化するためのオープン標準を共同で策定したという。

» 2026年02月03日 13時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Googleは2026年1月11日(米国時間)、ShopifyやWalmartを含む業界リーダーと協力し、次世代のAIエージェントによるコマースを支援するためのオープン標準「Universal Commerce Protocol」(UCP)を発表した。UCPは、消費者向けインタフェース、企業、決済プロバイダー間のシームレスな購買プロセスを、標準化された方法で連携させるための共通プロトコルと機能を提供する。

 UCPは既存の小売インフラで動作するように設計されており、安全な決済をサポートする「Agent Payments Protocol」(AP2)との互換性も備えている。企業はAPIや「Agent2Agent」(A2A)および「Model Context Protocol」(MCP)を通じて柔軟に統合できる。

 UCPの開発にはGoogleの他、Shopify、Etsy、Wayfair、Target、Walmartといった業界リーダーが参画している。Adyen、American Express、Best Buy、Flipkart、Macy's、Mastercard、Stripe、The Home Depot、Visa、Zalandoなど、20を超えるグローバルパートナーからの支持も得ているという。

次世代のデジタルコマースをUCPでどう実現するのか?

 UCPは、コマースエコシステム全体での連携を想定して設計されている。主な対象者別のメリットは以下の通り。

  • ビジネス(企業)
    • Google検索の「AI Mode」や「Google Gemini」などの顧客接点で、独自の商品やサービスを提示できる設計となっている。ビジネスロジックを自社で保持し、販売主体(Merchant of Record)としての立場を維持できるよう配慮されている。チェックアウト体験を完全にカスタマイズできる「組み込みオプション」も提供される
  • AIプラットフォーム
    • 消費者に対してエージェントによるショッピング機能を有効化できる。標準化されたプロトコルにより企業の導入を簡素化しつつ、MCPやA2A、既存のエージェントフレームワークを使用する柔軟性を企業に提供できる
  • 開発者
    • コミュニティー主導で進化するオープン標準として、次世代のデジタルコマース構築に参加できる
  • 決済プロバイダー
    • オープンでモジュール化された決済処理設計により、相互運用性と支払い方法の選択肢が広がる。全ての承認は、ユーザーの同意を暗号化によって検証可能な形で扱える
  • 消費者
    • ブランドがUCPを採用することで、商品の発見から購入の意思決定までプロセスをよりスムーズに進められる。会員特典を含めた最適な価値を安全に提供できる

なぜ「N対N」の統合は破綻する? AIエージェント特有の要件

 消費者がチャットbotやAIアシスタントを通じた対話型の購買体験を受け入れるにつれ、従来の購買プロセスからの脱却が求められている。つまり、商品のリサーチから最終的な決済までをチャット画面から移動させずに完結させる能力が不可欠となっている。

 そのためには、AIエージェントが企業のバックエンドと直接連携し、リアルタイムの在庫状況や価格設定を即座に取得・処理できるアーキテクチャが必要となる。だが、従来の技術インフラでは、こうした移行をサポートすることが困難だった。企業はチャネルごとに複雑な接続(N対N)を強いられ、エコシステムの進化を妨げていたためだ。

 UCPは単一の安全な抽象化レイヤーを通じて、発見、検討から購入、注文管理に至るまでの主要プロセスを標準化する目的で構築された。以下のような機能が用意されている。

  • 統合の集約
    • 個別システム連携の複雑さを解消し、全ての消費者インタフェースに対して単一の統合ポイントを提供する
  • 共通言語
    • 発見、機能スキーマ、通信方式のバインディング(結合)を標準化し、クロスプラットフォームの相互運用性とエンドツーエンドのサポートを保証する
  • 拡張可能なアーキテクチャ
    • 新しいエージェント体験の出現に合わせて容易にスケールできる柔軟な機能と拡張フレームワークを備える
  • セキュリティファースト
    • トークン化された決済と検証可能な資格情報を採用し、エージェントとバックエンド間の通信を保護する
UCPのアーキテクチャ 消費者インタフェースとビジネスバックエンドをセキュアにつなぐプロトコルとして機能する(提供:Google) UCPのアーキテクチャ 消費者インタフェースとビジネスバックエンドをセキュアにつなぐプロトコルとして機能する(提供:Google)

MCPとREST APIを共存させる仕組み

 UCPのアーキテクチャにおける最大の特徴は、通信プロトコルが抽象化されている点にある。これにより企業は、プラットフォームの要件に応じてREST API、MCP、A2Aといった異なる方式を自由に選択、あるいは併用することが可能だ。

 その結果、開発者は接続先のエージェントごとにAPIを個別に実装する必要がなく、標準化された定義ファイルを配置するだけで、エージェントと連携できる疎結合なアーキテクチャが実現する。

 UCPを利用するには、企業とエージェントは、サポートするサービス(ショッピングなど)を選択し、それに対応する機能を公開する必要がある。ここでいう機能とはチェックアウトや製品検索などのコアな構成要素を指し、これに割引などの拡張機能を付与することも可能だ。

 チェックアウトという単一の機能に対し、Webベースの接続にはREST APIを、AIエージェント経由の接続にはMCPを割り当てるといった柔軟な設計が実現できる。UCPの動的探索機能により、エージェントはプロファイルを通じて企業が提供する機能や決済オプションを動的に発見できる。決済アーキテクチャにおいては、消費者が支払いに使用するものと決済手段を分離しており、多様な決済プロバイダーに対応できる設計を実現したという。

Python SDKによる構築例

 Googleは店舗システムとエージェントの連携においてUCPがどのように動作するかを示す手順を、Python SDK(ソフトウェア開発キット)を用いて次のように解説している。

  1. ビジネスサーバをセットアップし、ストアにサンプル製品を追加する
  2. エージェントからのリクエストを受け入れる準備をビジネスサーバで行う
  3. エージェントがビジネスの機能を動的に発見できるようにする
  4. エージェントでチェックアウト機能を呼び出す
  5. エージェントでチェックアウトリクエストに割引を適用する

1. ビジネスサーバをセットアップし、ストアにサンプル製品を追加する

 Pythonサーバと製品データを含むSDKを使ってデモ環境を構築する。ディレクトリを作成し、GitHubからリポジトリをクローンして環境を構築する。デモ用の花屋を想定したSQLite(軽量で組み込み型のリレーショナルデータベース管理システム)ベースの製品データベースを作成し、サンプルデータを投入する。

mkdir sdk
git clone https://github.com/Universal-Commerce-Protocol/python-sdk.git sdk/python
pushd sdk/python
uv sync
popd
git clone https://github.com/Universal-Commerce-Protocol/samples.git
cd samples/rest/python/server
uv sync
Python SDKのセットアップ
mkdir /tmp/ucp_test
uv run import_csv.py \
    --products_db_path=/tmp/ucp_test/products.db \
    --transactions_db_path=/tmp/ucp_test/transactions.db \
    --data_dir=../test_data/flower_shop
サンプル製品データの投入

2. エージェントからのリクエストを受け入れる準備をビジネスサーバで行う

 ビジネスAPIをホストするサーバを特定のポート(例:8182)で起動する。クライアントが接続できるように、サーバをバックグラウンドで実行状態にする。

uv run server.py \
   --products_db_path=/tmp/ucp_test/products.db \
   --transactions_db_path=/tmp/ucp_test/transactions.db \
   --port=8182 &
SERVER_PID=$!
ビジネスAPIサーバの起動(ポート8182で待機)

3. エージェントがビジネスの機能を動的に発見できるようにする

 企業は、標準化されたパス(/.well-known/ucp)にJSON形式のマニフェストを配置する。これにより、エージェントはエンドポイントをハードコーディングすることなく、サービス仕様を動的に解決できる。

export SERVER_URL=http://localhost:8182
export RESPONSE=$(curl -s -X GET $SERVER_URL/.well-known/ucp)
echo $RESPONSE
マニフェスト(/.well-known/ucp)の取得と応答結果の表示
Response: 
{
  "ucp": {
    "version": "2026-01-11",
    "services": { "dev.ucp.shopping": { "version": "2026-01-11", "spec": "https://ucp.dev/specs/shopping", "rest": { "schema": "https://ucp.dev/services/shopping/openapi.json", "endpoint": "http://localhost:8182/" } } },
    "capabilities": [
      { "name": "dev.ucp.shopping.checkout", "version": "2026-01-11", "spec": "https://ucp.dev/specs/shopping/checkout", "schema": "https://ucp.dev/schemas/shopping/checkout.json" },
      { "name": "dev.ucp.shopping.discount", "version": "2026-01-11", "spec": "https://ucp.dev/specs/shopping/discount", "schema": "https://ucp.dev/schemas/shopping/discount.json", "extends": "dev.ucp.shopping.checkout" },
      { "name": "dev.ucp.shopping.fulfillment", "version": "2026-01-11", "spec": "https://ucp.dev/specs/shopping/fulfillment", "schema": "https://ucp.dev/schemas/shopping/fulfillment.json", "extends": "dev.ucp.shopping.checkout" }
    ]
  },
  "payment": {
    "handlers": [
      { "id": "shop_pay", "name": "com.shopify.shop_pay", "version": "2026-01-11", "spec": "https://shopify.dev/ucp/handlers/shop_pay", "config_schema": "https://shopify.dev/ucp/handlers/shop_pay/config.json", "instrument_schemas": [ "https://shopify.dev/ucp/handlers/shop_pay/instrument.json" ], "config": { "shop_id": "d124d01c-3386-4c58-bc58-671b705e19ff" } },
      { "id": "google_pay", "name": "google.pay", "version": "2026-01-11", "spec": "https://example.com/spec", "config_schema": "https://example.com/schema", "instrument_schemas": [  "https://ucp.dev/schemas/shopping/types/gpay_card_payment_instrument.json"
 ], "config": { "api_version": 2, "api_version_minor": 0, "merchant_info": { "merchant_name": "Flower Shop", "merchant_id": "TEST", "merchant_origin": "localhost" }, "allowed_payment_methods": [ { "type": "CARD", "parameters": { "allowedAuthMethods": [ "PAN_ONLY", "CRYPTOGRAM_3DS" ], "allowedCardNetworks": [ "VISA", "MASTERCARD" ] }, "tokenization_specification": [ { "type": "PAYMENT_GATEWAY", "parameters": [ { "gateway": "example", "gatewayMerchantId": "exampleGatewayMerchantId" } ] } ] } ] } },
      { "id": "mock_payment_handler", "name": "dev.ucp.mock_payment", "version": "2026-01-11", "spec": "https://ucp.dev/specs/mock", "config_schema": "https://ucp.dev/schemas/mock.json", "instrument_schemas": [ "https://ucp.dev/schemas/shopping/types/card_payment_instrument.json" ], "config": { "supported_tokens": [ "success_token", "fail_token" ] } }
    ]
  }
}
マニフェストの中身

4. エージェントでチェックアウト機能を呼び出す

 エージェントは、サンプル製品を含むチェックアウトセッションを作成するコマンドを実行する。サーバからチェックアウトIDを受け取ることで、その後のセッション更新が可能になる。

export RESPONSE=$(curl -s -X POST "$SERVER_URL/checkout-sessions" -H 'Content-Type: application/json' -H 'UCP-Agent: profile="https://agent.example/profile"' -H 'request-signature: test' -H 'idempotency-key: 0b50cc6b-19b2-42cd-afee-6a98e71eea87' -H 'request-id: 6d08ae4b-e7ea-44f4-846f-d7381919d4f2' -d '{"line_items":[{"item":{"id":"bouquet_roses","title":"Red Rose"},"quantity":1}],"buyer":{"full_name":"John Doe","email":"john.doe@example.com"},"currency":"USD","payment":{"instruments":[],"handlers":[{"id":"shop_pay","name":"com.shopify.shop_pay","version":"2026-01-11","spec":"https://shopify.dev/ucp/handlers/shop_pay","config_schema":"https://shopify.dev/ucp/handlers/shop_pay/config.json","instrument_schemas":["https://shopify.dev/ucp/handlers/shop_pay/instrument.json"],"config":{"shop_id":"d124d01c-3386-4c58-bc58-671b705e19ff"}},{"id":"google_pay","name":"google.pay","version":"2026-01-11","spec":"https://example.com/spec","config_schema":"https://example.com/schema","instrument_schemas":["https://ucp.dev/schemas/shopping/types/gpay_card_payment_instrument.json"],"config":{"api_version":2,"api_version_minor":0,"merchant_info":{"merchant_name":"Flower Shop","merchant_id":"TEST","merchant_origin":"localhost"},"allowed_payment_methods":[{"type":"CARD","parameters":{"allowedAuthMethods":["PAN_ONLY","CRYPTOGRAM_3DS"],"allowedCardNetworks":["VISA","MASTERCARD"]},"tokenization_specification":[{"type":"PAYMENT_GATEWAY","parameters":[{"gateway":"example","gatewayMerchantId":"exampleGatewayMerchantId"}]}]}]}},{"id":"mock_payment_handler","name":"dev.ucp.mock_payment","version":"2026-01-11","spec":"https://ucp.dev/specs/mock","config_schema":"https://ucp.dev/schemas/mock.json","instrument_schemas":["https://ucp.dev/schemas/shopping/types/card_payment_instrument.json"],"config":{"supported_tokens":["success_token","fail_token"]}}]}}') && echo $RESPONSE
チェックアウト機能の呼び出し(セッション作成のPOSTリクエスト)
RESPONSE:
{
  "ucp": { "version": "2026-01-11", "capabilities": [ { "name": "dev.ucp.shopping.checkout", "version": "2026-01-11" } ] },
  "id": "cb9c0fc5-3e81-427c-ae54-83578294daf3",
  "line_items": [ {
      "id": "2e86d63a-a6b8-4b4d-8f41-559f4c6991ea",
      "item": { "id": "bouquet_roses", "title": "Bouquet of Red Roses", "price": 3500 },
      "quantity": 1,
      "totals": [ { "type": "subtotal", "amount": 3500 }, { "type": "total", "amount": 3500 } ]
    } ],
  "buyer": { "full_name": "John Doe", "email": "john.doe@example.com" },
  "status": "ready_for_complete",
  "currency": "USD",
  "totals": [ { "type": "subtotal", "amount": 3500 }, { "type": "total", "amount": 3500 } ],
  "links": [],
  "payment": { "handlers": [], "instruments": [] },
  "discounts": {}
}
呼び出し結果
UCPを活用したショッピング体験のイメージ 会話型UIでの商品発見から、情報の入力を省いたスムーズな決済までが完結する(提供:Google) UCPを活用したショッピング体験のイメージ 会話型UIでの商品発見から、情報の入力を省いたスムーズな決済までが完結する(提供:Google)

5. エージェントでチェックアウトリクエストに割引を適用する

 前のステップで生成されたcheckout_idを用いることで、エージェントに対して特定のチェックアウトセッションにのみ割引を適用するよう指示を出すこともできる。

export CHECKOUT_ID=$(echo $RESPONSE | jq -r '.id') && export LINE_ITEM_1_ID=$(echo $RESPONSE | jq -r '.line_items[0].id') && export RESPONSE=$(curl -s -X PUT "$SERVER_URL/checkout-sessions/$CHECKOUT_ID" -H 'Content-Type: application/json' -H 'UCP-Agent: profile="https://agent.example/profile"' -H 'request-signature: test' -H 'idempotency-key: b9ecd4b3-0d23-4842-8535-0d55e76e2bad' -H 'request-id: 28e70993-e328-4071-91de-91644dc75221' -d "{\"id\":\"$CHECKOUT_ID\",\"line_items\":[{\"id\":\"$LINE_ITEM_1_ID\",\"item\":{\"id\":\"bouquet_roses\",\"title\":\"Red Rose\"},\"quantity\":1}],\"currency\":\"USD\",\"payment\":{\"instruments\":[],\"handlers\":[]},\"discounts\":{\"codes\":[\"10OFF\"]}}") && echo $RESPONSE | jq
チェックアウトセッションへの割引適用(PUTリクエスト)
RESPONSE: 
{
  "ucp": { "version": "2026-01-11", "capabilities": [ { "name": "dev.ucp.shopping.checkout", "version": "2026-01-11" } ] },
  "id": "cb9c0fc5-3e81-427c-ae54-83578294daf3",
  "line_items": [ {
      "id": "2e86d63a-a6b8-4b4d-8f41-559f4c6991ea",
      "item": { "id": "bouquet_roses", "title": "Bouquet of Red Roses", "price": 3500 },
      "quantity": 1,
      "totals": [ { "type": "subtotal", "amount": 3500 }, { "type": "total", "amount": 3500 } ] } ],
  "buyer": { "full_name": "John Doe", "email": "john.doe@example.com" },
  "status": "ready_for_complete",
  "currency": "USD",
  "totals": [ { "type": "subtotal", "amount": 3500 }, { "type": "discount", "amount": 350 }, { "type": "total", "amount": 3150 } ],
  "links": [],
  "payment": { "handlers": [], "instruments": [] },
  "discounts": {
    "codes": [ "10OFF" ],
    "applied": [ { "code": "10OFF", "title": "10% Off", "amount": 350, "automatic": false, "allocations": [ { "path": "subtotal", "amount": 350 } ] } ]
  }
}
呼び出し結果

 「UCPはチェックアウト機能だけでなく、ID連携や注文管理など購買体験を支える拡張性を備えており、GitHubリポジトリを参照して試すことができる」と、Googleは述べている。

Copyright © ITmedia, Inc. All Rights Reserved.

アイティメディアからのお知らせ

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2026
人に頼れない今こそ、本音で語るセキュリティ「モダナイズ」
4AI by @IT - AIを作り、動かし、守り、生かす
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。