Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
LLM AgentでTRPGを動かしたら、Agentの地獄を(多分)全部見た
Search
tanahiro2010
May 31, 2026
170
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LLM AgentでTRPGを動かしたら、Agentの地獄を(多分)全部見た
GDGoC Osakaで登壇しました
https://www.youtube.com/watch?v=d8-dpm3HvQE
tanahiro2010
May 31, 2026
More Decks by tanahiro2010
See All by tanahiro2010
Terraformで素数をマイニングしたら、ブロックチェーンが生まれた 〜 Infrastructure as Code。つまりCode。なら何でもできますよね? 〜
tanahiro2010
0
15
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
250
Serverlessのすゝめ
tanahiro2010
0
43
東京で唐揚げを食べたら北海道の地理にたどり着いた件
tanahiro2010
0
31
Googleが発表した新Web標準ドラフト――WebMCP。実際どうなの? IO Extendedで実装・登壇して分かったこと
tanahiro2010
0
110
PHPの命名規則、結局camelCaseとsnake_caseどっちなんだ
tanahiro2010
0
34
Q. 底辺作家でも流行に乗れば舞えますか? A. はい。分析ランキング分析AIを使えば
tanahiro2010
1
77
OSSコミュニティがくれた「人との繋がり」
tanahiro2010
2
470
Serverlessしかなかったので、ブラウザに働いてもらいました
tanahiro2010
1
73
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
620
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
430
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
360
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
350
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
The Curious Case for Waylosing
cassininazir
1
570
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Designing for Performance
lara
612
70k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Transcript
LLM AgentでTRPGを動かしたら、 Agentの地獄を(多分)全部見た GDGoC Osaka — LLM Agent Build with
AI 田中博悠 / 2026 1
自己紹介 田中博悠 / tanahiro2010 三田学園高等学校 1年生 兵庫の辺境に住んでる TypeScript / Python
/ Rubyをメインに開発 興味が赴くがままに他の言語フレームワークも使用中 2
突然ですが質問です 「趣味と技術、合体させたくなったことありますか?」 3
なぜこれを作ったか LTネタを探す → TRPGが好き × LLM Agent触りたい → 合体させよう() 気づいたら一から実装していました
4
作ろうとしたもの 複数のLLM AgentがTRPGを自律進行するシステム GM Agent : シナリオを読んで描写・進行 PL Agent :
キャラクターとして行動宣言 Rule Engine: ダイス判定・状態管理(TypeScript) 設計思想: 「AI = 演技」 「TypeScript = 世界」 LLMには喋らせるだけ、ロジックは絶対コードで持つ(謎のこだわり) 5
システム構成 ┌─────────────────────────────────────┐ │ TypeScript Engine │ │ ターン管理 / 状態
/ ダイス / ログ │ └────────────┬────────────┬────────────┘ │ │ ┌─────▼─────┐ ┌───▼──────┐ │ GM Agent │ │ PL Agent │ │ (Cohere) │ │ (Cohere) │ └────────────┘ └──────────┘ PLは [action]...[/action] タグで構造化出力 → zodでバリデーション 6
実際に動かしたら シナリオ(1ページ目) : 「あなたがいつも通りの日常を送っていると、唐突に目の前にどこ◦もドアっぽい物 が現れる」 → 入る? 入らない? 7
実際に動かしたら GMの出力: 「夜の街を歩く探索者たちの前に、突然、どこか異次元を思わせる扉が現れた。その 扉は、無機質な白と黒の幾何学模様が織りなす不思議な光景を映し出している。 」 夜の街、どこから来た? 探索者たち(複数) 、誰? 8
4ターン後の状態 項目 期待 実際 フェーズ 分岐・戦闘へ dialog のまま ダイス 複数回
0回 アクション skill_check / move speak のみ シナリオ進行 3〜4ページへ 1ページから動かず PLが4ターン連続で少女に話しかけ続けた 9
何がなぜ壊れたか ① GMがシナリオを「文脈」として使った テキストで渡すと、LLMは雰囲気だけ吸って創作する 分岐を「制御すべき構造」とは認識しない ② PLがspeakしか選ばない 「キャラクターらしく行動せよ」だけでは 安全策として会話を選び続ける ③
Scenario Parserが未実装 現在のページ・選択肢・次ページをエンジンが把握できていない 10
学んだこと LLMに構造を守らせたいなら、構造化した入力を渡せ テキスト渡し → LLMは文脈として解釈 → 脱線 構造体渡し → LLMは制約として認識
→ 制御できる { "currentPage": 2, "choices": ["入る → 3ページ", "入らない → 4ページ"], "instruction": "必ずどちらかの選択肢に誘導すること" } 「AIに任せる部分」と「コードで縛る部分」の境界設計が全て 11
まとめ・今後 動いたこと Agent間の会話ループ 構造化出力 + zodバリデーション セッションログ(JSONL) これからやること Scenario Parser実装
ページ状態をエンジンで管理 複数PL対応 Gemini混在構成 リポジトリ: github.com/tanahiro2010/ai_agent_trpg 12
ご清聴ありがとうございました 「AI = 演技、TypeScript = 世界」 …のはずだった 失敗ログも全部コミット済みです() github.com/tanahiro2010/ai_agent_trpg 13