コンテンツにスキップ

ミラティブ ashura — 分析を民主化しつつ品質を保つAIエージェント基盤

作成日: 2026-07-03 出典 / きっかけ: 分析を"民主化"しつつ品質を保つAIエージェント基盤「ashura」の設計 - Mirrativ Tech Blog(著者: Tom・データ分析チーム、2026-05-27公開) 関連: メルペイ_決済常駐aiエージェント_設計と5層防御_整理 lineヤフー_組織ax_仕様構造化と海外先行事例_整理 ホタルシステム_個人業務のai自動化_整理


0. 要点(3行)

  • ashura は Claude Code 上で「分析依頼→SQL→検算→報告書」を完結させる社内エージェント基盤。AIの賢さではなく、AIが参照できるドキュメント(用語集・テーブルカタログ・集計ルール)の整備が結果を決めるという思想が核
  • LLMは長い指示書を読み飛ばすという前提に立ち、workflow-gate(hookでフェーズ定義を強制注入+証跡ファイルがないとBigQuery実行をブロック)で「読まないと動けない」構造を物理的に作る
  • 書き手と読み手を別サブエージェントに分離した多段反証レビュー(plan/query/verifier/report)で品質担保。結果、社内47名・1日20名が使う基盤に成長。ただし完全民主化には至らず人間レビューは残存

1. 背景 — なぜ作ったか

1-1. 分析業務のボトルネック

ミラティブ(ゲーム配信アプリ)は配信・視聴・コメント・ギフト・ガチャ・課金など膨大な行動ログを持つが、「どのログがどこにどんな形式であるか」が明文化されておらず、分析チーム以外はテーブル探索の時点で詰まる。要件擦り合わせ→SQL→レビュー→報告の全工程が分析チームに集中し、プロダクト開発の速度(新機能・施策の効果測定依頼の量)に追いつかない。

1-2. 「AI丸投げ」で起きた失敗

単にLLMに分析を投げると、次の3つが起きる(記事中の整理):

  1. 曖昧な指標をAIが独自解釈する(「継続率」の定義が揺れる)
  2. 存在しないカラムを使った誤ったSQLを生成する
  3. 長い指示書の途中をスキップする(読み飛ばし)

→ ashura の目標は「分析の民主化(分析チーム以外が自分で集計できる)」と「専門家品質の維持(アナリストのレビューに耐える出力)」の両立。

2. アーキテクチャ — 4層構造

役割 構成要素
ナレッジ層 暗黙知の明文化 用語集・テーブルカタログ・集計ルール(約6ヶ月かけて整備)
実行層 分析業務の遂行 30超のスキル群、workflow-gate、Phase管理
安全層 破壊的操作の物理ブロック Claude Code hooks
品質層 多段AIレビュー plan-reviewer / query-reviewer / verifier / report-reviewer
  • データはBigQueryの中間テーブル群に置き、AIが生ログを直接叩いてスキャンコストが膨張するのを防ぐ
  • スキルは「1スキル=1役割」で分業(例: data-researcher=データ探索、query-writer=SQL生成、analyst=報告書作成)。カテゴリはリサーチ/作成/レビュー/報告の4つ

3. workflow-gate と Phase 管理 — 読み飛ばしの物理防止

分析を Phase 1〜7 に分割し、各Phaseの入口で gate スクリプトを通す。

Phase 0  親エージェントが workflow-gate 起動、task_id 発行
Phase 1  requirement-aligner: 要件定義(指標定義・比較設計の擦り合わせ)
   │        └─ 成果物: phase1_requirements_{task_id}.md
Phase 2  data-researcher: テーブル選定・データ設計図の作成
   │        └─ 成果物: phase2_research_{task_id}.md
Phase 3  plan-reviewer: 設計図の反証レビュー ──── NG なら Phase 2 へ差し戻し
Phase 4  query-writer: SQL生成(ドライランで参照量確認)
   │        ※ phase2 の設計図ファイルが無いと gate を通れない
Phase 5  query-reviewer: SQL の反証レビュー ───── NG なら Phase 4 へ差し戻し
Phase 6  verifier: 実行結果を Golden Table と照合・検算
Phase 7  analyst → report-reviewer: 報告書作成・最終レビュー
            ※ phase1 の要件定義ファイルが無いと gate を通れない

仕組みの要点:

  • workflow-gate.sh {phase} {task_id} が該当Phaseの定義ファイルを stderr に出力して会話に強制注入する。「AIが指示書を読み飛ばす」ことを物理的に不可能にする発想
  • gate 通過時に tmp/.workflow_gate_{task_id} という証跡ファイルを作る
  • BigQueryクエリはSQL冒頭に -- wf:{task_id} コメントが必須。hook が task_id を抽出し、対応する gate ファイルが存在しなければクエリ実行自体をブロックする
  • 前段の成果物ファイルがないと次のPhaseに進めない。「いきなり query-writer だけ呼ばれて適当なSQLを生成」という事故を構造で阻止する

4. 安全層 — hooks による物理ガード

ドキュメントに「やってはいけない」と書くのではなく、実行時にブロックする:

ガード 内容
破壊的SQLブロック DROP / DELETE / --replace を含むコマンドを実行拒否
本番テーブル直書きブロック summary.*db.* など本番データセットへの --destination_table 指定を拒否
スキャン量ガード 300GB超のクエリを自動検出しユーザー承認を要求

Claude Code の hooks(コマンド実行前のシェルスクリプト差し込み)で実現。

5. 品質層 — 書き手と読み手を分離した多段反証レビュー

レビュアー 役割
plan-reviewer データ設計図の反証。テーブル選定ミス・要件取り違えを検出
query-reviewer SQLロジックの反証。JOIN膨張・NULL暗黙除外・二重カウントを検出
verifier 実行結果を Golden Table と照合し異常値を検出
report-reviewer レポートの「事実」と「解釈」の混同、考察品質を検査

各レビュアーは独立サブエージェントで、書き手とコンテキストを共有しない。「正しく見えて間違っているケース」を能動的に反証テストで探す。

記事中の差し戻し実例:

  • Phase 3: plan-reviewer が「観測期間中の未離脱ユーザー(打ち切り)を全員『離脱』と判定していないか。継続率が過小評価される。生存時間分析への切り替えか打ち切り判定の導入を」と指摘 — 書き手と分離されたレビュアーだからこそ出る指摘
  • Phase 6: verifier が単純集計とのクロス検証で 0.3pt の乖離を検出して差し戻し

6. 3つのコア設計思想

  1. 暗黙知を明文化する — 「AIの賢さより、AIが参照できるドキュメント整備の方が結果を決める」。ドキュメントが無ければどれだけ高性能なLLMでもテーブル探索で詰まる。最重要投資
  2. 「読み飛ばし」を物理的に防ぐ — LLMは長い指示書を全部読まない前提で設計する。workflow-gate がフェーズ定義を毎回注入し、読まないと動けない構造にする
  3. 単一AIを信用しない — 書き手と読み手を独立サブエージェントに分離し、AI同士の相互反証で品質を担保する

7. 運用結果と残課題

  • ユーザー数 47名、1日あたり 20名 が使用(記事時点)
  • 「忙しそうだから依頼しない」で消えていた細かな分析が個人で完結するようになり、分析チームへの簡単な集計依頼が減少
  • MTG中にその場で集計を回し、議論が止まる前にネクストアクションを決めるPdMも出現(リアルタイム意思決定)
  • 残課題: アナリストなら気づけるデータ矛盾・分析手法の根本的間違いに気づけないユーザーが一定数おり、分析チームのレビュー(人間のセーフティネット)はまだ必要。完全な民主化には至っていない
  • 今後: BigQuery実行をゲートウェイ経由化する「ashura Gateway」構想(回答ログ収集+初心者の高コストクエリの堰き止め)、サブエージェントごとのモデル選定(haiku/sonnet/opus)と extended thinking の調整によるコストチューニング

なお全社的な背景として、ミラティブは行動指針に「with AI」を追加して Claude を全社導入し、社内イベント「AI祭り」で約1ヶ月に100件超の業務改善施策が発表された(ashura はその優勝作。PANORA 2026-05-25 報道)。

8. 自分の視点 — 他事例・自分のプロジェクトとの対比

観点 ashura(ミラティブ) 類似・対比
ガードの置き場所 hooks で実行時に物理ブロック(ドキュメントで諭さない) メルペイ_決済常駐aiエージェント_設計と5層防御_整理 の5層防御と同じ「プロンプトではなく構造で縛る」系譜
判断基準の外化 用語集・集計ルールをドキュメントとして整備しAIに参照させる 自分の ai-engineering-digest / st-japan-lab の harness.yaml(基準をコードでなくYAMLに集約)と同思想
読み飛ばし対策 gate が stderr でフェーズ定義を強制注入+証跡ファイル 「CLAUDE.mdに書けば読まれる」への明確な反例。強制注入+実行ブロックまでやる
多段レビュー 書き手と読み手のサブエージェント分離+反証 自分のセルフレビュー運用(/code-review+ミューテーションテスト)のデータ分析版
類似事例 メルカリ「Socrates」(データアナリティクスAIエージェント、ADK活用)が同じ問題設定

特に効いているのは「成果物ファイルの存在チェックを gate にする」設計。Phase間の依存を「指示書に書く」のではなく「前段の成果物がないと物理的に進めない」にしている。Temporal のワークフロー設計(activity の出力が次の activity の入力)と同型で、LLMエージェントに決定的な順序を強制する手法として自分の research-orchestrator にも転用できる。

9. まとめ — いつ何を参考にするか

状況 参考にする部分
社内データ分析をAIに開放したい まずナレッジ層(テーブルカタログ・用語集・集計ルール)。記事は「よく使うテーブルのドキュメント10個とクエリルール」からのスモールスタートを推奨
エージェントが指示書を読み飛ばす workflow-gate パターン(hookで定義を強制注入+証跡ファイルがないと実行ブロック)
AI出力の品質が信用できない 書き手/読み手のサブエージェント分離+反証レビュー+Golden Table照合
BigQueryコストが怖い 中間テーブル整備+スキャン量ガード(300GB超で承認要求)+破壊的SQL/本番直書きのhookブロック

参考リンク


作成: 2026-07-03 / 最終更新: 2026-07-03