こんにちは。メルペイで機械学習とAIのチームのEMをしている@hiroです。
この記事は、Merpay & Mercoin Tech Openness Month 2025 の21日目の記事です。
メルカリ、メルペイでは生成AIの活用を非常に積極的に推進しています。今回の「Merpay&Mercoin Tech Openness Month 2025」においても、自然発生的に多くのメンバーが生成AIをテーマに選択しており、これは会社全体でのAI活用の機運の高まりを示していると感じています。従前からAIの取り組みはありましたが、会社としてのコミットメントの深まりとエンジニアを含むメンバーたちの熱量が高くなっており、数々のプロジェクトが生まれています。 この記事ではその中から、CXOの@naricoと共に推進している「PJ-Aurora」(プロジェクトオーロラ)について共有します。
Design/Creative x AI
2024年のメルカンの記事『「Must」を「Fun」に!メルカリCPOとCXOが語る、“AI-Led Growth Company”としてのAI活用の未来』にも書かれていますが、以前より「pj-ai-creator」を立ち上げ、デザイン領域における生成AIの活用について実験的な取り組みを行ってきました。PJ-AuroraはAI Creatorを経て正式に立ち上がったプロジェクトです。
PJ-Auroraは生成AIの活用を通じて、メルカリ、メルペイにおけるものづくりのアプローチを変革し、よりMove Fastにアイデアを実現してお客さまに届けることができるようになることを目指しています。あしもとでは特に、アイデアからのUI生成や評価、UXシミュレーション工程のプロセスイノベーションに挑戦しています。
とはいえ、基盤モデルの性能が日毎月毎に改善されていく中、生成AIを使って達成できることは何か、という問いの答えも変わり続けています。私たちも常に学習し続け、期待値とスコープを更新し続ける必要があると認識しています。
アイデアからUIを生成する
プロンプトからUIを生成するタスクは生成AIの発展とともに流行しているタスクの一つで、Figma社のFigma Makeをはじめさまざまなサービスが生まれています。メルカリでは各サービスの試験的な利用もしつつ、Agentic Workflow(複数のAIエージェントが連携して作業を進める仕組み)を構築し、独自のUI生成プロセスを構築する営みも並行して進めています。
このタスクは昨今、精度向上が目覚ましく、正直なところ、最終的には内製のシステムではなく外部のサービスを使う形になるかもしれません。しかし、この取り組みを通じて得られる知見と資産は、AI時代における競争優位性の源泉になると考えています。
AI時代のデザイン資産
たとえば、デザインシステムは人間のデザイナー/エンジニアが理解し活用するために作られていることが多いですが、AI時代においては「AIが理解し活用できる形」での資産化が重要になってくると思います。
- 構造化されたデザイン言語: ブランドアイデンティティやデザイン原則をAIが解釈可能な形で体系化
- AI-Friendlyなデザインシステム: コンポーネントやパターンをMCP(Model Context Protocol)等を通じてAIが参照・活用できる状態に整備
- ドメイン特化の知識ベース: 特有のUXパターンやユーザー行動をAIが理解できる形で蓄積
これらの資産は、外部サービスだけでは実現困難な「メルカリらしさ」を保ちながらAI活用を進めるための基盤となります。仮に将来的に外部サービスを利用することになったとしても、これらの構造化された資産は他のAIツールとの連携や、独自のワークフロー構築において価値を持ち続けると想定しています。
一方、基盤モデルを利用するだけで高精度のUI生成が可能になった場合、外部サービスを利用するのではなく、メルカリ内部のシステムやワークフローに接続しやすいようにあえて「基盤モデルのAPIを使った内製のUI生成システム」に着地する可能性もありえるかもしれません。
UI生成の実装の概要
いくつかのコンセプトから構成されていますが、ここでは2つのAgentを紹介します。Agentic Workflowの実装は現時点では、GoogleのADK(Agent Development Kit)を使っています。
- コンセプトリファインAgent
- UI生成Agent
コンセプトリファイン
UI生成ツールのユーザーが記述した機能やサービスのアイデアを、UI生成Agentに入力するためのデータ(プロンプト)に変換するための機能です。基盤モデルの性能向上によって簡単な指示でもある程度の品質のUIを生成してくれるようになりつつあります。一方で、実現したいことや作りたいもの、制約等をよく言語化し、構造化することの価値は変わらず高く、生成されるものの品質を大きく左右すると感じています。
以下は実装のイメージです。
def create_concept_refinement_agent() -> LlmAgent:
"""
ユーザーのコンセプト案をブラッシュアップするためのシンプルなLlmAgentを作成します。
"""
return LlmAgent(
name="ConceptRefinementAgent",
model="gemini-2.5-pro-preview-05-06",
description="ユーザーのデザインコンセプト案を受け取り、より詳細で具体的なアイデアにブラッシュアップするエージェント。",
instruction=(
"あなたはデザインコンセプトを具体化・洗練させるAIアシスタントです。\n"
"ユーザーから与えられたコンセプト案を読み、**それを元に最大限具体的で魅力的なコンセプト案を生成してください。**\n"
"生成する際は、以下の点を考慮・推測し、具体的に記述してください:\n"
"- **ターゲットユーザー:** (例: 20代後半のテクノロジーに関心のある都市部在住者)\n"
"- **解決する課題/提供価値:** (例: 煩雑なスケジュール調整をAIで自動化し、自由な時間を創出する)\n"
"- **コア機能/体験:** (例: 自然言語でのイベント登録、参加者の都合の良い時間を自動提案、ビデオ会議連携)\n"
"- **差別化要因:** (例: 業界特化のテンプレート、独自のレコメンデーションエンジン)\n"
"- **雰囲気・トンマナ:** (例: ミニマルで洗練されたデザイン、直感的でスムーズな操作感)\n"
"- **具体的なUI構造:** (例: イベント登録するためのフォーム、参加者の都合の良い時間を提案するカレンダー)\n"
"**ユーザーに質問を返さないでください。\n"
"**与えられた情報からコンセプト案を構築し、完成したコンセプト案のテキストのみを返してください。\n"
"**前置きや挨拶、説明は不要です。"
),
tools=[],
sub_agents=[],
)
UI生成
以下がプロンプトをもとにHTMLでUIを生成するAgentのサンプルコードです。 既出のセクションにも書きましたがUI生成はさまざまなサービスが生まれており、群雄割拠です。前述の通り最終的に内製のAI Agentをさらに作り込んでいくかどうかはわかりません。一方、生成ロジック以外の要素、例えば自社のデザインシステムをAIからReadableな状態にすること、デザインのアイデンティティやコンセプトを言語化・構造化すること、AIを前提としたアプリ制作のワークフローを発明すること等は、組織の資産であり、独自性であり、差別化要因になりうる点だと想像しています。
def create_page_generate_agent_v0_3(model_name: str) -> LlmAgent:
"""HTML生成エージェントを構築します。"""
mcp_toolset = get_ds_mcp_tools()
html_generation_agent = LlmAgent(
model=model_name,
instruction="""
ユーザーのアイデアを基にデザインを新規生成してください。
特に指示されない限りはスマホアプリのデザインを生成してください。
メルカリのデザインシステムに厳密に従った高品質なHTMLを生成するため、以下のステップを順守してください。
**ステップ1: デザインシステム参照画像の確認**
メルカリのデザインシステムに準拠した表現を行うため、関連するコンポーネントやパターンの参照画像を必ず確認してください。
- `mcp_get_ds_master_image_map` ツールを呼び出し、利用可能なDS Master Imageのカテゴリと画像のリストを取得します。
- ユーザーの要求や生成する画面のコンテキストに合致する画像があれば、その画像の `category` と `filename` を引数として `mcp_get_ds_master_image_details` ツールを呼び出し、詳細な説明と画像URLを取得します。
- 取得した画像URLは、必ず `download_and_save_image_as_artifact` ツールを使用してその内容をシステムに読み込ませ、実際に画像を確認してください。
- これらの参照画像を十分に確認し、スタイル、レイアウト、インタラクションなどがメルカリのデザインシステムに沿っているかを確認した上で、HTML生成に活かしてください。
**ステップ2: アイコン・ロゴ素材の利用**
アプリケーションで使用する汎用的なアイコンやロゴは、必ず `mcp_get_image_asset_map` ツールを使用して画像アセットのURLリストを取得し、そこから適切なものを選択してHTMLに埋め込んでください。
**ステップ3: HTML生成と出力**
上記のステップで得られた情報と、以下の「基本デザイン情報」を総合的に判断し、HTMLを生成します。
- **出力形式:** 純粋なHTMLコードのみを出力し、他の説明やコードブロックは含めない。完全な HTML コードのみを出力してください。説明や ```html ... ``` は不要です。
- **単一ファイル:** CSS/JavaScriptは外部参照せず、`<style>`タグや`<script>`タグで内部に埋め込む。
プレースホルダー画像
ユーザーアイコンや商品画像のプレースホルダーが必要な場合は、`get_random_sample_image_url` ツールを使ってください。
**画像のURLをmcpやツールで取得した場合:**
1. mcpやツールから取得したURLの画像を処理する必要がある場合 (例: 画像の内容を説明する、画像から情報を抽出する、画像に基づいて何かを生成する)、まず `download_and_save_image_as_artifact` ツールを使用して画像を取得し、システムに保存してください。
2. このツールを実行すると、システムが自動的に画像を読み込み、あなたがその内容を理解できるようになります。
3. もし画像URLへのアクセスにMCPの認証が必要だと判断される場合は、ツールの `use_mcp_auth` 引数を `True` に設定してください。それ以外の場合は `False` に設定してください。
""",
name="HtmlGeneratorAgent",
description="Generates a single HTML page based on user idea.",
output_key="generated_html",
tools=[
get_random_sample_image_url,
check_link_status,
download_and_save_image_as_artifact,
mcp_toolset,
],
before_model_callback=before_model_load_artifact,
)
return html_generation_agent
UI/UX評価の取り組み
以上はUIを生成する仕組みの一端ですが、並行して、生成されたものをUI/UXの観点で評価する仕組みの構築にも取り組みはじめています。品質評価観点を定め、仮想的なペルソナを生成し、自動生成されたUIにフィードバックをします。
静的な画面の評価に加えて、Browser Use等を用いて画面操作をさせつつ、フィードバックを獲得していく仕組みです。全体のイメージとしては、Amazon社の「UXAgent: An LLM Agent-Based Usability Testing Framework for Web Design」のような構成で、AIによるUX評価の概念実証に着手しており、納得性の高いフィードバックを得られるケースも確認できています。
UI生成については内製のフロントエンドがあるのですが、UI/UX評価に関してはCursor等のエージェントを使いながら小さく開始しています。有用性が確認できたら、どういう実装であるべきか、アプリ開発のワークフローの中でどう使っていくのが有効かを検討していきたいと考えています。
おわりに
PJ-Auroraの取り組みを通じて、生成AIの可能性と課題の両面を実感しています。技術の進歩は目覚ましく、UI生成の精度は日々向上していますが、同時に「何を作るか」「どう作るか」「私たちの仕事の仕方はどう変わるか」という本質的な問いに向き合うことがより重要になってきていると感じます。
メルカリでは引き続き、お客さまにより良いサービスと体験を提供するために、新しい技術と向き合いながら開発をしています。生成AIという新しい道具を使いこなすために、私たち自身も学び続けていきます。