Reflexionとは|AIの失敗メモを引き継ぐ条件と見直し方

AI研究・論文解説
ページの位置未計測

AI研究・論文解説|Reflexion(2023)

先に結論

読了時間の目安

しっかり読む:
約13分
要点を読む:
約7分

文字量と図表からの目安です。操作・実践・X投稿の閲覧時間は含みません。

Reflexionは、試行の結果を言語化して次の試行へ渡す研究手法です。本記事では、失敗の根拠が不明なら利用を保留し、適用条件に矛盾があれば見直し、根拠と条件が整理できたら次の結果で確かめながら使うことを勧めます。

対象は2023年の研究であり、日本語チャットでの改善効果を測った記事ではありません。判断表と記入欄は筆者の提案で、原論文が効果を確認した公式テンプレートではありません。Reflexion原論文の仕組みと限界

  • AIが似た間違いを繰り返し、何を記録すればよいか迷っている人
  • AIの反省文を、そのまま次の指示に使ってよいか確かめたい人

Reflexionは失敗メモで何を変えるか

Reflexionは、試行の結果を言語化して次に渡す研究手法であり、モデルの重みを更新せずに経験メモリを使います。変えるのは、次の試行で参照できる情報です。原論文の方式説明(§3)

Shinnらが2023年に発表し、NeurIPS 2023に掲載されました。論文の著者所属にはNortheastern University、MIT、Princeton Universityが記載されています。一般向けチャットサービスや新しい基盤モデルの名前とは区別してください。NeurIPSの掲載情報/著者・所属を記載した論文PDF

著者の投稿|言語エージェントとしてのReflexion

投稿者:Shunyu Yao(@ShunyuYao12、論文共著者)/投稿日:

原文抜粋:“clean & general conceptual framework via language agent/RL”

日本語訳(抜粋):「言語エージェント/強化学習による、明確で汎用的な概念の枠組み」

投稿の要約:Yao氏はReflexion v2の狙いとして、言語エージェントと強化学習の観点から枠組みを整理することと、より多様で複雑な課題で性能を調べることを挙げています。

これはv2を紹介した当時の投稿です。本文の方式・数値・限界は、その後のarXiv v4で確認しています。ここでいう強化学習は、重みの更新を伴う方式とは区別が必要です。Reflexionでは、評価を受けた振り返りを次の試行の文脈へ渡します。以下の3つの役割で、その流れを見ていきます。

埋め込みが表示されない場合も、上の原文抜粋・日本語訳・要約は読めます。Xで投稿全文を読む

出力・評価・振り返りの3つの役割

Reflexionの基本構成は、出力・行動を担うActor、結果を評価するEvaluator、改善の手掛かりを言語化するSelf-Reflectionです。これらは処理上の役割であり、別々のLLMを3つ契約するという意味ではありません。LLMとは、大規模な言語データを学び、文章などを生成するモデルです。原論文の構成と評価方法(§3)

評価の方法には、正解との照合、ルール、LLMによる判定などがあります。プログラミング課題なら、テストに通ったかという結果を振り返りに使います。ただし、評価自体が間違っていれば、そこから作る教訓も疑う必要があります。原論文の評価方法と誤判定の分析(§3・§4.3)

AIエージェントとは、目的に向けて出力や行動を選び、結果を受けて次へ進む仕組みです。全体像を補いたい場合は、AIエージェントの基本的な仕組みも参照できます。

重みの更新と、メモを渡すことの違い

Reflexionでは、過去の経験を次の入力の文脈へ加えます。重みとは、モデル内部で学習によって調整されるパラメータです。モデルを再学習させる処理と、試行時に経験メモを読ませる処理は分けて考えます。原論文の経験メモリの説明(§3)

たとえば、前の試行で見落とした条件を言葉にして残し、次の試行で参照させる関係です。ここでいうメモリは、チャット製品の保存機能や無期限の記憶を保証するものではありません。論文では課題ごとに保持する経験を制限しています。原論文のメモリ設定

評価を受けた試行から経験メモを作り、次の試行へ渡す模式図です。右の用紙は未完成で、成功を保証する図ではありません。Shinnら(2023)の原論文を基に本記事で再構成(CC BY 4.0)。

HumanEvalの通過率91.0%と、MBPPでの低下

原論文には改善例と低下例の両方があり、失敗の記録だけで広く性能が上がるとは読めません。2023年のTable 1では、コード生成課題HumanEvalのPythonで比較対象GPT-4の80.1%に対し、Reflexionは91.0%でした。一方、別のコード生成課題MBPPのPythonでは80.1%に対し77.1%でした。いずれも同表のpass@1です。原論文Table 1の実験結果

pass@1とは、評価するコード候補を1つ選んだ場合のテスト通過を表す指標です。Reflexionでは候補を作る途中にテスト・振り返り・修正が入るため、「AIへの1回の問い合わせで91%成功」という意味ではありません。HumanEval原典の指標説明/Reflexionの反復・評価実装

この数値は研究当時の課題・モデル・実験条件に限られます。現在の日本語チャットや日常の文章作成で同じ改善幅が得られるかは、本記事の参照資料からは判断できません。次の判断表も、その効果を実証したものではありません。

失敗メモを次の試行に使ってよいか

Reflexionを参考にした本記事の判断表は、失敗の判定根拠とメモの適用条件を確かめ、利用の保留・見直し・再評価を選ぶためのものです。原因を確定した記録と、次に確かめる仮説を分けて使います。

根拠・仮説・適用条件から採否を決める

次へ渡す前に、観測した失敗と原因の仮説を分けてください。原論文にも自己生成テストの誤判定が報告されているため、評価や振り返りの文面だけで原因が確定したとは扱いません。原論文の誤判定と限界(§4.3・§5)

対象は、次の試行へ渡す失敗メモです。まず判定根拠を確認し、不明なら利用を保留します。次に適用条件を照合し、矛盾があれば見直します。両方を整理できたら、未確認の原因は仮説と明記して使い、次の結果で再評価します。表は横にスクロールできます。

次に渡す失敗メモの判断表筆者の提案。改善の保証ではありません。研究確認:2026年9月28日。根拠とする原論文
確認する点次へ渡す条件満たさないときの行動
失敗の基準・根拠満たすべき条件と、外れた箇所を資料やテストで示せる利用を保留:何を失敗と判定したか、資料やテストで確かめる
観測した事実出力・行動のどこが条件と違ったかを記録している記録を分ける:「注意不足だった」などの解釈と、実際の出力を区別する
原因の仮説未確認と明記し、次の結果で確かめられる形にしている仮説へ戻す:原因を言い切らず、次に何を確かめれば区別できるかを決める
次の変更・確認何を変え、何と照合するかが具体的具体化する:「もっと慎重に」から、確認する項目や資料へ書き換える
適用条件同じ目的・資料・合格基準で使うか、変更点を確かめている適用を見直す:別の課題へ流用する前に、目的・資料・合格基準の変更を照合する
見直す条件新しい結果との矛盾や、条件変更時に再検討すると決めている修正・適用停止:結果と矛盾する教訓を見直す。元の入力・出力・判定記録とは分ける

「使って再評価する」は、改善が確認できたという判定ではありません。次の結果を元資料や合格基準と照合して、メモを残すか見直すか決めてください。

失敗メモの記入欄と使い方

判断表で確認した内容を、次の記入欄へ移します。空欄を埋めるために原因を確定せず、未確認なら仮説として記録してください。

次の試行へ渡すメモ

失敗の判定基準・根拠:

観測した事実:

原因の仮説(未確認):

次に変えること・確かめること:

適用条件:

見直す条件:

架空例:渡した資料から予定を日付順に整理するよう依頼したのに、出力から1件の日付が抜けたとします。「出力に日付がない」は観測した事実です。「確認項目を設けなかったためではないか」は原因の仮説であり、AIの内部で起きたことを確認した説明ではありません。

この例なら、次の変更は「各予定の日付を元資料と照合し、資料にない場合は未記載と示す」と記録できます。同じ資料を整理する場合の案であり、実際にAIへ入力して効果を測った結果ではありません。

改善しないとき、失敗メモをどう見直すか

Reflexionを参考にした失敗メモの運用では、改善しない結果や条件の変化を、メモと評価方法を見直すきっかけにすることを提案します。記録を増やす前に、どの前提が残っているか確かめます。

残った失敗を、評価と修正内容に照らす

同じ失敗が残ったら、判定の根拠と、実際に変えた点を照合します。前の架空例なら、元資料に日付があるのに出力から落ちたのか、元資料にも日付がなかったのかで、見直す対象が違います。

前者なら確認項目の適用や出力を調べ、後者なら「資料にない日付まで埋める」という期待を見直します。メモが改善を生んだかを判断する前に、入力側の情報不足を出力だけの失敗にしていないか確かめる、という考え方です。

資料・目的・基準が変わったら再確認する

別の条件へ移るときは、前のメモがそのまま使えるかを確認してください。予定の一覧から日付順に整理する作業と、日付のない議事録から論点を整理する作業では、必要な項目が違います。

前の教訓を無条件に足すと、今回必要ない日付まで求める指示になりかねません。目的・資料・合格基準を記録しておくことは、適用範囲のずれを見つける助けになると考えられます。

教訓の適用停止と、元の記録の保持を分ける

新しい結果と矛盾する教訓は、次の指示への適用を止めるか、条件を付け直す対象にします。元の入力・出力・判定まで消すという意味ではありません。教訓が誤りだったと気づいた理由を振り返れるよう、試行の記録と現在使うメモを区別します。

根拠を確認できないまま同じ修正を繰り返す場合は、再試行より資料や評価方法の確認を先にすることを勧めます。原論文にも評価や探索の限界があり、「反省を続ければ解決する」という保証はありません。原論文の限界(§5)

FAQ:Reflexionで誤解しやすいこと

Reflexionは研究フレームワークであり、関連手法との関係、公開コードの利用条件、実行に使うサービスの条件を分けて理解する必要があります。導入を考えるときに混ざりやすい3点を整理します。

Reflexionは試行間で経験を利用し、Self-Refineは生成物へのフィードバックと反復修正、ReActは推論と行動の組み合わせを扱います。比較する軸が違い、互いに排他的な選択肢ではありません。Reflexionの構成/Self-Refineの著者論文/ReActの著者論文

Reflexionの原論文ではReActも使われています。「どれが最強か」より、出力を修正したいのか、行動と結果を扱いたいのか、次の試行へ経験を渡したいのかを分けると整理しやすくなります。

公開コードが無料なら、API利用も無料?

Reflexionのコード公開と、実行に使うモデルのAPI料金は別であり、コードのライセンスだけではAPIの無料利用を意味しません。著者リポジトリにはMIT Licenseが表示されています(2026年9月28日確認)。著者公開コード/MIT Licenseの表示

MIT Licenseには商用利用を含む許諾と、著作権・許諾表示などの条件があります。利用するモデル・データ・外部サービスの料金や条件まで、この許諾で決まるわけではありません。本記事では現在のAPI単価や公開コードの動作互換性は確認していません。

重みを更新しないなら、入力は保存されない?

Reflexionの「重みを更新しない」は研究方式の説明であり、入力の保存・削除や、利用するサービスによる学習利用の有無は判断できません。論文の経験メモリと、サービス側のデータ管理は別の話です。原論文の方式とメモリ

保存先・保存期間・削除方法を知りたい場合は、実行環境と利用サービスの条件を個別に確かめる必要があります。本記事では製品別の最新の保存方針を確認していないため、「学習されない」「自動で削除される」とは断定しません。

まとめ:次の試行で確かめること

Reflexionを日常の作業へ応用する際は、手元の失敗メモを判断表に照らし、次の試行で何と照合するかを1つ決めてください。判定根拠がない場合は、再試行より資料や評価方法の確認を先にします。

課題・資料・合格基準が変わったとき、または次の結果がメモと矛盾したときは、判断表で根拠と適用条件を確かめ直してください。

引用元・参考情報

ブログをメールで購読

学べるブログの更新・重要アップデート(Grok/Gemini など)を、メールで受け取れます。無料。いつでも解除できます。更新時(週1〜2回目安)

AI研究・論文解説

コメント

学べるブログをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

学べるブログをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む