AIエージェントの「知性」をどう測るかは、2026年の大きな研究テーマだ。ベンチマークテストやグリッドワールドでは測れない「長期的な目標設定」「不完全情報下での意思決定」「複数リソースの同時管理」を一度に試せる環境は限られている。そこに現れたのが、Nous Researchが公開したpokemon-agentだ。ヘッドレスエミュレータとREST APIを組み合わせて、Game Boy版ポケモンをAIエージェントの実験フィールドに変えてしまう。Claude Code、Hermes Agent、自作LLMエージェント——HTTPさえ話せれば何からでもポケモンを動かせる。

この記事ではAIエージェントに特化して解説します。AIエージェント全般は AIエージェントフレームワーク比較2026年版 をご覧ください。

Nous Researchが挑んだ「AIにポケモンをさせる」という問い

pokemon-agentは、Nous Researchが2026年に公開したOSSプロジェクトだ。Nous Researchといえば、Hermesシリーズのオープンモデルで知られる研究組織で、そのスタンスは一貫している——AIエージェントの能力は、現実的な複雑さのある環境でしか正しく測れない

「ポケモンは、長期記憶・探索・戦術判断・リソース管理・会話理解を同時に要求する。これらすべてを単一の環境で評価できるベンチマークは、実はほとんど存在しない」

これがプロジェクト背景にあるメッセージだ。ポケモンはおもちゃに見えて、エージェント研究の本質的な難しさを全部抱えたタスクである——その前提に立って、誰でも再現できる実験基盤として公開されたのがpokemon-agentだ。

従来、AIエージェント研究で使われてきた環境は大きく3つに分かれる。OpenAI GymやGymnasiumのような「標準化されたタスク集合」、自作シミュレータ、そしてMinecraftやStarCraftなどの「大規模ゲーム環境」だ。それぞれに長所はあるが、「親しみやすい複雑さ」と「HTTPで誰でも叩ける手軽さ」を両立した環境はほぼ存在しなかった。pokemon-agentはそこを埋めにきたプロジェクトといえる。

OpenHandsのようなコーディングエージェントが「コード」を操作対象とするのに対し、pokemon-agentは「ゲーム世界」を操作対象にする。リポジトリのREADMEには、HTTP経由でパーティ状態を取得しながらエージェントがプレイする様子がスクリーンショット付きで紹介されている。

この章のポイント
pokemon-agentはNous Researchが開発したAIエージェント用ポケモン実験環境
ポケモンは長期記憶・戦術判断・リソース管理を同時に試せる稀有なタスク
「親しみやすい複雑さ」と「HTTP API」を両立した実験基盤として登場

アーキテクチャ|ゲームエミュレータをAPIサーバー化する

pokemon-agentの核心は「ゲームエミュレータをAPIサーバー化する」というアプローチだ。PyBoy(Game Boy用)またはPyGBA(GBA用)でROMをヘッドレスに実行し、FastAPIでREST/WebSocketエンドポイントを公開する。AIエージェントはHTTPリクエストでゲーム状態を取得し、アクションを送信する——ただそれだけだ。

graph TB A["AIエージェント
(Claude・Hermes・自作LLM)"] -->|HTTP API| B["pokemon-agent サーバー
(FastAPI)"] B --> C["エミュレータ
(PyBoy / PyGBA)"] C --> D["ポケモン ROM
(Red / Blue / Yellow)"] B -->|GET /state| E["構造化ゲーム状態
(JSON)"] B -->|POST /action| F["ゲーム操作
(移動・ボタン入力)"] B -->|GET /screenshot| G["画面キャプチャ
(PNG)"] B -->|WebSocket /ws| H["リアルタイム
イベントストリーム"] E --> A G --> A H --> A

プロジェクトのディレクトリ構造を見ると、各レイヤーの責務が明確に分離されているのが分かる。

pokemon_agent/
├── cli.py               # CLIエントリーポイント
├── server.py            # FastAPI ゲームサーバー(REST + WebSocket)
├── emulator.py          # PyBoy/PyGBA ラッパー(ヘッドレス)
├── pathfinding.py       # A* グリッドナビゲーション
├── memory/
│   ├── reader.py        # 抽象ゲームメモリリーダー
│   ├── red.py           # ポケモン Red/Blue RAMパーサー
│   └── firered.py       # FireRed RAMパーサー(Phase 2)
├── state/
│   └── builder.py       # 構造化ステートビルダー
└── dashboard/           # オプションのWebダッシュボード
    ├── mount.py
    ├── history.py
    └── static/

設計上のポイントは、メモリリーダーとステートビルダーの分離だ。メモリリーダーがRAMアドレスから直接ゲーム情報を読み取り、ステートビルダーがそれをエージェントが扱いやすいJSONに変換する。ゲームごとにRAMレイアウトが違うため(Red/BlueとFireRedでは別物)、新しいタイトル対応を追加する際はmemory/配下に専用パーサーを足すだけでよい構造になっている。

レイヤー 役割 技術
APIサーバー HTTP/WebSocket経由の入出口 FastAPI + Uvicorn
エミュレータラッパー ROMをヘッドレス実行、ボタン入力・フレーム制御 PyBoy / PyGBA
メモリリーダー RAM領域から生データを抽出 Pythonバインディング
ステートビルダー 生データを構造化JSONに変換 Pydantic互換
経路探索 タイル単位のA*ナビゲーション 内製実装
ダッシュボード ブラウザでプレイを可視化 静的HTML + WS
なぜ「HTTPで分離」することに意味があるのか
エージェント側の実装言語に依存しなくなる点が大きい。Python以外(Node.js・Go・Rust)からでも同じゲーム環境を操作できるし、リモートサーバーでゲームを走らせて複数のエージェントから同時接続することも容易だ。GPUを持つマシンと分離してエミュレータを動かす構成も組める。
この章のポイント
pokemon-agentはエミュレータをFastAPIでラップしてHTTP API化している
メモリリーダー/ステートビルダー分離で新タイトル対応が容易
REST + WebSocketで言語非依存・マルチエージェント接続も可能

インストールと起動|pip installで5分以内に動く

pokemon-agentのセットアップはかなりシンプルだ。Pythonが動く環境ならOSを問わず、基本的にはpip installだけで完了する。ダッシュボード(ブラウザでAIのプレイを観戦できるWeb GUI)が必要かどうかで、2パターンのインストールがある。

# コア機能のみ(エミュレータ + APIサーバー)
pip install pokemon-agent pyboy

# ダッシュボード付き(ブラウザでAIプレイを観戦)
pip install pokemon-agent[dashboard] pyboy

ROMファイルを指定してサーバーを起動する。ROMは各自で合法的に用意する必要がある(自分で所有するゲームからダンプする、など)。

# 基本起動
pokemon-agent serve --rom path/to/pokemon_red.gb

# ポート指定 + ダッシュボード有効化
pokemon-agent serve \
  --rom path/to/pokemon_red.gb \
  --port 8765 \
  --dashboard \
  --save-dir ./saves

起動すると以下のエンドポイントが利用可能になる。ほぼ全てがHTTPで完結し、追加の認証設定などは不要だ(ローカル用途想定)。

エンドポイント プロトコル 用途
http://localhost:8765/state REST (GET) ゲーム状態をJSON取得
http://localhost:8765/action REST (POST) エージェントの操作送信
http://localhost:8765/screenshot REST (GET) 現在画面のPNGキャプチャ
http://localhost:8765/save REST (POST) 名前付きセーブステート保存
http://localhost:8765/load REST (POST) セーブステート復元
ws://localhost:8765/ws WebSocket リアルタイムイベント配信
http://localhost:8765/dashboard REST (GET) Webダッシュボード(オプション)

起動後すぐcurlで動作確認できるのは、開発体験として大きい。初手から複雑な依存関係やクラウド環境が必要なエージェント研究ツールが多い中、pokemon-agentは「とりあえずHTTPを叩けば動く」設計を徹底している。

動作確認の最短手順

# サーバー起動
pokemon-agent serve --rom pokemon_red.gb &

# 1. ゲーム状態を見る
curl http://localhost:8765/state | python -m json.tool

# 2. 画面をキャプチャ
curl http://localhost:8765/screenshot -o screen.png

# 3. 「Aボタン2回」のアクション送信
curl -X POST http://localhost:8765/action \
  -H "Content-Type: application/json" \
  -d '{"actions": ["press_a", "press_a"]}'

これだけでタイトル画面の遷移、ニューゲーム開始、マップ内移動までテストできる。つまりこのAPIサーバー自体がゲームエンジンのラッパーであり、裏で動いているのはエミュレートされた本物のポケモンだ。

この章のポイント
pip install 1行 + ROM指定でサーバーが起動する
REST + WebSocketの7エンドポイントが即座に利用可能
curlだけでも動作確認でき、開発体験が良好

REST APIで実際にゲームを動かす

pokemon-agentの最大の特徴は、curlやPythonスクリプトから直接ゲームを操作できる点だ。以下、実運用で頻出するコマンドパターンをまとめる。

基本操作:取得・送信・チェックポイント

# ゲーム状態の取得
curl http://localhost:8765/state | python -m json.tool

# 画面のスクリーンショットを保存
curl http://localhost:8765/screenshot -o screen.png

# アクション送信(上に2歩移動してAボタンを押す)
curl -X POST http://localhost:8765/action \
  -H "Content-Type: application/json" \
  -d '{"actions": ["walk_up", "walk_up", "press_a"]}'

# セーブ・ロード(チェックポイント管理)
curl -X POST http://localhost:8765/save -d '{"name": "before_brock"}'
curl -X POST http://localhost:8765/load -d '{"name": "before_brock"}'

GET /stateが返すJSONは、LLMが判断材料として直接プロンプトに差し込める形式になっている。生のRAMダンプではなく、「プレイヤー名」「所持金」「バッジ数」「パーティのポケモン」「現在のバトル状況」「アクティブなダイアログ」といった意味のある単位で構造化されている。

{
  "player": {
    "name": "ASH",
    "money": 3000,
    "badges": 1,
    "position": {"map_name": "PALLET TOWN", "x": 7, "y": 5},
    "facing": "down"
  },
  "party": [
    {
      "species": "Squirtle",
      "level": 12,
      "hp": 33,
      "max_hp": 33,
      "moves": ["Tackle", "Tail Whip", "Bubble"],
      "types": ["Water"]
    }
  ],
  "bag": [{"item": "Potion", "quantity": 3}],
  "battle": null,
  "dialog": {"active": false, "text": null}
}

Python APIで直接制御する

サーバーを経由せず、Pythonライブラリとしてエミュレータをインプロセス操作することも可能だ。ベンチマークや単体テストでHTTPオーバーヘッドを避けたいときに使える。

from pokemon_agent.emulator import create_emulator
from pokemon_agent.memory.red import PokemonRedReader
from pokemon_agent.state.builder import build_game_state

# ROMをヘッドレスで読み込み
emu = create_emulator("pokemon_red.gb")

# メモリリーダーで構造化ゲーム状態を取得
reader = PokemonRedReader(emu)
state = build_game_state(reader)

print(f"プレイヤー: {state['player']['name']}")
print(f"バッジ: {state['player']['badges']}")
print(f"パーティ: {[p['species'] for p in state['party']]}")

# ゲーム操作
emu.press("a", frames=10)
emu.tick(20)

# スクリーンショット(PIL Image)
image = emu.get_screen()
image.save("screenshot.png")

LLMエージェントとの連携パターン

LangChainと組み合わせれば、LLMのChainのなかにポケモン操作を組み込むこともできる。ReActパターンで「観察→思考→行動」のループを回すのが典型だ。

import requests
from langchain_anthropic import ChatAnthropic
from langchain_core.messages import HumanMessage

llm = ChatAnthropic(model="claude-sonnet-4-5")
BASE = "http://localhost:8765"

while True:
    # 1. 観察:ゲーム状態を取得
    state = requests.get(f"{BASE}/state").json()

    # 2. 思考:LLMに次の行動を判断させる
    prompt = f"""あなたはポケモンをプレイするAIです。
現在の状態: {state}
次に取るべきアクションを1つだけ選んでください:
press_a / press_b / walk_up / walk_down / walk_left / walk_right
"""
    response = llm.invoke([HumanMessage(content=prompt)])
    action = response.content.strip()

    # 3. 行動:アクションを送信
    requests.post(f"{BASE}/action", json={"actions": [action]})
効率的に動かすコツ
ループごとに全stateをLLMに渡すとトークン消費が嵩む。実運用では「バトル中はparty+battleだけ」「フィールドではposition+dialogだけ」のように、必要な部分だけフィルタして渡すと効率が数倍になる。
この章のポイント
REST APIは /state/action/screenshot の3本が中核
返却JSONはLLMが直接判断材料に使える構造化済みデータ
LangChain等でReAct(観察→思考→行動)ループが素直に書ける

アクション一覧とゲーム対応マトリクス

AIエージェントが送信できるアクションは事前定義されており、ボタン入力ごとにフレーム単位の待ち時間が設定されている。Game Boyの処理タイミングを考慮した設計で、移動中にボタン連打で詰まる・画面遷移中にアクションが無視される、といった問題が起きにくい。

アクション 動作 フレーム数
press_a Aボタン 10フレーム押下 + 20待機
press_b Bボタン 同上
press_start スタートボタン 同上
press_select セレクトボタン 同上
walk_up / walk_down 上下移動(1タイル) 16フレーム + 8待機
walk_left / walk_right 左右移動(1タイル) 同上
hold_a_30 Aボタン長押し 30フレーム
wait_60 待機(約1秒) 60フレーム
a_until_dialog_end ダイアログ終了まで連打 可変

注目すべきはa_until_dialog_endのような「高レベルアクション」が用意されている点だ。LLMに毎フレームの判断をさせるのは非効率なので、「ダイアログが終わるまでAボタンを押し続ける」といった頻出パターンが1アクションに抽象化されている。これはエージェント実装側のコード量を大幅に減らしてくれる。

ゲームタイトル別の対応状況

ゲーム エミュレータ 状態
ポケモン Red / Blue / Yellow PyBoy 対応済み
ポケモン Gold / Silver / Crystal PyBoy 開発予定
ポケモン FireRed / LeafGreen PyGBA Phase 2 開発中
ポケモン Ruby / Sapphire / Emerald PyGBA Phase 2 開発中
ポケモン Diamond / Pearl 以降(DS) 非対応 ロードマップ外

GB世代(Red/Blue/Yellow)がファーストターゲットに選ばれているのは合理的だ。RAMマップのリバースエンジニアリングがpret/pokeredによって完了しており、メモリアドレスから信頼性高くゲーム状態を取り出せる。同じ理由でPhase 2のFireRed対応はpret/pokefireredのデコンパイル成果を利用している。

ROM調達の注意
pokemon-agent自体はROMを同梱しない。自分が所有するゲームから合法的にダンプしたROMを用意する必要がある。最近は自作Game Boy Camera/Linkで安全にダンプできるツールが複数出ているので、そちらを参照すると良い。
この章のポイント
低レベル(press_a)と高レベル(a_until_dialog_end)の両方が用意されている
GB世代(Red/Blue/Yellow)に対応済み、Phase 2でGBA世代に拡張予定
メモリマップはpret/pokeredデコンパイル成果を活用

他のAIエージェント環境との比較

pokemon-agentの位置づけを、他のアプローチと比較して整理する。OpenAI Gymや自作シミュレータとは何が違うのか、どこで選ぶべきかを明確にしておきたい。

比較項目 pokemon-agent OpenAI Gym / Gymnasium 自作シミュレータ
操作インターフェース REST API(HTTP) Python関数呼び出し 実装依存
ヘッドレス実行 対応(サーバー・CI環境OK) 環境による 実装依存
ゲーム状態 RAM解析で構造化JSON 環境定義の観測空間 実装依存
エージェント非依存 任意のLLM・RL・スクリプト Python必須 実装依存
ゲーム複雑度 ポケモン(RPG全体) タスク特化が多い 限定的
再現性・共有 OSS、pip install OSS 個別実装
ダッシュボード Web GUI付き なし(別途実装) なし
想定ユーザー LLMエージェント研究者 RL研究者 限定プロジェクト

OpenAI Gymが「標準化されたインターフェース」を提供するのに対し、pokemon-agentは「実際のゲームROM上で動く」点が決定的に異なる。ゲーム内のバグ、予期しないイベント、テキストの曖昧さなど、現実に近い不確実性をエージェントに課せるのは意外と大きな違いだ。

RL環境とLLMエージェント環境の境界

観点 強化学習(RL)向き環境 LLMエージェント向き環境
観測空間 固定次元のベクトル・画像 構造化テキスト・JSON・画像
行動空間 離散/連続の定義済み集合 自然言語または名前付きアクション
学習単位 膨大なエピソード繰り返し プロンプト最適化・ツール呼び出し
代表ツール Gym / Gymnasium / PettingZoo pokemon-agent / ブラウザ操作

pokemon-agentは両方のユースケースに使えるが、本命はやはりLLMエージェントを試す側にある。観測が自然言語に近い構造化JSONとして得られるため、LLMが読むのに向いている。

Browser UseがWebブラウザ操作でAIの判断力を試すように、pokemon-agentはゲーム世界でAIの探索・戦闘・リソース管理能力をテストする環境として位置づけられる。ブラウザとゲーム、対象は違うが「実世界に近い複雑さをHTTP経由で扱う」という発想は共通している。

この章のポイント
pokemon-agentは「実ゲームROM上で動く」点でGymと根本的に異なる
RL環境よりLLMエージェント環境としての性格が強い
Browser Useと並ぶ「実世界系エージェント検証環境」の一角

Hermes Agentとの連携と活用シナリオ

Nous Research自身が開発するHermes Agentには、pokemon-playerスキルが組み込まれている。Hermes Agentにポケモンをプレイさせる場合、インストールからサーバー起動、ゲームプレイ開始までを自動でチェーン実行する仕組みになっている。

# Hermes Agentでpokemon-playerスキルを実行する例
hermes skill run pokemon-player \
  --rom path/to/pokemon_red.gb \
  --goal "最初のバッジを獲得する" \
  --model hermes-4

ただし重要なのは、pokemon-agent自体はHermesに依存しない設計になっている点だ。任意のLLM駆動エージェント、RLフレームワーク、カスタムスクリプトからHTTP API経由で制御できる。つまりHermesはpokemon-agentの「ショーケース」の1つであって、中核の仕組みは完全にフレームワーク中立だ。

活用シナリオ1|LLMの意思決定能力のベンチマーク

バトルでの技選択、チーム編成、アイテム使用のタイミングなど、複合的な判断をLLMに任せて性能を比較する用途だ。セーブ・ロード機能を使えば「ジムリーダー戦直前」の状態を再現して、同一条件で複数モデルを評価できる。

MODELS = ["claude-sonnet-4-5", "gpt-4o", "hermes-4"]
results = {}

for model in MODELS:
    # セーブを復元して同一条件スタート
    requests.post(f"{BASE}/load", json={"name": "before_brock"})

    # 30ターン以内でブロック(イワヤマジム)クリアできるか
    success, turns = play_with_model(model, goal="defeat_brock", max_turns=30)
    results[model] = {"success": success, "turns": turns}

print(results)

活用シナリオ2|強化学習のゲーム環境

報酬設計(バッジ獲得+10、レベルアップ+1、全滅-5など)と組み合わせれば、RLエージェントの学習環境として使える。Gym互換ラッパーを被せれば既存のRLアルゴリズムがそのまま動く。

活用シナリオ3|マルチモーダルAIの検証

GET /screenshotで画面画像を取得してビジョンモデルに判断させるパターンだ。テキストの構造化状態と画像の両方を同時に見せることで、「ダイアログ文は正しく読めたか」「マップの地形変化に気付けたか」といった多モーダル評価ができる。

活用シナリオ4|エージェントフレームワークの統合テスト

ForgeCodeのようなAIコーディングツールで、pokemon-agentと連携するスクリプトを自動生成させるといった応用も可能だ。「このゲームの状態を読んで、自動的にダイアログを進めるPythonスクリプトを書いて」といった指示で、pokemon-agent APIを使ったコードをAIに生成させられる。

セーブ・ロードで作る再現性の高い実験
「スターター選択直前」「ライバル戦直前」「ジムリーダー戦直前」など、意思決定が集中する場面でセーブを作っておくと、そこを起点に何度でもエージェントの挙動を比較できる。研究用途では特にこの「状態の凍結」が価値を持つ。
この章のポイント
Hermes Agentにはpokemon-playerスキルが標準搭載されている
ただしpokemon-agent自体はフレームワーク非依存で何からでも使える
ベンチマーク/RL/マルチモーダル/統合テストと幅広い用途に使える

WebSocketダッシュボードとデバッグ体験

pokemon-agentには、AIのプレイをブラウザでライブ観戦できるWebダッシュボードがオプションで付いている。--dashboard付きで起動するとhttp://localhost:8765/dashboardでアクセス可能だ。

WebSocketの/wsエンドポイントが、毎フレーム・毎アクションごとのイベントをプッシュしてくる。これをブラウザで受けて画面描画・ログ表示しているのがダッシュボードの中身だ。自作のモニタリングツールを作る場合もこのWSに繋ぐだけでよい。

// 自作ダッシュボードの最小例
const ws = new WebSocket("ws://localhost:8765/ws");
ws.onmessage = (ev) => {
  const event = JSON.parse(ev.data);
  if (event.type === "action") {
    console.log(`AI took action: ${event.action} at ${event.timestamp}`);
  }
  if (event.type === "state_change") {
    updateUI(event.state);
  }
};

デバッグ体験が良好なのもpokemon-agentの強みだ。エージェントが変な動きをしたとき、ダッシュボードの履歴から「どの状態で」「何を選んだか」を遡って確認できる。従来のRL環境だと「失敗ログと観測値の数値列」を睨む必要があったが、画面キャプチャ+JSON状態+アクション履歴が同時に見られるのは大きな違いだ。

ログ履歴とリプレイ

dashboard/history.py が提供する機能:
- アクション履歴の時系列記録
- 各時点のステート・スクリーンショット保存
- 任意ステップへのリプレイジャンプ
- CSV/JSONLへのエクスポート

これにより、エージェントの挙動を後から再現・分析できる。「なぜこの場面でBボタンを押したのか」「なぜワイルドポケモンから逃げたのか」といった思考プロセスの検証に使える。

この章のポイント
オプションWebダッシュボードでAIのプレイを可視化できる
WebSocket経由で自作モニタリングツールも簡単に構築可能
アクション履歴+状態+画面の3点セットでデバッグが容易

pokemon-agentあり vs なし|何が変わるのか

pokemon-agentを導入する前後で、エージェント研究・LLM評価の現場は何が変わるのか。具体的な対比で整理する。

場面 pokemon-agentなし pokemon-agentあり
複雑環境でのLLM評価 自作シミュレータ実装に数週間〜数ヶ月 pip installで当日中に走る
状態の構造化 画像からOCR・独自パース GET /stateでJSON即時取得
再現性のある実験 エピソードを毎回頭から実行 セーブ・ロードで任意地点から再開
言語非依存 Python限定の環境が多い HTTPで任意言語から操作
エージェント比較 環境ごとのI/F差異が大きい 同一エンドポイントで横比較
可視化 自前でビジュアライザ実装 付属ダッシュボードで完結

最も大きい変化は「ベンチマーク構築コストのほぼゼロ化」だ。これまで「複雑な環境でLLMエージェントを評価したい」と思っても、環境構築自体に膨大な工数がかかっていた。pokemon-agentはそこを一気に縮める。

エージェント研究での使い分け指針

環境選択のガイド:

┌─────────────────────┬──────────────────────────┐
│ 目的                │ 推奨環境                  │
├─────────────────────┼──────────────────────────┤
│ 離散タスクのRL学習  │ OpenAI Gym / Gymnasium   │
│ Web操作のエージェント│ Browser Use              │
│ コード生成の検証    │ SWE-bench / OpenHands    │
│ 複合意思決定の評価  │ pokemon-agent ★          │
│ マルチモーダル検証  │ pokemon-agent(画面+状態)│
└─────────────────────┴──────────────────────────┘

「複合意思決定」と「マルチモーダル」の両方で使える環境は本当に少ない。pokemon-agentはここでほぼ独占的な位置にある。

この章のポイント
環境構築コストを数週間→1日に短縮できるのが最大のメリット
セーブ・ロードで再現性の高い比較実験が可能に
複合意思決定+マルチモーダルという領域での定番選択肢になる

📌 まとめ|AIエージェント研究の新しいベンチマーク基盤

pokemon-agentは「ポケモンをプレイするAI」という親しみやすい見た目の裏に、エージェント研究の本質的な課題が詰まっている。長期的な目標設定、リソース管理、不完全情報下での意思決定——それらを全部同時に試せる環境が、pip installで動くという事実の意味は大きい。

REST APIベースのクリーンな設計により、LLMエージェント・RLフレームワーク・カスタムスクリプトのいずれからも同一環境にアクセスできる。これは「特定のフレームワークの人だけが使える環境」ではなく、HTTPを話せる誰でも参加できる実験場だ。

pokemon-agentのポイントを再整理すると:

  1. アーキテクチャ: PyBoy/PyGBA + FastAPIで「エミュレータをAPI化」
  2. インストール: pip install pokemon-agent pyboy 1行で完了
  3. API: /state(観測)・/action(行動)・/screenshot(視覚)の3本柱
  4. 状態表現: RAM解析→構造化JSONでLLMが直接読める形に
  5. 対応タイトル: Red/Blue/Yellow対応済み、FireRed以降はPhase 2開発中
  6. 活用範囲: LLMベンチマーク・RL学習・マルチモーダル検証・統合テスト

Game Boy世代のゲーム対応が中心だが、GBA対応のPhase 2も開発が進んでいる。AIエージェントの「知性」をゲームという複雑な環境で測定したい開発者・研究者にとって、手軽に導入できる実験基盤として今後デファクトの1つになる可能性が高い

「エージェントの賢さは、複雑な環境でしか測れない」——pokemon-agentはその前提に応える、2026年で最も入口の低いAIエージェント評価環境だ。今日から手元でROMを用意して、pokemon-agent serveから始めてみてほしい。


参照ソース