💬

小学生の「できた!」を資産化する教育エージェントをCloud Run×Vertex AIで構築【Agentic AI Hackathon】

に公開

はじめに:教育DXに「ワクワク」が足りない

教育現場のデジタル化(DX)が進んでいますが、その多くは「出欠管理」や「成績管理」といった大人のための効率化に留まっていませんか?

主役であるはずの子どもたちにとって、学習記録をつけることは「面倒な事務作業」でしかありません。

「もし、学習記録が宝物集めのような体験に変わったら?」

「もし、AIが先生の相棒(エージェント)として、子どもたち一人ひとりを全力で褒めてくれたら?」

そんな仮説を検証するために、「第4回 Agentic AI Hackathon with Google Cloud」 に応募すべく、学習記録プラットフォーム『Command Center|放課後キャンパスクラブ』を開発しました。

本記事では、このプロダクトがどのように「教育×ゲーミフィケーション×エージェントAI」を実現したのか、Google Cloud の技術スタックを中心としたアーキテクチャと共に解説します。

1. プロジェクト概要:先生の「分身」を作る

本プロジェクトは、小学生向けのプログラミング教室やクラブ活動を想定した、ゲーミフィケーション学習記録アプリです。

🧩 解決する2つの課題

  1. 子ども側:継続のモチベーション維持
    • タイピング練習やマインクラフト制作は、達成感が一過性で、記録に残りにくい。
    • Solution: 学習成果を「トレーディングカード」として発行し、ガチャで収集させることで「資産化」する。
  2. 先生側:フィードバックの限界
    • 一人ひとりの生徒に対し、毎回気の利いたコメントや適切な評価を返す時間がない。
    • Solution: Vertex AI (Gemini) が先生の意思を汲み取り、教育的効果の高いフィードバックを自律的に生成・配信する。

🤖 "Agentic AI" としてのアプローチ

今回のハッカソンのテーマである「Agentic AI」。単なる自動生成ツールと、エージェントの違いは「目的を持って自律的に振る舞うか」にあります。

このシステムでは、AIを「先生の教育理念を拡張するエージェント」と位置づけました。

先生が「タイピングスコアが伸びた」という事実を入力するだけで、エージェントは

  • 生徒の過去のデータと比較し、
  • 小学生の心に響く「冒険心をくすぐるカードタイトル」を考案し、
  • 教育心理学的に効果的な「褒め言葉」を生成して、
  • 生徒のデバイスへ通知を送ります。

これは、先生が忙しくて手が回らない「個別の承認欲求への対応」を、エージェントが自律的に代行するワークフローです。

2. デモ動画

論より証拠。実際に動いている様子をご覧ください。

特に、「先生が事実を入力 → AIがカード生成 → 生徒がガチャで獲得 → 3Dで鑑賞」 という一連のUXフローにご注目ください。

https://youtu.be/Wqt1DuZYQrs

3. システムアーキテクチャ

Google Cloud のマネージドサービスをフル活用し、スケーラビリティと開発スピードを両立させました。

🏗️ Architecture Diagram

🛠️ 技術スタック選定の理由

カテゴリ 採用技術 選定理由
Hosting Cloud Run Vue.js (Vite) + Nginx のコンテナをデプロイ。「コンテナをポン置きで動かせる」 手軽さと、https化/オートスケールの容易さが決め手。
AI Model Vertex AI 先生の意図を汲み取る高度な推論能力が必要なため採用。SDKには最新の統合ライブラリ google-genai を使用。
Backend Cloud Functions (2nd Gen) AI呼び出しロジックをカプセル化するマイクロサービスとして。Pythonランタイムを採用し、Vertex AI との親和性を最大化。
Database Supabase Auth / DB / Storage を一元管理。Google Cloud の強みである「AI」と「実行基盤」の実装にリソースを集中させるため、永続化層には知見のある Supabase を戦略的に採用。
Frontend Vue.js 3 + Tailwind CSS 開発スピード優先。script setup 構文による生産性の高さと、Tailwind によるデザインの一貫性確保。

4. 実装のポイント詳解

① Cloud Run でのフロントエンド配信

SPA (Single Page Application) を Cloud Run で配信するため、マルチステージビルドを採用しました。

以下は、「ビルド環境と実行環境を分ける」 という構成意図を示すための Dockerfile の実装イメージです。

Cloud Build と連携させることで、GitHub へのプッシュをトリガーに自動デプロイされるパイプラインを構築しました。これにより、ハッカソン期間中の試行錯誤を高速化できました。

② Vertex AI × 最新SDK (google-genai)

Cloud Functions 上の Python コードでは、最新の統合 SDK である google-genai を採用しました。これにより Vertex AI 上の Gemini モデルを、非常にシンプルなコードで呼び出すことができます。

また、単に Gemini を呼ぶだけでなく、「先生のペルソナ」 をシステムプロンプトとして与えることで、エージェントとしての振る舞いを定義しています。

このように明確な役割を与えることで、味気ない「作品登録完了」の通知が、生徒にとっては「伝説の装備を手に入れた」ような体験に変わります。

③ リッチなWeb体験(3D & エフェクト)

Webブラウザ上でネイティブアプリ並みの体験を提供するため、以下のライブラリを活用しました。

  • <model-viewer>: Google が提供するWebコンポーネント。マインクラフトの .glb ファイルを、わずか数行のHTMLでインタラクティブに表示できます。
  • canvas-confetti: ガチャで高レアリティ(SR/UR)が出た瞬間に、画面いっぱいに紙吹雪を舞わせる演出に使用。ドーパミンを刺激する重要なUX要素です。

5. まとめと今後の展望

開発を通して得られた知見

Google Cloud (特に Cloud Run と Vertex AI) を組み合わせることで、「インフラ管理の手間を最小限にしつつ、AI機能を組み込んだモダンなWebアプリ」 を、極めて短期間で構築できることを再確認しました。

特に Cloud Run は、ローカルで開発したコンテナがそのまま本番環境で動くため、デプロイにまつわるストレスがほぼありませんでした。

Future Roadmap

ハッカソン期間後は、以下の機能拡張を予定しています。

  1. Gemini Vision の活用: マインクラフトのスクリーンショットを解析し、「すごい建築ですね!色使いが独特です」といった感想を、画像から直接生成する機能。
  2. Gemini 2.0 Flash / Multimodal Live API: 現在プレビュー中のリアルタイムAPIを活用し、生徒の操作に反応してその場で声をかける「ライブエージェント機能」。

教育現場に「楽しさ」という魔法をかけるため、Command Center は進化し続けます。

https://github.com/motomiki/command-center

Discussion