エージェンティック・コマース・スタック — アーナフ・プリオ(Best Buy)
AAI Engineer
Internet TechnologyBusiness NewsComputing/Software
Transcript
00:00:00私の名前はアナフ・プリヨです。Best Buyでシニア・エンジニアリング・マネージャーを務めています。私とチームは現在
00:00:18「エージェント・コマース(Agentic Commerce)とは何か」「どうすればお客様の
00:00:23ニーズに合わせて、その場に寄り添えるのか」について取り組んでいます。そして、その最新の場となるのがエージェント・サービスです。
00:00:29本日は発表の機会をいただけて嬉しく思います。ところで、私の実績は何でしょうか?幼い頃からずっと
00:00:35高スループットな推論を夢見、コンテキストウィンドウの中で自分のツールを駆使し、
00:00:40評価(evals)でしっかりと管理してきました。…ええ、まったくその通りです。2003年には、そんなものは
00:00:47確実に存在していました(冗談です)。この1年間で、私たちは多くのことを学んできました。ショッピングというものは
00:00:54目新しいものではありません。ショッピングはおそらく、人が行える最も楽しいことの一つであり、また最も
00:00:58経済が存在して以来、人々が必要としてきた最も不可欠なことの一つです。しかし、私はこの動向に非常に興奮しており、
00:01:05自分が学んできたことについてお話しし、その知見を共有できればと思っています。では、エージェント・コマースとは何でしょうか?
00:01:11ここでは幅広い定義を改めて説明するつもりはありません。基本的には、AIアシスタントがショッピングの
00:01:17プロセスを支援してくれるという概念です。ショッピングにはさまざまな側面があります。例えば、発見(ディスカバリー)があり、
00:01:24「自分にとって本当に必要なのだろうか?」という側面の検討があります。理解し、決断することです。ロイヤルティ(忠実度)もあり、
00:01:31価格設定、配送(フルフィルメント)、そして配送後まであります。非常に多くの要素が含まれています。そして信じられないかもしれませんが、
00:01:37現在、ChatGPT.comやGoogle Geminiといった主要プロバイダーで行われている
00:01:44エージェントセッションの約45%が、ショッピングに関連するものです。私があまり使っていないという点で偏見があるかもしれませんが、
00:01:51私はエンジニアです。しかし、世の中の人々はAIを使い、ショッピングの旅をサポートしてもらうためにAIと対話しています。
00:01:58また、これは二者択一の話ではありません。現在、私たちは人間が介在する「ヒューマン・イン・ザ・ループ」の
00:02:04状態にあります。理想的な状態は自律型ショッピングです。自分が興味のあることを伝えると、
00:02:11エージェントがあちこちを回り、さまざまな加盟店と交渉します。私はもともとバングラデシュの出身なので、
00:02:17店員とよく値引きの交渉をします。エージェントがそんな風にして交渉し、支払いまで済ませてくれるかもしれません。しかし現在は、
00:02:24ヒューマン・イン・ザ・ループの段階にあります。本日の講演では、現在そのヒューマン・イン・ザ・ループが
00:02:30どのように機能しているのかというメンタルモデルについてお話しします。さらに、ご自身で拡張したい場合の
00:02:36アーキテクチャや、自律型ショッピングがどのように機能するかのビジョンについてもご紹介します。さて、これは私たちの最初の試みではありません。
00:02:411年前でさえ、これをどう自動化できるか模索している人たちがいました。今でも、
00:02:50ClaudeのChrome拡張機能をダウンロードできるでしょう。必要なものをAIに伝えるAtlasなどを利用したことが
00:02:56あるかもしれません。ヘッドホンが必要だとか、買おうと思いながらも時間がなくて
00:03:02実際に店に行く手間をかけられずにいた食料品の買い物リストがある場合などです。
00:03:10「代わりにスクリーンショットを撮り、DOMを読み込み、加盟店のサイトに移動してフォームに記入し、
00:03:16ロイヤルティの手続きをしてくれないか」と頼むわけです。しかし、それは期待通りにはうまくいきませんでした。本当にぎこちなく、遅く、壊れやすかったのです。そして、
00:03:23商品を販売しようとしている加盟店側のエンジニアリング部門なら誰もが、「ブラウザを偽装したAIが訪れるのは、
00:03:31あらゆるアラームを鳴らすようなものだ」と言うでしょう。そのため多くの場合、
00:03:36AIを使って注文を完了させたくないという理由で、決済のフローで足止めを食らうことになります。
00:03:46少なくとも、当時はそういうことが起きていました。では、実際に機能したのは何だったのでしょうか? そして現在、
00:03:53実際に機能しているのでしょうか? 実際におり、ChatGPTのショッピングやGoogleのAIモードがまさにそれを実現しています。
00:04:00現在、エージェント・コマースは70億ドル規模の産業とみなされており、2030年までに650億ドル規模に成長する可能性があります。
00:04:11そして購入者の大半は、ブラウザやアプリ上にある主流の会話型AIアシスタント(ChatGPTやGoogle Geminiなど)を利用しています。
00:04:19また、InstagramやFacebookでもそれが登場しているのが見られます。Metaは現在「メタ・コマース」を行いたいと考えています。
00:04:25GoPuffとGrokが提携してアプリを作ったという話も聞きました。さらに、Microsoft Copilotもつい昨日、
00:04:31イギリスにおいてMicrosoft Copilot内でRay-Banを購入できるようになったと発表しました。
00:04:40それを実現するために、GoogleとOpenAIはそれぞれ独自にACPとUCPという小さなプリミティブを開発しました。
00:04:45これらは基本的に、私たちが実際にどのようにやり取りするべきかについてのものです。顧客としてショッピングをしている
00:04:55側の人々にとっては、カートに商品を追加することや、数量を2つに増やすことの間に大きな違いはありません。
00:05:02しかし私たち加盟店側にとっては、それは2つ目の明細行なんですよ、皆さん。同じスキルではありません。
00:05:08したがって、コマースのニュアンスやプリミティブについて議論し、標準化しなければ、物事はうまく機能せず、ぎこちないままになってしまいます。
00:05:14そのため、ACPはそれに対するChatGPTの試みであり、Universal Commerce Protocol(UCP)はそれに対するGoogleの試みでした。
00:05:20さて、これが実際に起きていることだという前提をすでに確立したので、
00:05:25ChatGPTやGeminiに行って「猫用のクッキーを見つけて」と頼むのと同じくらい簡単に起きているのだと言いたいです。
00:05:33この例でなぜ猫用のクッキーを選んだのかについては後ほど詳しく触れます。AIが商品を提示し、エージェントが加盟店のチェックアウトAPIを呼び出し、
00:05:39ブラウザは使わず、決済フローはスコープ付きの支払いマンドレートや委任された支払いトークンを介して行われ、注文が確定します。
00:05:47人間はカートに触れる必要がほとんどありません。ユーザー側で起きているこれらすべての裏側で、
00:05:54ブラウザは使わず、決済はスコープ付き決済 mandate や委任決済トークンで行われ、注文が確定して
00:06:02別の日にはA2A、ACP、UCP、AP2といった具合です。一体何が現実なのでしょうか? もし明日誰かが私のもとにやって来て
00:06:09「HYPEというものを思いついたんだ」と言ったら、私はおそらくそれが本当に実在するものだと思ってしまうでしょう。
00:06:15そこで、このメンタルモデルについてさらに学んだことを踏まえて、皆さんのために分解して説明したいと思います。
00:06:23MCPは依然としてModel Context Protocolであり、AIエージェントがツールを特定する方法です。
00:06:29ですから、このAIエージェントの仕様がどのようなもので、どのような商品を保有しているかを示したり、
00:06:35特定商品の詳細を示したり、ロイヤルティを示したりするために、この仕様がどうなっているかを把握できるかもしれません。
00:06:40A2Aはエージェント同士の通信方法であり、一種の仕様に近いものです。ACPやUCPは
00:06:46プリミティブであり、AP2はGoogleのオープン仕様であるエージェント型決済プロトコル(Agentic Payment Protocol)のスコープ付き支払いマンドレートです。
00:06:53これらすべてについて、エージェント型ショッピングとどのように関連しているのかを1つずつお話ししていきましょう。さて、
00:07:00MCPによるツールアクセスは非常に重要です。さまざまな機能を把握し、それらの機能を利用して
00:07:06コンテキストに組み込み、ユーザーのメモリを理解する時間を取らなければ、エージェントはあなたが何をしようとしているのか決して把握できません。
00:07:14そして、特定の機能にアクセスする唯一の方法は、MCPツール呼び出しを介することです。次がA2Aです。
00:07:19さて、これをアーキテクチャ化する方法や、先ほどお話しした決済などのさまざまな機能には異なるアプローチがあります。
00:07:24例えば、何と言いましたっけ…ロイヤルティなどです。特定のドメイン自体に関するエージェントを作成することもできます(失礼)。
00:07:32その通りですね。特定のドメインレベルのエージェントがある場合、エージェント同士が通信する必要があります。お互いに通信するための
00:07:38標準化された方法を見つける必要があります。そのため、A2Aの仕様はそのギャップを埋める役割を果たします。また、
00:07:46顧客エージェントと加盟店エージェントが通信する必要がある場合、両方ともエージェントなのだから、A2Aを利用できるかもしれません。
00:07:52では、UCP/MCPのプリミティブについてです。最も重要なデータは商品データです。
00:07:59したがって、UCPは商品データをより組織化された方法で追加できるようにします。そしてACPも同様のことを行います。
00:08:04なぜなら、あなたのPDP(商品詳細ページ)を巡回してクロールし、すべての特定の属性を把握したくはないからです。
00:08:13加盟店の皆さん、どうか私たちに教えてください。さらに、それらの商品は頻繁に変更されます。ですから、変更されたときにも教えてもらえると良いでしょう。
00:08:23このように送信してください。そうした種類のデータフローが商品フィード内で起きています。
00:08:29通常、これは検索カタログであると推測されるでしょう。しかし現在のところ、ACPとUCPの両方において、
00:08:35つまりGeminiとChatGPTはその検索カタログの呼び出しをサポートしていません。彼らはあなたにそのフィードを直接送信してほしいと考えています。
00:08:42「なぜそんなことをしないのか」と思う方のために説明すると、それには理由があります。スポンサープロダクト、
00:08:47リテールメディア、関連する事項やランキングなどです。しかし最も重要な技術的課題は、
00:08:54M個の加盟店とN個の商品がある場合、その数だけ呼び出しを行わなければならなくなるという点です。一方、商品フィードを事前に送信しておけば、
00:08:59インデックス化して、何かを求められたときにすぐにオフロードできるように準備しておくことができます。
00:09:05Metaの商品フィードの例も載せておきました。ご覧のとおり、似てはいますが依然として異なります。
00:09:10誰もが自分の意見を持っており、自分の意見が最高だと思っています。そしてそれに基づいて進めているため、
00:09:16ここには3つの異なる仕様が存在しています。さて、商品フィード、相互通信、ツールの呼び出しについてお話ししましたので、
00:09:22次は決済についてお話ししましょう。現在、どのシステムもX402やその他のような、より自律的な形式の支払いをサポートしていません。
00:09:27まだそこまでの段階には達しておらず、まだ自信が持てていないのです。私たちは、
00:09:32加盟店のヒューマン・イン・ザ・ループが、責任、あるいはこの場合は
00:09:37実際に支払いを開始するための法的責任を負う決済プロセッサと対話することを望んでいます。そのためChatGPTでは、
00:09:47支払いは現在、共有決済トークンを介してのみ行われます。そしてGeminiのUCPでは、
00:09:51支払いはGoogle Payを通じてのみ受け付けられています。スコープ付きのマンドレートは、商品が何であるかを教えてくれます。
00:09:58責任、つまりこの場合は実際に支払いを開始する法的責任を負うためです。したがって、ChatGPTでの支払いは
00:10:04お分かりいただけるでしょうか? 頭字語が本当にたくさんありますよね。AP2はむしろ、
00:10:10「もし自律的な処理を行いたい場合、エージェントを承認したのは誰かを教えてもらえるか? 正確に何を
00:10:17購入できるのか? そして、もしかしたら価格交渉できる上限額はいくらか?」といったことに関するものです。そして取消用URLや
00:10:25もう少し詳しく言うと、自律型処理を行う場合
00:10:30エージェントを承認したのは誰か?何を購入できるのか?価格交渉の上限額はいくらか?といった点を
00:10:38無効化URLやユーザー同意証明とともに管理します。さて、説明はこの辺にして、私はものづくりが好きなので
00:10:45今回のために小さなデモを用意しました。以前ネコのクッキーの例を覚えている方もいるかもしれませんが
00:10:52デモの主役も我が家のネコだからです。ジニーという茶トラのネコなんですが、この架空の例ではジニーが
00:11:01ベーカリーのエージェントに変身しています。焼き菓子を売って自分で生活費を稼ぎたいようです。現在使っている
00:11:08モデルはCerebrasのもので、秒間3000トークンという速度が出ます。そのため、非常に
00:11:13高速に動作するはずです。一連のフロー全体の実例をお見せできるでしょう。Chrome DevToolsのように
00:11:20何が起きているかを表示するためのツールをいくつか用意しています。まずは焼き菓子を売っている
00:11:26美しい愛猫であり、現在は焼き菓子を売っているジニーに話しかけます。こんにちは。あなたの全商品について教えて。
00:11:36これはデモ、つまり実例の想定です。そしてジニーはまさにその通りに答えてくれました。必要となるあらゆる異なる商品をです。
00:11:44では、これを見てみましょう。エージェント間プロトコルによって、顧客エージェントであるジニーからマーチャントエージェントへと実際に呼び出しが行われました。
00:11:50これが送信されたメッセージです。そしてこれが、私がメッセージを受け取ったところです。
00:11:55マーチャントエージェントが完了したタスクを返しています。私がこれを見つけた方法はと言うと、
00:12:03商品検索というMCPツールの呼び出しを通じたものです。自分の本当の望みをうまく伝えられないのではなく、
00:12:13ジニーは、商品を検索したいという意図を与えたとき、プロダクトサーチというMCPツールを呼び出すべきだと把握してくれました。
00:12:20ですから、今私たちはこれを目にしています。では、何かを追加したい場合はどうでしょうか。
00:12:27ショートブレッドをカートに追加して。
00:12:39さて、今度はジニーが割引やプロモコードについて尋ねてきています。実は私、割引やプロモコードの類を一切覚えていないのですが。
00:12:46もしジニーに、「ねえ、割引コードを教えてよ」と尋ねたらどうなるでしょう? お分かりの通り、私はかなりの値切り屋ですね。
00:12:54ジニーは教えてくれません。分かりました。割引コードなしで
00:13:04割引コードなしでチェックアウトを進めます。その通り。では、それらの呼び出しをいくつか実行しています。ここに
00:13:13UCPプロトコルがあり、チェックアウトAPIが状態を持つことになります。3つの異なる状態とは、
00:13:19支払い準備未完了、支払い準備完了、そして完了です。さて、ここではデリゲーション決済トークンは使用していません。
00:13:25Google Payも使っていません。私はAP2が好きなので、私のデモはAP2をベースに構築されています。ご覧の通り、
00:13:34ここではチェックアウト作成用MCPサーバーを介して呼び出しが行われました。そしてUCPのエンドポイントが
00:13:42「チェックアウトセッションを呼び出し、カートに追加されたかどうかを教えて」と伝えてくれます。つまりカートに追加はされましたが、
00:13:49まだ支払い準備はできていません。何で支払うかを選ぶ必要があります。私はクレジットカードとデビットカードを指定します。
00:13:56そしてここでAP2トークンを発行し、それを希望する旨を伝えます。すると状態が、準備未完了から支払い準備完了、そして完了へと移行しました。
00:14:03これがUCPの仕様面のもう一つの側面ですね。もう一つの側面として、
00:14:12比較を行うためにACP仕様とどう違うのかを示すため、ここにはACPも追加してあります。
00:14:19ですから、同じチェックアウト呼び出しを見ることができますが、利用されているスキーマが異なっており、
00:14:26注文が処理されます。しかし、先ほどお話ししたAP2トークンを覚えているでしょうか? 実生活ではこのように
00:14:33見えるはずです。ユーザーデモでは、最大金額がこれくらい、通貨がこれくらいとなります。もし
00:14:39取り消したければ取り消せます。そして上限額については、ここでは値引き交渉をしたくなかったので、単にその
00:14:45最大金額を設定しました。また、これは単回限りの使用でもあります。このデモにはタイムラインも付属しているため、
00:14:53実際にこれらを開いて、何が起きているかを確認できます。先ほどお話ししたカタログについてですが、
00:15:00彼らは検索を行わないため、実際には商品フィードを作成して彼らに送信しています。それも追加してあります。
00:15:08フィードについては、構造が非常に異なるため、実際に比較する場所が用意されています。ここではフィードが呼び出されていますが、
00:15:17ちなみに、タイムラインを見に行くと、何が在庫にあって何がないのか、数秒おきにカタログを
00:15:23同期しようとしています。これがUCPのもので、こちらがメタのものです。ここまでお見せしてきましたが、
00:15:32この同じデモやコンセプトを再利用することもできます。もし外部の
00:15:39GeminiやChatGPT上のエージェントコマースを行いたくない場合はどうでしょうか? ご自身のウェブサイト上で、マーチャントエージェントやジニーの
00:15:46カスタム実装を独自に構築することも依然として可能です。もしかしたら私もネコグッズの販売を始めるかもしれません。その際これの一部を再利用できますが、
00:15:55こうしたプリミティブ(基本要素)の一部を検討し、それを利用してみることをお勧めします。なぜならそれらは
00:16:00マーチャント間で標準化されているからです。そのため十分に練られており、さらに、
00:16:05ChatGPTやGeminiなどの外部向け販売でもおそらく再利用できるでしょう。さて、割引コードについて
00:16:14お話ししたのには理由があります。このデモを構築する中で、そして私がベストバイで
00:16:19Best Buyでのエージェントコマース構築の経験から、AIや会話型エクスペリエンスを扱う際
00:16:24評価(evals)なしで行うのはモグラ叩きのようなものです。ですから、顧客基盤を確認するために
00:16:29Gini.comのウェブサイトのような同じアーキテクチャの採用を検討するなら、評価(evals)の作成について真剣に考えてください。
00:16:38これ以上強調しきれないほど重要なことの一つが、テスト、テスト、そしてテストを行うべきだという点です。こちらに移動すると、
00:16:46自分のスクリプトを実行したり、評価(evals)を実行したりすることもできます。この評価用フォルダには、それらの評価がすべて入っています。私がコードも
00:16:57お見せしている理由は、ここにはテンプレートフォルダがあるからです。では、スライドに戻りましょう。
00:17:08そして評価を行わないと、このような事態が起きかねません。私はチポトレが大好きです。それが本当かどうかは
00:17:14分かりませんが、とても面白かったのでこの話をします。何が起きたかと言うと、チポトレが
00:17:21エージェントを展開した際、人々がそれを使ってプログラミングの質問をし始めたのです。もし
00:17:29エージェントに対してそのような類いのことを許可しないよう指示しておかないと、人々は利用してしまいます。これは間違いなく、
00:17:35クラウドのサブスクリプション料金を支払いたくないときに、無料でAIを利用するための最もクリエイティブな方法の一つです。私たちが評価を作成し、
00:17:42徹底的にテストを行わないと、本番環境でそのようなことが起こってしまいます。割引コードが教えてもらえたり、時には
00:17:51ほかに誰がこの商品をチェックアウトしているのかといった、さらに機密性の高いことまで漏れてしまいます。ですから、
00:17:58強くお勧めしたい評価のタイプは、行動評価やプロトコル準拠の評価です。なぜなら私たちがそれを販売する際、
00:18:03例えばgpt、chatgpt.comやGeminiに展開するとき、フィードが実際に準拠していることを確認しなければ、サポートしてもらえないからです。
00:18:08レイテンシのベンチマークについても考えるべきです。ショッピングの過程で販売に至っていない小売りの毎秒ごとにおいて、
00:18:14他のウェブサイトのほうが速く、人々がそちらに移動してしまったり、あるいはもう
00:18:20面倒になってやめてしまったりする可能性が存在するからです。
00:18:25最後に、品質判定員としてのLLMの利用もお勧めします。何も凝ったものを使う必要はありません。
00:18:32プロダクト担当の友人に相談して、最善のやり方を見極め、最高のユースケースを活用して書き出してください。
00:18:39そして、これらすべてについて議論した上で、現在実際に安定しているものと、
00:18:46まだ形成段階にあるものについても触れておきたいと思います。MCPは広く採用されています。A2Aも広く使われています。
00:18:52UCPやACPはすでに登場しています。しかし、まだ形成段階にあるのは、AP2とその実際の活用、
00:19:00ACPとUCPの収束、常に2つの異なる仕様に対応しなければならないのかという点、識別定数標準、そしてマルチエージェントのチェックアウト委任です。
00:19:05ですから、今日ここで何かを持ち帰っていただけるなら、エージェントコマースがどのように機能するのかについての
00:19:14良好なメンタルモデルを持って帰っていただければ幸いです。あなたに売り込むものは何もありませんが、プレゼントはあります。
00:19:19私はエージェントコマースが本当にエキサイティングだと感じています。そのため、このプレゼンテーション全体をGitHubで見つけていただけます。
00:19:25またテンプレートも作成しました。3サービスのスターターです。顧客エージェントを行いたい場合でも、
00:19:31マーチャントエージェントを行いたい場合でも可能です。私は評価(evals)を愛しており、それが私の命を救ってくれたため、
00:19:37評価用テンプレートも用意しています。そして、1社だけでなくすべてのマーチャントにそれを送信したい場合、
00:19:43自社製品を入力し、ACP、UCP、またはメタに変換してそこで販売できるようにするためのカタログ同期プロセスも用意してあります。
00:19:49そして最後になりますが、私たちが知ってのとおり、昨今では
00:19:56あのようなコードの書き方はしません。もしテンプレートを渡したとしても、「ふーん」と思われるでしょう。そのため、
00:20:01マーチャントエージェントや顧客エージェント、そして私たちが話してきたこれらすべての異なるカタログ同期を具体的に行うエージェントスキルを用意しています。
00:20:08素晴らしい時間を過ごし、私がこのプレゼンをしたのと同じくらい学び、楽しんでいただけたなら幸いです。
00:20:15ありがとうございました。私の名前はアヌップ・プリヨです。また近いうちにお会いできることを願っています。
00:20:32それでは