Reflexion: Language Agents with Verbal Reinforcement Learning
Digest (CISELQ)
- Context: LLM 기반 에이전트(ReAct, AutoGPT 등)가 복잡한 의사결정·코딩·추론 태스크에서 실수를 반복하지만, 기존 RL 방식으로 LLM을 미세조정하는 것은 막대한 compute와 데이터를 요구하며 closed-source 모델에는 적용 불가능하다.
- Issue: 대형 LLM 에이전트가 자신의 실패로부터 빠르고 저렴하게 학습하려면 gradient 기반 업데이트 없이 trial-and-error 경험을 내재화할 수 있는 메커니즘이 필요하다.
- Solution: Reflexion은 (1) 행동을 생성하는 Actor, (2) 성과를 점수화하는 Evaluator, (3) 실패 원인을 자연어로 서술하는 Self-Reflection 모듈을 결합하여, 반성문을 episodic memory에 축적하고 다음 trial의 프롬프트에 주입한다.
- Evidence: HumanEval pass@1 91% (GPT-4 baseline 80%), AlfWorld 130/134 성공, HotpotQA 정확도가 ReAct 대비 크게 향상되는 것을 단 수 회의 self-reflection trial로 달성.
- Limits: Evaluator의 보상 품질에 성능이 민감하고, 장기 메모리가 커지면 context window 제약에 부딪히며, self-reflection의 환각 가능성이 존재한다.
- Questions: reflection을 SFT/DPO 시그널로 재사용하면 장기 정착 가능한가? Evaluator가 unreliable할 때(실제 환경) 어떻게 robust하게 학습할 것인가?
섹션별 요약
Introduction
LLM 에이전트는 ReAct·Chain-of-Thought 이후 급격히 확장되었지만 한 번 실수하면 같은 궤적을 반복하는 경향이 강하다. 저자들은 Verbal Reinforcement Learning 이라는 개념을 제안한다. 파라미터 업데이트 대신 자연어 피드백을 메모리에 저장해 정책을 업데이트하는 방식이다. 이는 인간이 실수 후 “다음엔 이렇게 하자”는 내적 독백을 형성하는 과정과 유사하다.
Methods
Reflexion은 세 개의 LLM 모듈로 구성된다.
- Actor : 현재 상태와 메모리를 받아 action을 생성 (ReAct/CoT 형식).
- Evaluator : trajectory를 받아 스칼라 보상을 산출 (HumanEval은 test case, AlfWorld는 환경 보상, HotpotQA는 EM/LLM judge).
- Self-Reflection : 실패한 trajectory와 보상을 입력으로 “무엇이 잘못되었고 다음에 어떻게 고칠지”를 자연어 반성문으로 작성.
반성문은 long-term episodic memory(최근 k개 reflection 유지)에 누적되며, 다음 trial의 프롬프트 앞에 삽입된다. Short-term memory는 현재 trajectory이다.
Results
| Benchmark | Metric | Baseline | Reflexion |
|---|---|---|---|
| HumanEval (Python) | pass@1 | 80% (GPT-4) | 91% |
| AlfWorld (134 tasks) | success | 75 (ReAct) | 130/134 |
| HotpotQA | EM | ReAct baseline | 큰 폭 개선 |
| MBPP-Py / Rust / Leetcode-Hard | pass@1 | 각 baseline | 일관된 상승 |
대부분의 개선은 3~6회 trial 내에 포화되며, self-reflection 없는 단순 retry 대비 일관되게 상회한다.
Discussion
Reflexion의 성공은 “자연어가 내부 정책의 고차원 gradient 대용물”이라는 관점에 의존한다. Evaluator가 신뢰할 수 있을 때 자연어 feedback이 효율적인 credit assignment 수단으로 작동한다. 다만 모델이 long-horizon credit assignment를 여전히 못 하며, reflection이 실제 원인을 잘못 짚으면 오히려 성능이 떨어지는 reflection-collapse 사례도 보고된다.
Insights
- Verbal RL은 closed-source LLM에도 적용 가능한 “외부 학습 루프”를 제공한다.
- 메모리 구조(reflection slot)의 설계가 policy improvement의 상한을 결정한다.
- Binary success signal만으로도 자연어 반성이 rich gradient처럼 동작한다.
Discussion Points
- Reflection을 RLHF/DPO 샘플로 변환해 모델 파라미터에 정착시킬 수 있는가?
- Reflection 누적이 context 한계를 넘을 때 어떤 compression이 최적인가?
- Evaluator가 noisy할 때(real-world tool-use) self-reflection은 over-confident hallucination으로 붕괴하지 않는가?
메타데이터
| 항목 | 값 |
|---|---|
| 제목 | Reflexion: Language Agents with Verbal Reinforcement Learning |
| 저자 | Noah Shinn, Federico Cassano, Edward Berman, Ashwin Gopinath, Karthik Narasimhan, Shunyu Yao |
| 발표 | NeurIPS 2023 |
| 코드 | github.com/noahshinn024/reflexion |
| 카테고리 | Application / LLM Agent |
| 태스크 | Coding(HumanEval), Decision-making(AlfWorld), Reasoning(HotpotQA) |
왜 이 연구를 하는가?
대규모 LLM을 매번 fine-tuning으로 개선하는 것은 비용·접근성·데이터 효율 측면에서 심각한 제약을 가진다. 특히 GPT-4 같은 closed API 모델은 가중치에 직접 접근할 수 없다. 반면 LLM은 “자기 자신에 대해 언어로 추론”하는 능력을 갖추고 있다. 저자들은 이 능력을 학습 신호로 재활용한다. 환경에서 받은 보상을 자연어 반성으로 번역하고, 이를 다음 에피소드의 프롬프트 컨텍스트로 주입하면, 사실상 “프롬프트 공간에서의 policy gradient”를 수행할 수 있다는 가설이다. 이 접근은 sample efficiency(수 trial 내 수렴)와 배포 가능성(API-only 모델) 양쪽에서 실용적 가치를 갖는다.
방법 (Method)
flowchart LR ENV[Environment / Task] -->|observation| ACTOR[Actor M_a<br/>ReAct/CoT] ACTOR -->|action| ENV ENV -->|trajectory tau_t| EVAL[Evaluator M_e<br/>scalar/binary reward] EVAL -->|r_t, tau_t| SR[Self-Reflection M_sr<br/>verbal feedback] SR -->|reflection text| MEM[(Episodic Memory<br/>last-k reflections)] MEM -->|prepended context| ACTOR ACTOR -.->|short-term working memory| ACTOR
핵심 루프는 while not success and t < N: 형태로 반복된다. 각 trial은 (1) 메모리+task prompt로 trajectory 생성, (2) Evaluator가 success/score 산출, (3) 실패 시 Self-Reflection이 “가설적 실패 원인 + 개선안”을 작성, (4) 메모리에 push. Actor는 매 trial 새로 시작되며, 오직 reflection 텍스트가 세대 간 유일한 정보 전달 채널이다.
발견
| # | 발견 | 증거 |
|---|---|---|
| F1 | 자연어 reflection만으로 HumanEval pass@1 80→91% | Table 1 |
| F2 | AlfWorld 134개 중 130개 성공 (ReAct 대비 큰 폭 개선) | Table 3 |
| F3 | 3~6 trial 내 성능 포화 (sample-efficient) | Fig. 3 learning curve |
| F4 | reflection을 제거한 단순 retry는 개선폭이 훨씬 작음 | Ablation |
| F5 | 메모리 크기 k를 키우면 수익 체감, 과잉 시 noise 증가 | Sec. 4 analysis |
이론적 의의
Reflexion은 RL 관점에서 보면 “policy parameter 대신 prompt context를 업데이트하는 actor-critic”의 구체적 인스턴스이다. Evaluator가 critic, Self-Reflection이 policy improvement operator, episodic memory가 policy의 non-parametric 저장소 역할을 한다. 이는 in-context learning을 학습 알고리즘으로 공식화하는 흐름(예: ICL-as-gradient-descent)과 맞닿아 있으며, “언어가 학습 신호의 표현 공간”이라는 주장에 강한 실증적 지지를 제공한다. 또한 metacognition(자기감시·자기수정) 관점에서 LLM이 behavioral level의 자의식적 수정 능력을 갖는다는 증거로 인용되어, Theory-of-Mind 및 Self-Consciousness 연구와 연결된다.
재현성 및 신뢰도 평가
| 축 | 평가 | 근거 |
|---|---|---|
| 코드 공개 | A | GitHub 공식 레포 제공, 환경별 실행 스크립트 포함 |
| 데이터셋 | A | HumanEval/AlfWorld/HotpotQA 모두 공개 벤치마크 |
| 하이퍼파라미터 명세 | A- | trial 수, memory k, 프롬프트 템플릿 부록에 명시 |
| 통계적 유의성 | B | seed별 variance는 일부 실험에서만 보고 |
| 모델 접근성 | B+ | GPT-4 API 의존(비용 재현 부담) |
| 종합 Evidence Quality | A | 다중 도메인·강한 baseline·공개 코드 |
관련 연구
- ReAct (Yao et al., 2022): action+reasoning 교차. Reflexion의 Actor 기반.
- Self-Refine (Madaan et al., 2023): 단일 turn 내 자기 수정. Reflexion은 cross-trial 메모리로 확장.
- Chain-of-Hindsight (Liu et al., 2023): 파라미터 업데이트 기반 언어 피드백 학습과 대비.
- Voyager (Wang et al., 2023): Minecraft에서 skill library 형태의 언어 메모리 — 동일 패러다임.
- Generative Agents (Park et al., 2023): reflection 기반 memory stream을 사회 시뮬레이션에 적용.
원자적 인사이트
- “보상→자연어→프롬프트”의 번역 루프 자체가 학습 알고리즘이다. gradient를 계산하지 않아도, 보상을 언어화해 다음 컨텍스트에 주입하면 policy improvement가 일어난다. 이는 prompt space를 parameter space의 대체 가능한 학습 매체로 제안한다.
- Evaluator 품질이 상한을 결정한다. Reflexion의 개선폭은 Evaluator가 얼마나 정확하고 dense한 feedback을 줄 수 있는가에 선형적으로 비례한다. 즉 verbal RL의 병목은 self-reflection이 아니라 보상 신호의 신뢰성이다.
- 에피소드 간 언어 메모리는 non-parametric policy이다. reflection 리스트가 곧 정책이며, 메모리 설계(slot 수·요약 전략)는 RL에서 replay buffer 설계와 동형이다.
- 메타인지 능력의 실증. 자기 행동의 오류를 자연어로 귀인(attribute)하고 수정안을 제시하는 능력은 ToM/Self-Consciousness 연구에서의 behavioral-level self-monitoring 지표와 연결된다.
핵심 용어 정리
- Verbal Reinforcement Learning: 가중치 업데이트 대신 자연어 피드백을 메모리에 축적해 policy를 개선하는 학습 패러다임.
- Actor / Evaluator / Self-Reflection: 각각 행동 생성, 보상 평가, 반성문 생성을 담당하는 LLM 모듈 삼각 구조.
- Episodic Memory (long-term): 지난 trial들의 reflection 텍스트를 저장하는 버퍼. 프롬프트에 prepend.
- Trial / Trajectory: 한 에피소드의 행동-관찰-보상 시퀀스. Reflexion은 trial 간 학습을 수행.
- Reward Shaping via Language: 스칼라 보상을 자연어 원인 분석으로 확장해 credit assignment를 강화하는 기법.
- Reflection Collapse: 잘못된 self-reflection이 반복 축적되어 오히려 성능이 저하되는 실패 모드.
Tags
paper LLM-Agent Reflexion Verbal-RL Self-Reflection Episodic-Memory NeurIPS2023 Application Metacognition Prompt-Engineering