일타 저스틴의 책 읽기 – Agentic Design Patterns – 4장. Reflection
자, 여러분! 오늘도 어김없이 돌아온 대한민국 원탑 일타 강사, 저스틴입니다! 반갑습니다!
지난 시간까지 우리는 AI 에이전트의 기본기를 다졌습니다. 순서대로 일하는 ‘체이닝’, 상황에 맞게 길을 찾는 ‘라우팅’, 여러 일을 동시에 처리하는 ‘병렬화’까지! 이제 여러분의 에이전트는 꽤나 유능한 일꾼이 되었을 겁니다. 하지만! 진짜 프로와 아마추어를 가르는 차이는 지금부터 시작됩니다. 오늘 강의의 교재는 ‘Chapter 4: Reflection’ 입니다. AI가 스스로의 결과물을 보고 “음, 이건 좀 별론데? 다시 해보자.”라고 생각하게 만드는, 즉 ‘자가 수정’ 능력을 탑재하는 경이로운 기술!
AI가 스스로 똑똑해지는 비결, ‘리플렉션’ 완벽 분석!
강의 도입: 왜 AI에게 ‘반성’이 필요한가?
자, 여러분. 아무리 뛰어난 학생이라도 처음 쓴 보고서가 완벽할 수 있나요? 아니죠. 오타도 있고, 내용도 부족할 수 있습니다. 그래서 우리는 뭘 하죠? 다시 읽어보고, 고쳐 쓰고, 친구에게 보여주며 피드백을 받기도 하잖아요. AI도 마찬가지입니다. 아무리 똑똑한 AI라도 한 번에 내놓은 결과물이 최선이 아닐 수 있습니다. 부정확하거나, 불완전하거나, 뭔가 2% 부족할 수 있죠.
이 글의 저자는 바로 이 지점을 지적합니다. 기존의 패턴들만으로는 ‘결과물의 품질’을 보장하기 어렵다는 겁니다. 그래서 필요한 것이 바로 리플렉션(Reflection) 패턴입니다. 리플렉션이란, 에이전트가 자기가 한 일이나 내놓은 결과물을 스스로 ‘평가’하고, 그 평가를 바탕으로 더 나은 결과물을 내놓기 위해 ‘개선’하는 과정을 말합니다.
단순히 다음 단계로 결과를 넘기는 체이닝이나, 길을 선택하는 라우팅과는 차원이 다릅니다. 리플렉션은 피드백 루프(Feedback Loop), 즉 되돌아보고 고치는 순환 구조를 만듭니다. 일을 하고 끝내는 게 아니라, “실행 -> 평가 -> 개선 -> (반복)” 이라는 사이클을 돌리는 거죠.
본문 전개 (강의): 리플렉션의 모든 것
1. 리플렉션의 핵심 메커니즘: 생산자-비평가 모델
그렇다면 이 ‘반성’은 어떻게 하는 게 가장 효과적일까요? 저자는 아주 강력하고 효과적인 구현 방법을 제시합니다. 바로 역할을 두 개로 나누는 겁니다. 자, 이 부분은 별표 세 개! 이건 시험에 무조건 나옵니다. 바로 생산자-비평가(Producer-Critic) 모델입니다.
마치 작가와 편집자의 관계를 생각하면 쉽습니다.
- 생산자 (Producer) 에이전트: 이 녀석은 ‘일단 저지르는’ 역할입니다. 주어진 임무에 따라 초안을 작성하고, 코드를 짜고, 계획을 세우는 등 첫 번째 결과물을 만들어내는 데만 집중합니다. 창의적인 작가라고 할 수 있죠.
- 비평가 (Critic) 에이전트: 이 녀석의 유일한 임무는 생산자가 만든 결과물을 ‘매의 눈으로 평가하는’ 것입니다. “너는 깐깐한 팩트 체커야”, “너는 20년 차 시니어 개발자야” 와 같은 명확한 페르소나를 부여받고, 사실관계, 코드 품질, 문체, 완성도 등을 아주 집요하게 파고듭니다. 냉철한 편집자인 셈이죠.
왜 이렇게 역할을 나눌까요? 저자는 “인지적 편향(cognitive bias)”을 막기 위함이라고 설명합니다. 쉽게 말해, 자기가 쓴 글에서는 오타나 어색한 문장이 잘 안 보이는 법이죠! 제3자의 눈으로, 완전히 새로운 관점에서 봐야 단점이 잘 보이는 겁니다. 비평가가 날카로운 피드백을 주면, 생산자는 그 피드백을 바탕으로 훨씬 더 완성도 높은 두 번째 결과물을 만들어낼 수 있는 거죠.
저스틴) 같은 모델을 사용하고 역할만 다르게 할 수도 있고, 서로 다른 모델을 사용할 수도 있습니다. 저는 후자를 선호합니다.
2. 리플렉션은 언제, 어디에 쓰일까?
이 강력한 리플렉션 패턴은 속도나 비용보다 ‘결과물의 품질’이 압도적으로 중요할 때 사용됩니다.
- 창의적인 글쓰기: 블로그 게시물 초안을 쓴 뒤, 비평가가 “문맥 흐름이 어색해요”, “톤이 너무 딱딱해요”라고 지적하면, 생산자가 다시 부드럽게 고쳐 쓰는 거죠. 최종 결과물은 훨씬 세련되어집니다.
- 코드 생성 및 디버깅: AI가 코드를 짰는데, 어라, 버그가 있네? 그럼 비평가(테스터)가 “이 부분에서 에러가 나요”라고 알려줍니다. 그럼 생산자가 스스로 “아, 여기서 실수했구나” 하고 코드를 수정해 완벽한 코드를 만들어냅니다.
- 복잡한 문제 해결 및 계획 수립: “이 문제를 해결하기 위해 이런 계획을 세웠어”라고 생산자가 제안하면, 비평가가 “그 계획에는 이런 허점이 있어”라고 평가합니다. 덕분에 훨씬 더 현실적이고 효과적인 계획을 세울 수 있습니다.
- 요약 및 정보 종합: 긴 문서를 요약한 초안을 보고, 비평가가 “핵심 내용 A가 빠졌잖아!”라고 지적하면, 생산자가 빠진 내용을 보충하여 완벽한 요약본을 만들어냅니다.
이처럼 리플렉션은 AI에게 ‘메타인지’, 즉 스스로를 돌아보는 능력을 부여하여 훨씬 더 지능적이고 신뢰할 수 있는 결과물을 만들게 하는 핵심 기술입니다.
3. 코드 예제 훑어보기: 리플렉션의 실제 구현
자, 백문이 불여일견! 코드를 보면서 이 개념을 확실히 다져봅시다.
- LangChain 예제: 이 코드는 ‘팩토리얼 계산 함수 만들기’라는 과제를 놓고 AI가 스스로 코드를 개선해나가는 과정을 보여줍니다. 정말 흥미롭죠.
- 1차 시도 (생산): AI가 일단 첫 번째 버전의 코드를 만듭니다.
- 평가 (비평): 그 다음, AI는 ‘깐깐한 시니어 개발자’라는 가면(
reflector_prompt
)을 쓰고 자기가 짠 코드를 냉정하게 평가합니다. “음, 엣지 케이스 처리가 미흡하군.” 과 같은 비평을 내놓죠. - 2차 시도 (개선): AI는 방금 받은 비평을 바탕으로 코드를 수정합니다.
- 이 과정을 비평가가 “CODE_IS_PERFECT (완벽한 코드임)”라고 외칠 때까지 반복합니다. 이것이 바로 리플렉션 루프(Loop)입니다!
- Google ADK 예제: ADK 예제는 ‘생산자-비평가’ 모델을 아주 명확하게 보여줍니다. 아예 ‘초안 작성자(generator)’와 ‘팩트 체커(reviewer)’라는 두 명의 전문 에이전트를 따로 만듭니다.
generator
가 먼저 주제에 대한 글을 씁니다.SequentialAgent
가 이어서reviewer
를 실행시킵니다.reviewer
는generator
가 쓴 글을 읽고 “이 내용은 사실과 다릅니다” 와 같은 평가 결과를 내놓습니다. 이렇게 역할을 명확히 분리해서 ‘쓰고-검토하는’ 파이프라인을 구축하는 방식이죠.
강의 마무리: 핵심 요약 및 저자의 메시지
자, 오늘 정말 중요한 걸 배웠습니다. AI를 단순한 연산 기계에서 ‘생각하는 존재’로 한 단계 격상시키는 리플렉션 패턴! 머릿속에 완벽하게 정리해 봅시다.
- What (무엇): AI가 내놓은 첫 결과물은 완벽하지 않을 수 있습니다. 스스로의 결과물을 평가하고 오류를 수정하는 내부 프로세스가 필요합니다.
- Why (왜): 리플렉션 패턴은 ‘생성 -> 평가 -> 개선’이라는 피드백 루프를 통해 AI가 스스로 결과물을 교정하고 품질을 점진적으로 향상시키게 해줍니다. 이를 통해 훨씬 더 정확하고, 완성도 높고, 신뢰할 수 있는 결과물을 얻을 수 있습니다.
- Rule of Thumb (언제 쓸까): 이건 꼭 기억하세요! 속도나 비용보다 최종 결과물의 품질, 정확성, 디테일이 훨씬 더 중요할 때 리플렉션 패턴을 사용하세요. 특히 세련된 장문의 콘텐츠를 생성하거나, 버그 없는 코드를 짜거나, 치밀한 계획을 세울 때 매우 효과적입니다. 객관성이 중요하다면 반드시 별도의 ‘비평가’ 에이전트를 두는 것이 좋습니다.
핵심 정리 (Key Takeaways):
- 리플렉션의 가장 큰 장점은 스스로 교정하고 개선하여 결과물의 품질을 극대화하는 능력입니다.
- 가장 강력한 구현 방식은 역할을 분리하는 ‘생산자-비평가’ 모델입니다.
- 하지만 이러한 장점은 **더 높은 비용과 시간(지연 시간)**이라는 트레이드오프를 가집니다. 모든 작업에 쓸 수 있는 만능 기술은 아니라는 점을 명심해야 합니다.
- 리플렉션은 AI가 단순한 지시 실행자를 넘어, 스스로 학습하고 발전하는 존재로 나아가는 중요한 첫걸음입니다.
이 글의 저자는 리플렉션이 다른 패턴들과 결합될 때 더욱 강력하고 복잡한 에이전트 시스템을 구축할 수 있다고 말합니다. AI가 스스로 반성하고 성장하는 시대, 그 핵심에 바로 이 ‘리플렉션’ 패턴이 있습니다.