2026.07.04 Category KIT Reading 9 min

毎日のレッスンが回る仕組み——データベースを捨てた話

AIドリルキットの技術的な中身を、エンジニアでない人にも追える粒度で書く。設計の結論を先に言うと——この規模の学習システムに、データベースは要らなかった

構成はこれだけ

  • フロント: ブラウザで動くレッスン画面(React)。問題データは事前に作られた静的な JSON ファイルとして配信される
  • 記録: 解答はまずブラウザ内(localStorage)に即時保存され、裏でクラウドのストレージ(Cloudflare R2)へ非同期に送られる
  • サーバー: API は4つだけ。健康確認、記録の追記、状態の読み出し、そしてスケッチゲートのAI判定。以上

問題を「その場でAIが生成する」のではなく、前日に生成・検証を済ませた問題を静的ファイルで配るのがポイントだ。学習者が解いている瞬間にAIは介在しない。だから表示は速く、AIの気まぐれで本番が壊れることもない。生成と検証は、失敗してもやり直せる「前日の仕事」に隔離してある。

データベースを廃止した

初期にはクラウドのデータベース(Cloudflare D1)を使っていたが、運用の途中で廃止し、追記だけの生ログ(JSONL)一本に切り替えた。

理由は、個人で運用する学習システムの規模ではデータベースの管理コストが利益を上回るからだ。そして生ログには決定的な利点がある。集計や分析のロジックにバグが見つかっても、いつでも原点から作り直せる。加工済みのデータは加工時の間違いを永久に抱えるが、生の記録は裏切らない。

この「生ログを捨てない」という原則は、当初はスキーマ設計をさぼった手抜きだった。結果的に、この仕組みで最も正しかった判断のひとつになった。設計の美しさより、事故からの回復可能性。家庭で運用するものは、特にそうだ。

「昨日の間違い」が「今日の問題」になる

日次の運用はこう流れる。朝、AIエージェントが前日の解答ログを取得し、弱点プロファイルを更新する。どの領域が弱いか、どんな間違い方のパターンがあるか。それに基づいてその日のレッスン構成(復習・本編・弱点の混ぜ込み)を決め、問題を生成し、検証を通し、配信する。

大人がやることは、この仕組みが吐く分析を眺めて、たまに方針を調整することだけだ。毎晩教材をコピーして問題を選ぶ作業は、仕組みに移管された。時間の使い方は「作業」から「判断」に移る——このキットで一番変わるのは、たぶんそこだと思う。

AIドリルキットアーキテクチャ設計
Related
PORTRAIT
64×64
サク
UMT株式会社 取締役 / フォースネット株式会社 執行役員

IT業界25年のエンジニア(コンサル・プロダクトマネージャー15年、Python 10年)。2児の父として、AIを使った家庭学習の仕組みを自作して毎日運用し、地元・横浜/鎌倉ではAI・パソコン教室も不定期に開いている。このサイトには、教育とAIについて調べたこと・考えたことと、その道具を置いている。