プロンプトインジェクション対策をやった話
AIに自由記述を判定させるゲームである以上、プレイヤーが「AIへの指示そのものを書き換えようとする入力」を送ってくることは、最初から想定しておく必要がありました。この記事では、そうした入力への向き合い方を、具体的な手口には触れない範囲で書いておきます。
なぜ対策が必要なのか
このゲームのAIは、あらかじめ用意されたルールに従って判定を行うよう設計されています。ですが、入力の書き方次第では、AIに「今までのルールを忘れてください」といった形で、本来のルールを無視させようとする入力が送られてくることがあります。エンタメとして遊んでいる分には実害は小さいですが、ゲームとしての一貫性やバランスが崩れてしまう原因になります。
判定AIに全てを委ねない設計
一番意識したのは、「怪しい入力の検出」と「物語としての判定」を、同じAIの同じ処理の中で完結させないことです。ルールを無視させようとする意図が明確な入力については、AIの自由な判定に渡す前の段階で検出し、固定の結果を返す仕組みを別に用意しています。これにより、仮にAI側の判定がうまく騙されてしまったとしても、最終的な結果はゲームとして意図した範囲に収まるようになっています。
「塞ぐ」だけでなく「遊びに変える」
こうした入力への対策は、単に「弾いて終わり」にするのではなく、ゲームの世界観に沿った結末(ルール違反として扱われる、など)に落とし込むようにしています。対策そのものも、プレイヤーから見れば一つの「詰み筋」として楽しんでもらえるような形を意識しています。
まとめ
AIを判定者として使うゲームでは、正攻法のプレイヤーだけでなく、システムの裏をかこうとするプレイヤーの存在も前提にする必要があります。塞ぐべきところは塞ぎつつ、それすらも遊びの一部にできないか、というバランス感覚を大事にしています。