Reflection
リフレクション
りふれくしょん
Definition
Reflection is a review step where the model or system checks generated results, identifies errors or gaps, and revises the output. It improves reliability by adding a quality-control loop.
プレゼン資料を作ったあと、自分で読み返して「この説明はわかりにくいな」と修正した経験は誰にでもあるはずです。AIにも同じことができます。リフレクション(Reflection)とは、AIが自身の生成した出力を振り返り、誤りや改善点を見つけて修正する自己評価の仕組みです。
なぜ自己レビューが必要なのか
LLMの1回の生成で完璧な出力が得られるとは限りません。事実の誤り、論理の飛躍、要件の見落とし、トーンの不一致など、さまざまな問題が含まれる可能性があります。人間のワークフローでもドラフト→レビュー→修正のサイクルは当たり前です。リフレクションはこの「セルフレビュー」をAIに組み込み、出力品質を自動的に向上させる手法です。
仕組みの基本パターン
リフレクションの基本的な実装は2段階構成です。まず、LLMにタスクを実行させて初期出力を生成します。次に、同じLLMまたは別のLLMに「この出力を批判的にレビューしてください。誤り、不足、改善点を指摘してください」と指示し、フィードバックを生成させます。そのフィードバックを元に出力を修正し、必要に応じてこのサイクルを繰り返します。生成者と批評者を分離することで、より客観的な評価が可能になります。
コード生成での活用
リフレクションが特に効果を発揮するのがコード生成です。生成されたコードをテスト実行し、エラーが出れば修正、テストが通れば次に進む。Reflexionフレームワークでは、テスト結果を「環境からのフィードバック」として使い、コードを反復的に改善します。LLMの内部的な自己評価だけでなく、外部環境からの客観的なフィードバックを組み込むことで修正精度が大幅に向上します。
マルチエージェントによるリフレクション
1つのモデルが自分自身をレビューすると、同じバイアスで同じ間違いを見逃す可能性があります。これを解決するのがマルチエージェントリフレクションです。異なる役割を持つ複数のエージェント(コーダー、レビューアー、テスターなど)が互いの出力を検証し合います。この「議論」を通じて、単一エージェントでは発見できなかった問題を検出できます。
反復回数とコストの制御
リフレクションの課題は、反復するたびにLLMの呼び出し回数が増え、コストとレイテンシが上昇する点です。また、無限に繰り返しても品質が頭打ちになったり、かえって過剰修正になることもあります。一般的には2〜3回の反復で十分な改善が得られることが多く、改善幅が閾値以下になったらループを終了する仕組みが実用的です。