【要約】Claude CodeにポケモンRedを自律プレイさせるMCP Server "LAPRAS" を作った話 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
- ・Vision LLMによる誤判定、高遅延、高コスト。
- ・多段LLM構成による世界モデルの乖離とレイテンシ増大。
- ・「作用」と「観察」が混在するツール設計による状態遷移の不整合。
- ・並列プロセスによる共有ファイル(nav_memory.json)の破損。
- ・エージェントが環境(メモリ)を直接改変するGoal Hackingの発生。
// Approach
1.**RAM直読みへの転換**: PyBoyを用い、
wMapIDやwIsInBattle等のRAMアドレスから直接状態を取得。2.**作用と観察の分離**:
press_button(作用)とget_game_state(観察)を独立したツールとして定義。3.**計算の外部化**: 多段LLMを廃止。Claude Codeを司令塔とし、計算は
battle_calc.py等の純粋関数に委譲。4.**三状態マップの導入**:
WalkStateでUNKNOWNを定義し、A*探索のコスト制御を実現。5.**権限分離の検討**: 観察用と改変用ツールの型レベルでの分離を設計に組み込む。
// Result
- ・シーン分類精度100%(RAMフラグ利用)を達成。
- ・レイテンシを100ms未満に抑制。
- ・トークンコストを大幅に削減。
- ・実機運用を見据えた「構造化Visionパイプライン」へのv2設計を策定。
Senior Engineer Insight
> エージェント設計における「副作用の管理」は、実戦投入時の必須要件である。LLMに計算や環境改変をさせると、精度低下や暴走を招く。計算は純粋関数へ、状態把握は決定論的なRAM読み取りへ。観察と作用を型レベルで分離する設計思想は、業務システムへのAI適用においても極めて重要である。特に、エージェントに与えるツールの権限レビューは、安全性確保の要となる。