PyCon JP 2026(広島)の発表資料です。
LLM をアプリに組み込むと必ずぶつかる「遅い」「出力が安定しない」の2つを、
FastAPI で作った野球解説 AI Agent「The Scouter 3」を題材に、
どう設計で解いたかを話しました。
■ 課題1「遅い」
SSE で、一括生成したレポートをセクション単位で配信する。
LLM を待たなくていい Stats は先に出す。
速さそのものは変えられないが、"待たせない体験" は設計できる。
■ 課題2「不安定」
LLM は気分屋で、頼んだ形式で返してくれない。
・減らす … 計算・翻訳・突合は、渡す前に Python で済ませる
・縛る … プロンプトを「お願い」ではなく仕様書として書く
・守る … 出口で自分でパースし、型に通してから返す
■ Framework は必要になってから入れる
LangChain を採用しなかった理由と、入れる条件を、要件と時点の意思決定として。
デモでは、対戦したことがない選手同士の対戦を AI が言語化する「仮想対戦」も
お見せしています。大谷翔平 VS 大谷翔平、どちらが勝つのか。
題材は野球ですが、設計パターンはドメインを問わず使えます。
技術構成: Next.js / FastAPI / Google Gemini / Cloud Run
※ 当日ライブデモでお見せした画面は、本資料ではスクリーンショットで掲載しています。