practitioner-guide-multi-turn-agentic-rl
複数ターンの強化学習を通じて、環境の複雑性、報酬シグナル、ポリシー初期化を体系的に最適化することで、LLMエージェントを訓練します。カリキュラム学習、検証済みの密な報酬、ドメイン固有のSFT(教師あり微調整)を活用して、TextWorld、ALFWorld、SWE-Gymベンチマーク上でのエージェントの安定した収束を実現します。
description の原文を見る
Train LLM agents via multi-turn reinforcement learning by systematically optimizing environment complexity, reward signals, and policy initialization. Use curriculum learning, dense verified rewards, and domain-specific SFT for reliable agent convergence across TextWorld, ALFWorld, and SWE-Gym benchmarks.
SKILL.md 本文
マルチターン・エージェント強化学習の実践ガイド
コアコンセプト
マルチターン・エージェント強化学習は、拡張タスク列を通じた強化学習により言語モデルをインタラクティブなエージェントとして訓練します。重要な洞察は、パフォーマンスが環境仕様、報酬設計、ポリシー初期化という3つの柱に渡った調整された設計選択に依存しており、単一のコンポーネントの独立した最適化ではないということです。
アーキテクチャ概要
- POMDP定式化: エージェントはエピソード境界で実行される自然言語コマンドを生成し(
<eos>トークン)、スパース報酬を伴うマルチステップの軌跡を生成します - トークンレベルのクレジット割当: TD誤差とGAE利点が軌跡内のすべてのトークンを通じて流れ、報酬は完了時にのみ現れますが、価値ブートストラップを可能にします
- マルチドメイン評価: TextWorld(ナビゲーション)、ALFWorld(家事タスク)、SWE-Gym(コード生成)がアルゴリズム・環境の相互作用を明らかにします
- カリキュラム対応訓練: シンプルから複雑な環境へのスキル転移は、単一複雑度での訓練よりもより難しいタスクでの性能を上回ります
実装ステップ
1. カリキュラム学習を伴う環境設計
エージェントの基本的な行動を確立するため、難易度を上げる前にリダクト複雑度の環境から開始します。論文は3つの独立した複雑度の次元を識別しています: 空間(部屋数)、オブジェクト(エンティティ数)、および解法(クエスト長)。
# 環境複雑度レベルの設定
environments = {
'simple': {'rooms': 2, 'objects': 3, 'quest_length': 2},
'medium': {'rooms': 4, 'objects': 8, 'quest_length': 4},
'hard': {'rooms': 8, 'objects': 12, 'quest_length': 6}
}
# カリキュラム戦略: シンプルから開始、複雑環境で評価
training_curriculum = ['simple', 'medium'] # 各50%
evaluation_curriculum = ['hard']
# オブジェクト複雑度はLLMドメインで空間的な複雑度より難しい
# オブジェクト操作カリキュラムを優先
2. マルチターンタスク向けの報酬エンジニアリング
密集した検証済み報酬は、スパースなバイナリ信号と比べて訓練を大幅に加速させます。学習された報酬モデルよりも実行ベースのフィードバック(ユニットテスト、環境検証)を優先します。
# スパース報酬ベースライン: エピソード境界でのみ
def sparse_reward(episode_success):
return 1.0 if episode_success else 0.0
# 密集報酬: ターンごとの比率ベース信号
def dense_reward(partial_progress, total_steps):
# 中間進捗報酬は学習を平滑化
completion_ratio = partial_progress / total_steps
return completion_ratio # 各ステップで信号
# 検証済み報酬 > モデルベース報酬
def verified_reward(episode_output, unit_tests):
# ユニットテストを実行、カバレッジを計測
passed_tests = run_tests(episode_output)
return len(passed_tests) / len(unit_tests) # 比率検証
ベンチマーク結果は密集報酬が58%の成功率を達成することを示しており、スパース報酬は41%です(TextWorld、PPO)。コーディングタスクでは、比率検証実行テスト(22%成功)は学習されたCodeRMモデル(7.2%)を上回ります。
3. SFT-RL トレードオフを伴うポリシー初期化
固定計算予算下では、行動基盤化のための教師あり微調整(SFT)とタスク適応のための強化学習(RL)のバランスを取ります。最適な割当はドメイン知識を保護しながらRL学習を有効にします。
# 計算予算: 1000ユニット(SFTはRLエピソードの10倍コスト)
# 最適戦略: 60個のSFTデモ + 400個のRLエピソード
sft_budget = 60 # デモンストレーション
rl_budget = 400 # エピソード
total_cost = sft_budget * 10 + rl_budget * 1 # 1000ユニット
# インドメイン: 85%、汎化: 59%
# vs SFT単体: 95%/55%、純粋RL: インドメイン54%
# 重要: 安定性に必須のドメイン特有SFT
# クロスドメイン初期化はポリシーの急速な崩壊を引き起こす
4. アルゴリズムとハイパーパラメータ選択
異なるドメインは異なるアルゴリズムに適しています。PPOは状態ベースのタスク(88% TextWorld)で優れています; GRPOはスパース報酬のコーディングを効率的に処理します。ハイパーパラメータは大きな影響を与えます。
# ドメインごとのアルゴリズム選択
algorithms = {
'navigation': 'PPO', # 状態ベース、密な観察
'coding': 'GRPO', # スパース報酬、スパースな例
'household': 'PPO' # 混合ホライズン、中間信号
}
# 最適なハイパーパラメータセット(系統的アブレーション)
hyperparams = {
'kl_coeff': 0.01, # より高い値(>0.001)は安定性を向上
'temperature': 0.75, # 0.7-1.0範囲は探索を平衡
'actor_lr': 1e-6,
'critic_lr': 1e-5,
'gamma': 1.0, # エピソード報酬の割引なし
'batch_size': 256,
'gae_lambda': 0.95
}
# トークンレベルのクレジット割当
def gae_advantage(rewards, values, gamma=1.0, lambda_=0.95):
# TD Error: δ_t^i = r_t^i + γV(h_t^(i+1)) - V(h_t^i)
# GAE: Â_t^i = Σ(γλ)^l δ_t^(i+l)
# スパース報酬にもかかわらずすべてのトークンに適用
advantages = []
for t in range(len(rewards)):
td_error = rewards[t] + gamma * values[t+1] - values[t]
advantage = td_error
for l in range(1, len(rewards) - t):
advantage += (gamma * lambda_)**l * (rewards[t+l] + gamma * values[t+l+1] - values[t+l])
advantages.append(advantage)
return advantages
実践的ガイダンス
環境複雑度: より単純な環境での訓練を開始して、汎化可能な再利用可能なスキルを開発します。オブジェクト操作は空間的ナビゲーションより難しいカリキュラムを表します。最難環境で評価して真の汎化を評価します。
報酬信号優先度: (1) 検証済み実行報酬 > (2) 比率ベース中間信号 > (3) モデルベースプロキシ。高価な報酬モデル訓練をスキップします; 直接的な環境フィードバックがより効果的です。
ポリシー安定性: 純粋RLが急速な崩壊を示すため、ドメイン特有のSFT初期化(1000ユニット予算下で60デモ)を維持します。γ=1.0は長ホライズンのエピソード報酬の割引を回避します。
モデルスケーレトレードオフ: 7B以上のモデルは複雑な推論と長いホライズンを確実に処理します。1.5Bモデルはより単純なタスクで機能しますが約55%で頭打ちになります。制約のあるデプロイメントでのみ小規模モデルを使用します。
使用する場合 / 使用しない場合
使用するべき場合:
- 拡張インタラクティブタスク(TextWorld、ALFWorld、SWE-Gymスタイルの問題)でのLLMエージェント訓練
- 検証済み報酬信号(ユニットテスト、環境API、グラウンドトゥルースチェッカー)へのアクセスがある場合
- タスクが中間マイルストーンを伴うマルチステップ構造を持つ場合
- デプロイメントが多様なシナリオ全体で堅牢なエージェント動作を必要とする場合
向いていない場合:
- シングルターンタスクまたは純粋な言語生成(標準RLHFで十分)
- 信頼できる報酬信号がないドメイン、または報酬モデルが不可避な場合
- 計算予算が極度に限定されている場合(1000ユニット同等未満)
- 検証インフラなしで完全なセーフティ保証を必要とするタスク
参考文献
このスキルは「A Practitioner's Guide to Multi-turn Agentic Reinforcement Learning」(arXiv:2510.01132)の知見をエンコードしており、TextWorld、ALFWorld、SWE-Gymにわたる経験的アブレーションを体系化しています。コードと再現可能性の詳細はveRLフレームワーク経由で利用可能です。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- ADu2021
- リポジトリ
- ADu2021/skillXiv
- ライセンス
- MIT
- 最終更新
- 2026/3/26
Source: https://github.com/ADu2021/skillXiv / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。