リフレクションと自己批評のループ
各ステップの後にモデルへ「うまくいきましたか?次は何をしますか?」と尋ねます — 最も低コストで信頼性を高める方法です。
「リフレクションと自己批評のループ」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
リフレクションとは
リフレクションとは、エージェントが自分の過去のアクションを振り返り、「何がうまくいったか?何がうまくいかなかったか?何を変えるべきか?」と問いかけることです。
エージェントの信頼性を高める、最も低コストな方法です。
Reflexion論文
Shinn らは2023年に Reflexion を発表しました。失敗するたびに、エージェントが自己批評を書き、それを次の試みへの指針として使います。品質は劇的に向上しました。
A Simple Reflection Loop
def with_reflection(task, max_attempts=3):
reflections = []
for attempt in range(max_attempts):
result = agent.run(task, hints=reflections)
if result.success:
return result
reflection = llm.invoke(f'''
Task: {task}
Attempt: {attempt + 1}
What went wrong: {result.error}
Reflect on what to do differently next time.
''').content
reflections.append(reflection)
return last_result失敗しなくても自己批評する
成功した出力についても、エージェントに自己批評させることができます:
critique_prompt = '''
Review your answer for:
1. Is it factually correct?
2. Is it complete?
3. Are there obvious improvements?
If improvements possible, return REVISE: <revised answer>.
Otherwise return ACCEPT.
'''別のモデルを批評役にする
批評には別のモデルを使います:
- 共有されたバイアスを減らせる
- コストを下げられる(小さな批評モデル、大きな作成モデル)
- 逆の構成も可能(小さな作成モデル、大きな批評モデル)
ステップ単位のリフレクション
最後だけでなく、各ステップの後にリフレクションを行います:
thought = 'I will use search_kb'
action = call_search_kb(...)
observation = '...'
reflection = llm.invoke(f'Did that step help? Should I try a different tool next?').contentコストを意識する
リフレクションによってLLMの呼び出し回数は2倍になります。レイテンシーが重要な経路では省略してください。高品質な出力が必要な場合は、その価値があります。
お世辞的な振り返りを避ける
「うまくいきましたか?」と尋ねると、モデルはよく「はい」と答えます。批判的な評価を強制してください。
critique_prompt = 'List 3 SPECIFIC PROBLEMS with the previous answer. If you cannot find any, say WHY there are none.'振り返りの記憶
振り返りを永続ストアに保存します。複数のセッションを重ねることで、エージェントは「学んだ教訓」のライブラリを構築します。
save_reflection({
'task_type': 'sql-write',
'lesson': 'Always check if table is partitioned before running heavy aggregations.',
'created_at': now()
})関連する過去の振り返りを取得する
新しいタスクの開始時に、タスクの種類に一致する教訓を取得します。
lessons = vector_db.search(embed(task_description), filter={'type': 'reflection'}, k=3)
prompt += '\nLessons learned from past tasks:\n' + '\n'.join(lessons)具体的な成果
コードエージェントへのプロンプトに「各ステップの完了後、問題が起こる可能性を簡潔に記録し、再確認してください」と追加すると、ベンチマークでは通常、バグ発生率が15~30%低下します。
検証器と生成器
別の方法として、1つのLLMに生成させ、別のLLMに検証させます。検証器が却下した場合は、生成器が却下理由を使って再試行します。現在、多くの本番環境のエージェントで使われています。
振り返りを行わない場合
- すでに低コストな一度きりのタスク
- リアルタイムチャット
- レイテンシーが重要な処理経路
Reflexionの重要な洞察
Reflexionの論文から得られる重要な洞察は何でしょうか?
まとめ
振り返りは、低コストで品質を高める手段です。失敗後に批評し、教訓を保存し、将来の類似タスクで取得します。可能であれば、別のcriticモデルを使用してください。
AI チューターと学ぶ AI Agents — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 60
- レッスン
- 239
よくある質問
「リフレクションと自己批評のループ」レッスンは無料ですか?
はい。「リフレクションと自己批評のループ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。
「リフレクションと自己批評のループ」で何を学びますか?
各ステップの後にモデルへ「うまくいきましたか?次は何をしますか?」と尋ねます — 最も低コストで信頼性を高める方法です。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Agentsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「リフレクションと自己批評のループ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Agentsレッスンでコードを書いて実行できますか?
はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 階層的なタスク分解
- 目標スタックとバックトラッキング
- ワールドモデルと先読み
- リフレクションと自己批評のループ