이 문서는 자라는 중인 질문입니다. 아직 증거를 모으고 있으며, 내용이 바뀔 수 있습니다.
한 줄로 말하면
reflection은 에이전트가 낸 결과를 그냥 받아들이지 않고, 미리 정한 기준으로 평가한 뒤 그 판단을 다음 시도의 입력으로 돌리는 구조야. evaluator-optimizer 패턴이라고도 불러.
비유로 이해하기
글을 고칠 때를 떠올리면 쉬워. 초고를 한 번 쓰고 끝내는 대신, 독자가 이해할 수 있는지·근거가 빠지지 않았는지·요구한 형식을 지켰는지 체크한 뒤 다시 손보는 방식이야. 앞의 글과 뒤의 글이 달라지는 이유는 두 번째 시도가 더 똑똑해서가 아니라, 첫 결과를 읽은 평가가 다음 선택을 바꿨기 때문이야.
여기까지가 쉽게 이해를 돕는 비유야. 실제 시스템에서 평가는 사람의 감상이 아니라 테스트 통과 여부, 형식 규칙, 비교 점수, 외부 도구의 결과처럼 다시 확인할 수 있는 기준일 수 있어.
정확한 정의
reflection에는 결과를 만드는 optimizer와 결과를 판정하는 evaluator가 따로 있어. 둘은 꼭 다른 모델일 필요는 없지만, 맡은 일은 구분돼야 해. optimizer는 답·계획·코드를 만들고, evaluator는 목표와 기준에 비춰 부족한 점을 찾아내며, 그 판단이 다음 수정의 방향을 정해.
flowchart LR A["목표와 평가 기준"] --> B["초안 또는 행동"] B --> C["결과"] C --> D["평가"] D --> E{"기준을 만족했나?"} E -->|"아니오"| F["수정 방향"] F --> B E -->|"예"| G["결과 전달"]
핵심은 재시도 횟수가 아니야. 같은 답을 조금씩 바꾸기만 하면 reflection이 아니라 반복일 뿐이야. 평가가 무엇이 틀렸는지 또는 무엇이 부족한지를 짚고, 그 내용이 다음 행동을 실제로 바꿔야 해.
왜 중요한가
feedback loop가 결과를 다음 행동으로 되돌리는 더 넓은 원리라면, reflection은 결과물의 품질을 평가해 고치는 데 초점을 둔 형태야. agent loop 안에서는 한 단계의 도구 실행 뒤 결과를 읽고 다음 행동을 고르는 자리로 들어갈 수 있어. agentic workflow에서는 평가 기준, 승인, 권한처럼 더 큰 통제 장치와도 연결돼.
이 구조는 한 번에 정답을 내기 어려운 일에서 특히 중요해. 코드라면 테스트 실패가 수정할 곳을 알려 줄 수 있고, 문서라면 빠진 요구사항이나 근거가 다음 초고의 방향을 바꿀 수 있어. 반대로 평가 기준이 모호하면, 여러 번 고쳐도 결과가 나아졌다고 말하기 어려워.
실제 예시
코드 생성 에이전트는 파일을 고친 뒤 테스트와 정적 분석을 실행할 수 있어. 실패한 테스트 이름과 오류 메시지는 evaluator의 판단이 되고, 에이전트는 그 정보를 보고 수정 범위를 좁힌 뒤 다시 실행해. 이때 테스트가 단순한 마지막 관문이 아니라 다음 행동을 고르는 입력이 될 때 reflection 구조가 생겨.
답변을 만드는 에이전트도 비슷하게 움직일 수 있어. 먼저 요구사항 목록을 만들고 초안을 쓴 뒤, 초안이 각 요구사항을 빠뜨리지 않았는지 점검해. 다만 같은 모델이 답도 쓰고 평가도 하면 같은 오해를 두 번 반복할 수 있어. 외부 계산, 테스트, 원문 대조, 사람 검토처럼 평가를 독립시키는 장치가 필요한 이유야.
헷갈리지 말아야 할 점
- reflection은 자기 칭찬이 아니야. “좋다”는 평가만으로는 다음 행동을 고를 수 없어. 어떤 기준에서 무엇이 모자란지 나와야 해.
- 재시도는 reflection의 증거가 아니야. 이전 결과를 읽지 않거나 수정 방향이 바뀌지 않으면 같은 시도를 반복하는 것일 수 있어.
- 평가기가 항상 더 정확한 것은 아니야. evaluator도 같은 정보와 같은 오류에 갇힐 수 있어. 검증 가능한 기준과 독립된 확인 수단이 중요해.
- 종료 기준이 있어야 해. 모든 결과를 끝없이 고치지 않으려면, 어느 품질이면 멈출지와 언제 사람에게 넘길지를 함께 정해야 해.
관련 문서
- 결과가 다음 행동을 고치는 일반 원리: feedback loop
- 실행 결과를 보고 다음 단계를 고르는 반복 단위: agent loop
- 권한·검증·사람의 개입까지 묶는 작업 흐름: agentic workflow
남은 질문들
- evaluator-optimizer 패턴에서 평가는 어떤 기준일 때 가장 재현 가능해질까?
- 같은 모델이 결과와 평가를 모두 만들 때, 어떤 독립 검증 장치가 같은 오류의 반복을 줄일까?
- 코드·문서·조사처럼 평가 가능성이 다른 작업에서 재시도 횟수와 종료 기준은 어떻게 달라져야 할까?
댓글