TF-Agents という強化学習のライブラリがありますが、自分でエージェントに学習させたい環境を定義する際に、ドキュメントや記事がほとんど見つからずに苦労したので、備忘録として残しておきます。
以下の RockScissorsPaperEnv が独自の環境のクラスになります。簡単なジャンケンの環境で、100 回勝負で相手は常にグーを出します。
最低限、action_spec メソッドでアクションの種類、observation_spec メソッドで観測できる状態の定義を返し、_step メソッドで 1 ステップ進める処理 (終了判定、報酬計算含む)、_reset メソッドで環境のリセット処理を定義すれば良さそうです。