FORSMILE
EN
AI2026/11/13

メルカリの商品カタログ連携:変換ルールをGoのコードからプロンプトへ移し、プロンプト作りもエージェントに任せた。連携件数は40倍以上、工数は約55%減(メルカリの記載、導入前後の比較)

メルカリのエンジニアリングブログが2026年11月10日、社外の商品データをメルカリのカタログの形に変える処理を、ルールベースからLLMとエージェントに作り直した事例を公開しました。出力の形を縛り、重複判定はコードに残し、誤りは運用ループで直す構成です。ポケモンカード1,000件のオフライン評価で全項目正解率は69.6%から85.2%に上がったといいます。確認できる構成と、数字の読み方を整理します。

← ブログ一覧へ / Back to Blog

メルカリのエンジニアリングブログが2026年11月10日に、社外の事業者が持つ商品データを、メルカリの「商品カタログ」の形に変える処理を、AIを前提に作り直した事例を公開しました。以前は、人が決めたルールをGoのバッチで実装していました。新しい方式は、変換ルールを自然言語のプロンプトに移し、LLMに変換させ、そのプロンプトを書く作業もAIエージェントに任せるものです。メルカリは、導入した四半期に「ほぼ同じ人数で6カテゴリーを連携でき、連携件数は導入前の40倍以上、新しいカテゴリー1つを連携する工数は約55%減った」と書いています。

先に、数字の読み方を分けます。「全項目が正しい」レコードの割合は、ポケモンカード1,000件のオフライン評価で、ルールベースが69.6%、本番で使うモデル(gpt-5.4-mini)にエージェントが調整したプロンプトを使うと85.2%でした。この評価はポケモンカードだけで、15項目すべてが一致して初めて正解という厳しい指標です。40倍や55%は、導入した四半期と導入前の四半期の比較で、条件をそろえた実験ではありません(メルカリの記載)。下で、確認できる構成から順に整理します。

何を置き換えたのか

  • ▸対象:商品カタログへの外部データの連携。商品カタログは、「製品そのもの」を1つにつき1レコードで持つマスタデータです。出品(個体)はその製品に紐づきます。ポケモンカードなら、「ピカチュウex」のような1枚のカードが1レコードで、カード名・収録セット・レアリティ・カード番号などの属性を持ちます。人が1件ずつ登録するだけでは、網羅できる商品に限界があるので、商品データを持つ事業者のデータを取り込みます
  • ▸変換が必要な理由:外部のデータは、その事業のために作られていて、たとえばカード名・レアリティ・加工が、商品説明の文章の中にまとめて書かれていることがあります。メルカリのカタログは、それらを別の項目として持つので、文章から抜き出す必要があります。ほかにも、表記をそろえる、カタログとして掲載するかを決める、商品名や説明文を組み立てる、といった作業があります
  • ▸旧方式:カタログスペシャリスト(データとドメインに詳しい担当者)がルールを仕様書にまとめ、エンジニアがGoのバッチに実装していました。レアリティの「SR」やセット売りの「まとめ売り」など、文字列や辞書で探すルールです
  • ▸旧方式の限界は2つ。書き方は同じレアリティでも「SR」「スーパーレア」と分かれ、新しい書き方が出るたびにルールを足すことになり、足す間は取りこぼします。ルールを直すには、仕様書の更新・実装・テスト・レビュー・デプロイを踏むので、スペシャリストは自分で直せません。また、新しいカテゴリーを連携するたびに作業を一からやり直すので、1四半期に1カテゴリーが限界でした

ブログで確認できるアーキテクチャ(2つの部品)

  • ▸LLM Data Conversion(変換の仕組み):外部データの1レコードと、変換プロンプトを、LLMに渡します。LLMの出力は、出力スキーマに沿ったJSONで受け取り、それをコードでメルカリのカタログの属性に対応付けて登録します。本番では、外部データを取り込む既存のバッチのうち、変換の部分だけをこの仕組みに置き換えました。変換ルールの大部分は、「セット売りは掲載しない」のように、パターンの列挙ではなく意味でプロンプトに書きます。細かな表記の違いは、LLMが吸収します
  • ▸プロンプトはMarkdownのファイル:リポジトリにMarkdownとして置くだけで、ほぼそのまま本番の変換に使われます。そのため、連携を始めたあとに誤りや新しい書き方が見つかっても、スペシャリストがエンジニアを介さずにルールを直せます。ルールが固まったあと、エンジニアがするのは、バッチにプロンプトを登録して少しのコードを足すことです
  • ▸Prompt Generation Agent(プロンプトを作るエージェント):スペシャリストが、Claude Codeに「ワンピースカードの変換プロンプトを作って」のように頼むと、データの調査・プロンプトの作成・サンプルでの評価・改善までを、対話しながら進めます。新しいアプリではなく、Agent Skills(手順書・参考資料・スクリプトの一式)として作って配布しました。手順を良くしたいときは、指示書を書き換えるだけです
  • ▸エージェントの5つのステップ:①対象のカテゴリー・提供元・既存の資料を確かめる。②社外データをBigQuery上でSQLで調べ(欠損率、値の分布、表記の違い、鑑定品やセット売りのような例外)、メルカリの属性との対応を整理して、スペシャリストに確かめてもらう。③プロンプトと出力スキーマを作る。④数百件で手元で実行して評価する。⑤問題があれば③に戻り、評価を通ったものを確定版として出す。数百を超える列があるデータで、人が何日もかけていた確認が、対話しながら数十分で終わる、と書かれています
メルカリの商品カタログ連携:変換はLLM、プロンプトはエージェント、重複判定はコード

LLMの誤りを、どう抑えているか

  • ▸①出力の形を縛る。LLMを呼ぶときにStructured Outputs(項目と取りうる値をJSON Schemaで渡すと、その形のJSONしか返さなくなる機能)を使います。レアリティを「SR」などの決まった値から選ぶ項目にすれば、「スーパーレア」のような決めていない書き方や、項目の抜けは起きません。ただし、縛れるのは形までで、決められた値の中から別の値を選ぶ誤りは防げない、とも書かれています
  • ▸②LLMに任せることと、任せないことを分ける。基本は任せますが、ロジックが単純で任せる利点が小さい処理と、出力が揺れるとデータの整合性が崩れる処理は、あえてコードで書きます。例は、メルカリのカタログにすでにある商品は新しく登録しない、という判定です。ここが揺れると同じ商品のレコードが2つできるので、コードで行い、テストで保証しています。どちらに分けるかは、実際のサンプルを手元で変換して、出力の揺れを見て決めます
  • ▸③誤りを見つけて直す運用ループ。登録したデータを定期的に確かめて誤りを見つけ、まずその場で手で直します。ただ、バッチは外部データを取り込むたびに変換し直すので、手で直しただけでは次の更新で元の誤りに戻ります。そこで、直したデータにフラグを付けて、バッチの更新から外し、誤りの原因のプロンプトを直します。直したプロンプトは、本番と同じコードで変換し、登録せずに結果をCSVに出すdry-runで、直したい誤りが直ったか、これまで正しかったデータが崩れていないかを確かめます。本番に入ったらフラグを外して、更新に戻します

確認できる数字(メルカリの記載)

  • ▸オフライン評価の設定:ポケモンカード。社外データとメルカリのカタログの組を1,000件取り出して評価用にし、エージェントは、調整のあいだ評価用のデータを見ず、開発用のデータだけを見ました。採点はカード名・収録セット・レアリティ・カード番号など15項目の完全一致で、主な指標はすべての項目が正しいレコードの割合(全項目正解率)です。プロンプトを作る側のエージェントは、Claude Code上で動かし、モデルはClaude Opus 5.5と書かれています
  • ▸ルールベースの全項目正解率:69.6%。
  • ▸本番で使うgpt-5.4-mini:例を並べただけのプロンプト(Few-shotのみ)は66.2%(ルールベースを下回る)。エージェントが調整したプロンプトは85.2%で、ルールベースを15.6ポイント上回りました。調整では、入力にない値を自分の知識で補ってしまう誤りを防ぐ「入力にない値を補わない」といったルールを足し、選択肢の並べ方を工夫したと書かれています
  • ▸より性能の高いgpt-5.6:Few-shotのみで92.3%、調整後は98.7%で、ルールベースを29.1ポイント上回りました。本番で使っているのはgpt-5.4-miniで、コストも考えた選択と書かれています
  • ▸導入した四半期の成果(導入前の四半期との比較):導入前は1四半期に1カテゴリーが限界だったが、ほぼ同じ人数で6カテゴリーを連携し、連携した件数は導入前の40倍以上。新しいカテゴリーを1つ連携するまでの工数は約55%減。特に、社外データの中身の確認と変換処理を作る作業は、導入前の3分の1以下。LLMの利用料は新しくかかるが、1件あたりはごくわずかで、人手でルールを作る工数と比べて十分に小さい、とある(金額は書かれていません)

数字の読み方(当サイトの見方)

  • ▸「85.2%」は、ポケモンカード1,000件・15項目すべて一致という指標での値です。ほかのカテゴリーや、実際に運用しているデータ全体の精度ではありません。1項目でも誤れば不正解になるので、項目ごとの正解率より低く出る、とブログも書いています
  • ▸「40倍以上」は、ブログの表現では「連携した件数」です。何の件数か(カタログのレコードか、外部データの件数か)は、ブログの本文からは確かめられませんでした。カテゴリー数(1→6)とは別の数字です
  • ▸「約55%減」は、新しいカテゴリー1つあたりの工数です。導入した四半期と、導入前の四半期の比較で、条件をそろえた実験ではありません
  • ▸「98.7%」は、本番で使っていないモデルの値です。本番のgpt-5.4-miniの85.2%と混ぜないでください。同じFew-shotでも、gpt-5.4-miniは66.2%、gpt-5.6は92.3%と、モデルの世代で差が大きく、調整しても埋まりきらない、とブログは書いています
  • ▸モデル名は、ブログの記載どおりです。当サイトでは、各モデルの仕様や提供状況を確認していません

まだ人手が残っているところ

メルカリ自身が、誤りを見つけて直すループには「まだ人の手が多く残っている」と書いています。誤りは、人が定期的にデータを確かめて見つけ、プロンプトの修正を本番に反映するにはリリースが要ります。連携するカテゴリーが増えるほど、ここがボトルネックになる、とあります。次の計画として、自動評価で誤りを見つけ、エージェントが修正案を作り、デプロイなしで本番に反映できるようにして、スペシャリストの役割を、修正案の確認と承認に寄せていく、と書かれています。これは計画で、すでに動いているとは書かれていません。

確認できなかったこと

  • ▸6カテゴリーの内訳と、連携先の事業者名。ブログに書かれていません。評価に使ったのがポケモンカードで、プロンプトの例にワンピースカードが出る、という範囲です
  • ▸「40倍以上」の件数の具体的な数。導入前後の件数は書かれていません
  • ▸LLMの利用料の金額。「1件あたりはごくわずか」とだけ書かれています
  • ▸本番に出したあとの実際の誤り率。ブログの精度の数字は、オフライン評価のものです
  • ▸検索や出品の体験が、どれだけ良くなったか。カタログが検索の絞り込みや出品の入力の手間を減らす、という一般的な説明はありますが、この取り組みでの効果の数字はありません
  • ▸ブログの図1〜4と表1〜4の中身。当サイトが取得できた本文には、図表の内容が文字として含まれていませんでした(画像と思われます)。本文の文章から確認できた範囲で書いています。表3・表4の数字は、本文に書かれていたものだけを使いました

この事例から持ち帰れること(当サイトの見方)

  • ▸ルールが「書き方の数だけ増える」仕事は、意味で書くプロンプトに向く。そのうえで、LLMに任せない処理を決めておくのが大事です。メルカリは、重複登録を防ぐ判定のような、揺れると整合性が崩れる処理をコードに残しています
  • ▸出力の形は、先に縛る。JSON Schemaで値の候補を決めておけば、決めていない書き方は出せません。ただし、候補の中の取り違えは防げないので、運用で見つける仕組みが要ります
  • ▸手直しだけで終わらせない。手で直したデータが次の更新で元に戻らないよう、フラグで更新から外し、原因のプロンプトを直し、dry-runで確かめてから戻す、という順序は、LLMを使った変換の運用で参考になります
  • ▸プロンプトを書く作業を、評価つきで自動化する。エージェントがデータを調べ、数百件で評価してから直す、という形です。ここで、評価用のデータを調整のあいだ見せない、というのは、数字を信じるための前提です
  • ▸数字は、評価の条件とセットで読む。「正解率が上がった」は、どのデータで、どの指標で、どのモデルかを確かめてからにしてください

根拠にしたページ

Related articles
Pinterestの「目的推定」AI:行動ログから目的の名前を書く4B小型モデル。大型モデルから蒸留し、旧方式比でメールのクリック1.1%増(相対か絶対かは未記載)2026/11/11UberのAI契約レビュー「Legal Redlining Agent」:Wordで相手の修正に承諾・拒否・修正を提案し、弁護士が全件を決める構成(同社は審査時間の20%超の短縮と記載)2026/10/29NetflixのAI審査員(LLM-as-a-Judge):AIが書いた説明文をAIが採点し、基準づくりから変更の承認まで人が握り続ける4段階(成果の数字は未公表)2026/10/21SalesforceのインフラAIエージェント:プロンプトを足しても安定せず、「推論と計算を分ける」ことで信頼性を出した(成果の数字は未公表)2026/10/13Microsoftの運用AI「Azure SRE Agent」:社内で9か月に35,000件超のインシデントを自律処理、数字の読み方と承認の仕組み2026/10/06