Contents — 8 sections

AIエージェントに実VRChatを操作させて、RicochetTanksの動作確認をしていた。

画面は見える。

クリック射撃もできる。

でもSpaceを送っても、座席から降りたことを確認できなかった。

ここで、

「Space降車が壊れている」

と記録するのは簡単だった。

でもそうしなかった。

判定は FAIL ではなく、NOT_CONFIRMED にした。

後で人間が実キーボードからSpaceを押すと、普通に降りられた。

ゲーム側ではなく、入力注入側の問題だった可能性が高かった。

エージェントが見ていたもの

2026年10月5日のM0試験。

AIエージェントが実VRChat Desktopを操作して確認できたのは、

  • ワールド表示
  • 座席への搭乗
  • クリックによる射撃
  • 発射した弾が終了すること

など。

一方で、

  • Spaceによる降車
  • 移動キー
  • 一部の座席操作

は、キーを注入しても「ゲーム側へ届いた」と確定できなかった。

だから試験記録では、その項目を NOT_CONFIRMED にした。

失敗には2種類ある

外からキーを注入する試験では、

Agent
  ↓
OS / automation
  ↓
Window focus
  ↓
VRChat input
  ↓
Udon / game logic

という経路を通る。

Spaceを送って反応しなかった場合、

  1. Agentが正しいkey eventを出せなかった
  2. 別Windowにfocusがあった
  3. VRChatがその注入方式を受けなかった
  4. Input layerまでは届いたがgame logicが処理しなかった
  5. 実際は処理されたが観測方法で見逃した

のどれでもあり得る。

最後の画面だけ見て、

「ゲームが壊れている」

とは言えない。

その日の夜、人間が同じ操作をした

後でオーナー本人が、実キーボードを使って同じbuildを操作した。

結果は、

  • Space降車: PASS
  • W/S移動: PASS
  • A/D旋回: PASS
  • RESET TRIAL: PASS
  • 壁で一度反射させた命中: PASS
  • 意図しない降車: なし

だった。

つまり少なくとも、Space降車については、

AI操作で確認できなかったこと ≠ ゲーム機能が壊れていたこと

だった。

Automationの失敗をProductの失敗へ昇格させない

AI AgentやComputer Useを試験へ入れると、できることはかなり増える。

でも同時に、新しい故障点も増える。

  • focus
  • input injection
  • timing
  • window position
  • permission
  • rendering
  • observation

Automation layer自身が失敗する。

だから試験結果を、

PASS
FAIL
NOT_CONFIRMED
NOT_RUN

のように分ける意味が出てくる。

確認できなかったものを全部FAILへ入れると、Product側の品質とTest Harness側の品質が混ざる。

「再現できない」は証拠になる。ただし何の証拠かを限定する

AI操作でSpace降車を再現できなかった。

これは無価値な結果ではない。

少なくとも、

「このAutomation経路では安定確認できなかった」

という証拠にはなる。

でも、

「Space降車機能が壊れている」

という証拠にはならない。

この差を記録しておけば、次の試験を選べる。

今回は、人間の物理入力を使う試験へ切り替えた。

Agentic QAでは観測系も試験対象になる

エージェントへテストを任せると、

「人間の代わりに確認してくれる」

と考えやすい。

実際には、Agentはもう一つの計測器に近い。

計測器には、

  • 測れるもの
  • 測れないもの
  • 誤差
  • failure mode

がある。

キー注入が不得意なら、その項目だけ人間へhandoffすればいい。

全部を人間でやる必要もない。

全部をAgentにやらせる必要もない。

いまの運用

RicochetTanksでは、できるところは自動化している。

Editor検査。

ClientSim。

Build。

複数Accountの起動。

宣伝素材生成。

一方で、VRChatへのuploadや、実際の身体操作を含む最終確認には人間gateを残している。

重要なのは自動化率ではなく、

各結果が何を証明しているかを間違えないこと。

いまの結論

AI Agentが操作して反応しなかった。

それだけではBug Reportにならない。

まず、

Productが失敗したのか、Test Harnessが失敗したのか

を分ける。

今回Space降車を FAIL ではなく NOT_CONFIRMED にしたことで、後の人間試験と矛盾しなかった。

Agentic developmentでは、実装を自動化するより先に、証拠のラベルを雑にしないことがかなり重要だと思っている。