에이전트 AI 디자인 패턴: ReAct, Plan-and-Execute, Reflexion 등
에이전트 AI 디자인 패턴은 반복되는 에이전트 조정 문제에 대한 이름 있는 재사용 가능한 아키텍처 솔루션입니다. 각각 정의된 구조, 알려진 트레이드오프, 특징적인 장애 모드 및 보안 영향을 갖습니다. 잘못된 패턴을 선택하면 구체적인 장애가 발생합니다. 장기 작업에 ReAct를 사용하면 컨텍스트 윈도우 스레싱이 발생합니다. 재계획 없는 Plan-and-Execute는 오래된 계획에서 오류가 누적됩니다. 메모리 새니타이징 없는 Reflexion은 지속적인 메모리 포이즈닝을 가능하게 합니다. 2개 카테고리로 6개의 패턴: 단일 에이전트 추론 패턴(ReAct, Plan-and-Execute, Reflexion)과 멀티 에이전트 조정 패턴(Critic-Actor, Supervisor-Worker, Mixture-of-Agents).
에이전트 AI 디자인 패턴은 에이전트 시스템 설계의 반복 문제에 대한 이름 있는 재사용 가능한 아키텍처 솔루션으로, 에이전트가 추론하고, 계획하고, 성찰하고, 위임하고, 장애에서 회복하는 방법을 지정하며, 각각 정의된 구조, 알려진 트레이드오프, 특징적인 장애 모드 및 보안 영향을 갖고 있어 실무자들이 프로덕션에 배포하기 전에 고려해야 합니다.
이 가이드 읽는 방법: 패턴 구조와 선택 휴리스틱
패턴 구성 요소: 구조, 트레이드오프, 장애 모드, 보안 게이트
이 가이드의 각 패턴은 4가지 구성 요소로 설명됩니다.
구조: 산문으로 표현된 아키텍처 배열 -- 어떤 에이전트 또는 모델 인스턴스가 존재하는지, 어떻게 통신하는지, 데이터 흐름이 어떻게 생겼는지, 핵심 아티팩트가 무엇인지.
트레이드오프: 패턴이 최적화하는 것 대 희생하는 것. ReAct는 그라운드 트루스 도구 앵커링을 최적화하지만 컨텍스트 윈도우 효율성을 희생합니다.
장애 모드: 각 패턴이 프로덕션에서 실패하는 구체적인 방식으로 학술 벤치마크 결과에서는 명확하지 않은 것들.
보안 게이트: 각 패턴의 특징적인 보안 장애 모드를 방지하기 위해 필요한 특정 제어.
패턴 선택 휴리스틱: 작업 기간 x 가역성 x 자율성 수준
3가지 축이 어떤 패턴으로 시작할지 결정합니다.
작업 기간: 짧은 작업(도구 호출 5회 이하) -- ReAct. 중기 작업(6-20단계) -- Plan-and-Execute. 길거나 개방적인 작업(20단계 이상) -- Reflexion 또는 Supervisor-Worker.
가역성: 모든 액션이 가역적이면 어떤 패턴이든 적용됩니다. 일부 액션이 비가역적이면(파일 삭제, 이메일 발송, 데이터베이스 쓰기), 사용하는 기본 패턴에 관계없이 해당 특정 액션 전에 Critic-Actor 게이트를 추가합니다.
자율성 수준: L1-L2 -- ReAct 또는 Plan-and-Execute. L3 -- 역할별 블라스트 반경 억제를 갖춘 Reflexion 또는 Supervisor-Worker. L4 -- 강화된 보안 인프라 없이 프로덕션에 배포되지 않음.
ReAct: 추론과 행동의 교차 실행
구조: 생각 -> 행동 -> 관찰 루프
ReAct(Reasoning + Acting), Google Brain과 Princeton의 Yao 외(arXiv 2022년 10월, ICLR 2023)은 체인 오브 소트 추론과 도구 호출을 단일 컨텍스트 윈도우 스크래치패드에 교차 배치합니다. 루프:
Thought: [이전 관찰에 기반한 체인 오브 소트 추론]
Action: [도구 호출 -- 함수 이름과 매개변수]
Observation: [실행에서 반환된 도구 결과]
[반복:]
Thought: 대답할 충분한 정보가 있습니다.
Action: Finish[최종 답변]
원래 논문의 벤치마크 결과: HotpotQA -- ReAct로 57.1% 정확 매칭 vs 체인 오브 소트만 43.2%(+14포인트). FEVER -- 75.4% vs 66.4%(+9포인트).
트레이드오프: 그라운드 트루스 vs 컨텍스트 윈도우 증가
ReAct의 주요 장점은 관찰에 기반한 추론입니다. 비용은 컨텍스트 윈도우 증가입니다. 도구 호출 20회에 평균 200토큰/트리플의 작업에서 스크래치패드만으로 4,000토큰을 소비합니다.
장애 모드: 스크래치패드 인젝션
ReAct의 보안 장애 모드는 스크래치패드를 직접 타깃으로 합니다. 도구 관찰에 적대적 콘텐츠가 포함되면 그 콘텐츠가 스크래치패드에 그대로 추가됩니다.
함께 필요한 3가지 완화 조치:
- 스크래치패드에 추가하기 전에 각 관찰을 새니타이즈
- Zone 2에서 디스패치 전에 각 액션을 사전 로깅
- 모든 도구 관찰을 신뢰할 수 없는 입력으로 처리
Plan-and-Execute: 계획을 실행에서 분리
구조: 플래너가 실행 전에 전체 작업 분해를 생성
Plan-and-Execute는 ReAct가 교차하는 두 가지 관심사를 분리합니다. 플래너 에이전트가 목표를 받고 실행이 시작되기 전에 전체 작업 분해를 생성합니다.
컨텍스트 윈도우 효율성: 계획은 콤팩트합니다(대부분의 작업에서 50-150토큰). 장기 작업에서 ReAct 대비 약 40-60%의 컨텍스트 윈도우 감소를 가져옵니다.
트레이드오프: 효율성 vs 계획 진부화
주요 장애 모드는 계획 진부화입니다. 계획은 T=0에서 생성됩니다. 실행 중 환경이 변경되면 나머지 단계가 잘못된 전제 조건에 기반할 수 있습니다.
보안 게이트: 디스패치 전 계획 검사
계획은 도구 호출 전에 사용 가능한 별도의 아티팩트입니다. 자동화된 사전 실행 정책 검사: 금지된 액션 유형에 대한 계획을 파싱하고, 각 도구 이름이 에이전트의 허용 액션 목록에 있는지 확인합니다.
Reflexion: 언어적 강화를 통한 실패에서의 학습
구조: 성찰 -> 저장 -> 다음 시도 조건화
Reflexion(Shinn 외, Northeastern/MIT/Princeton, arXiv 2023년 3월, NeurIPS 2023)은 언어적 강화 학습 패턴입니다. 작업 시도 실패 후 에이전트는 자연어 성찰을 생성하고, 에피소드 메모리 버퍼에 저장하며, 검색된 성찰에 기반해 다음 시도를 조건화합니다.
벤치마크 결과: HumanEval 코딩 pass@1 -- Reflexion으로 91% vs 80%(+11포인트). ALFWorld -- 97% vs 73%(+24포인트).
보안 위험: 에피소드 메모리 포이즈닝
Reflexion의 보안 장애 모드는 ReAct의 스크래치패드 인젝션과 다르고 더 지속적입니다. 관찰에 적대적 콘텐츠가 포함되면 생성된 성찰이 공격자가 제어하는 지침을 무기한으로 인코딩할 수 있습니다.
순차적으로 필요한 4가지 완화 조치: 저장 전 성찰 새니타이즈; agent_id 속성이 있는 버전 관리된 블랙보드 저장소; 성찰 TTL; 행동 변경 성찰을 위한 HITL 검토 게이트.
Critic-Actor: 평가를 실행에서 분리
구조: 액터가 제안하고 크리틱이 실행 전에 차단
Critic-Actor 패턴은 RLHF와 Constitutional AI(Anthropic, 2022)에서 파생되어 액션 생성과 액션 평가를 분리합니다. 액터 모델이 액션을 제안하고, 크리틱 모델이 정책에 대해 제안된 액션을 평가하며, 크리틱의 평가를 통과한 액션만 도구 호출 레이어로 진행합니다.
중요한 구현 세부 사항: 크리틱은 액터와 독립적인 컨텍스트 윈도우를 가져야 합니다. 같은 컨텍스트의 크리틱은 액터의 전체 컨텍스트를 공유합니다.
Critic-Actor를 사용할 시점: 비가역성 임계값
Critic-Actor는 레이턴시를 추가하며 액션이 비가역성 임계값을 넘을 때 필요합니다. 파일 삭제, 이메일 발송, 데이터베이스 쓰기, 외부 API POST 호출.
Supervisor-Worker: 역할 기반 멀티 에이전트 조정
구조: 슈퍼바이저가 분해하고 워커가 역할 범위 내에서 실행
Supervisor-Worker는 슈퍼바이저 에이전트가 목표를 분해하고 정의된 역할과 제한된 도구 세트를 가진 특화된 워커 에이전트에게 각 작업을 디스패치합니다.
- ResearchWorker: 도구 =
web_search,read_file,read_url - CodeWorker: 도구 =
run_command,write_file,read_file - CommWorker: 도구 =
send_email,post_message
보안 속성: 침해된 워커의 블라스트 반경 억제
Supervisor-Worker의 주요 보안 속성은 블라스트 반경 억제입니다. 침해된 워커는 정의된 역할 내의 도구만 호출할 수 있습니다. send_email()을 호출하는 주입된 명령을 받은 ResearchWorker는 Zone 2 권한 검사에서 실패합니다.
Mixture-of-Agents: 모델 인스턴스 전체의 앙상블 추론
구조: 모델 출력의 다층 집계
Mixture-of-Agents(MoA), Together AI의 Wang 외(arXiv 2024년 6월)는 반복적 정제 레이어를 통해 여러 LLM 인스턴스의 출력을 집계합니다. AlpacaEval 2.0 벤치마크: 3층 MoA로 65.1% 승률 vs GPT-4o의 57.5% -- 7.6포인트 품질 향상.
트레이드오프: 품질 vs API 비용 배수
3모델 x 3층 MoA는 사용자 요청당 약 12 LLM 호출이 필요 vs 단일 모델의 1회 -- 약 12배 API 비용 증가. MoA는 고빈도, 레이턴시에 민감한 에이전트 루프에는 적합하지 않습니다.
OpenLegion의 관점: 패턴 보안은 인프라이지 프롬프트 엔지니어링이 아니다
이 가이드의 모든 에이전트 디자인 패턴에는 원래 학술 논문이 다루지 않은 보안 장애 모드가 있습니다. 패턴별 보안 장애 모드:
- ReAct 스크래치패드 인젝션: 적대적 관찰 콘텐츠가 생각 단계를 주입
- Plan-and-Execute 계획 인젝션: 계획 아티팩트가 플래너와 실행자 사이에서 수정될 수 있음
- Reflexion 메모리 포이즈닝: 포이즈닝된 성찰이 세션 전반에 걸쳐 에피소드 버퍼에 지속됨
- 같은 컨텍스트 크리틱 우회: 액터 컨텍스트를 주입하면 크리틱 평가도 손상됨
- 슈퍼바이저 침해: 침해된 슈퍼바이저는 모든 워커에게 임의의 작업을 디스패치 가능
| 보안 제어 | OpenLegion | LangChain / LangGraph | CrewAI | AutoGen | OpenAI Agents SDK |
|---|---|---|---|---|---|
| 실행 전 액션 로깅 | Zone 2, 네이티브 | 개발자 관례 | 개발자 관례 | 개발자 관례 | 개발자 관례 |
| 블랙보드 계획 ACL | 인프라 강제 | 사용 불가 | 사용 불가 | 사용 불가 | 사용 불가 |
| agent_id 속성이 있는 버전 관리 에피소드 메모리 | 네이티브 | 개발자 관례 | 개발자 관례 | 개발자 관례 | 개발자 관례 |
| 독립 컨텍스트를 가진 별도 크리틱 모델 | 네이티브 에이전트 격리 | 수동 설정 | 수동 설정 | 수동 설정 | 수동 설정 |
| 워커별 Zone 2 도구 권한 강제 | 인프라 강제 | 개발자 관례 | 개발자 관례 | 개발자 관례 | 개발자 관례 |
자주 묻는 질문
에이전트 AI 디자인 패턴이란 무엇인가요?
에이전트 AI 디자인 패턴은 에이전트 시스템 설계의 반복 문제에 대한 이름 있는 재사용 가능한 아키텍처 솔루션으로, 에이전트가 추론하고, 계획하고, 성찰하고, 위임하고, 장애에서 회복하는 방법을 지정합니다. 주요 패턴에는 ReAct, Plan-and-Execute, Reflexion, Critic-Actor, Supervisor-Worker, Mixture-of-Agents가 포함됩니다. 잘못된 패턴을 선택하면 구체적인 장애가 발생합니다.
AI 에이전트의 ReAct 패턴이란 무엇인가요?
ReAct(Reasoning + Acting), Google Brain과 Princeton의 Yao 외(arXiv 2022년 10월, ICLR 2023)는 체인 오브 소트 추론과 도구 호출, 도구 결과를 단일 컨텍스트 윈도우 스크래치패드에 교차 배치하여 각 추론 단계를 실제 도구 결과에 근거합니다. 벤치마크에서 ReAct는 HotpotQA에서 체인 오브 소트만보다 14포인트, FEVER에서 9포인트 앞섰습니다. 주요 프로덕션 트레이드오프는 컨텍스트 윈도우 증가입니다. 주요 보안 위험은 스크래치패드 인젝션입니다.
AI 에이전트의 Plan-and-Execute 패턴이란 무엇인가요?
Plan-and-Execute는 플래너 에이전트와 실행자 에이전트를 분리하여 ReAct 대비 장기 작업에서 컨텍스트 윈도우 소비를 약 40-60% 줄이고 계획의 자동화된 사전 실행 정책 검사를 가능하게 합니다. 주요 장애 모드는 계획 진부화로, 예상 관찰과 실제 관찰 불일치를 감지하는 재계획 트리거가 필요합니다.
AI 에이전트의 Reflexion 패턴이란 무엇인가요?
Reflexion(Shinn 외, NeurIPS 2023)은 에이전트가 작업 실패의 언어적 요약을 생성하고, 에피소드 메모리에 저장하며, 검색된 성찰에 기반해 미래 시도를 조건화합니다. HumanEval 코딩은 pass@1에서 80%에서 91%로, ALFWorld는 73%에서 97%로 향상되었습니다. 보안 위험은 에피소드 메모리 포이즈닝입니다.
AI 에이전트의 Critic-Actor 패턴이란 무엇인가요?
Critic-Actor 패턴은 크리틱 모델(정책 루브릭에 대해 실행 전 제안된 액션을 평가)과 액터 모델(액션을 생성하고 실행)을 분리하여, 크리틱의 평가를 통과한 액션만 도구 호출 레이어에 도달하게 합니다. 비가역 액션(파일 삭제, 이메일 발송, 데이터베이스 쓰기)에 필요합니다. 독립 컨텍스트 윈도우를 가진 별도 모델 크리틱이 같은 컨텍스트 크리틱보다 훨씬 강력합니다.
AI 에이전트의 Supervisor-Worker 패턴이란 무엇인가요?
Supervisor-Worker는 슈퍼바이저 에이전트가 목표를 분해하고 정의된 역할과 제한된 도구 세트를 가진 특화된 워커 에이전트에게 작업을 디스패치하여 각 워커가 최소 권한으로 작동하도록 합니다. 블라스트 반경 억제가 패턴의 주요 보안 이점입니다. 역할 외 도구를 사용하려는 주입된 워커는 Zone 2 권한 검사에서 실패합니다.
Mixture-of-Agents(MoA)란 무엇인가요?
Mixture-of-Agents(MoA), Together AI의 Wang 외(arXiv 2024년 6월)는 반복적 정제 레이어를 통해 여러 LLM 프로포저 인스턴스의 출력을 집계하여 모델 인스턴스 간 비상관 오류를 수정합니다. AlpacaEval 2.0에서 3층 MoA는 GPT-4o의 57.5% 대비 65.1% 승률을 달성했습니다. 프로덕션 비용은 배수적입니다: 약 12배 API 비용 증가.
ReAct, Plan-and-Execute, Reflexion 중 어떻게 선택하나요?
패턴 선택은 3가지 축을 따릅니다: 작업 기간, 액션 가역성, 자율성 수준. 가역적 액션을 가진 짧은 작업에는 ReAct가 가장 단순한 선택입니다. 중기 작업에는 Plan-and-Execute가 컨텍스트 윈도우를 40-60% 줄입니다. 에이전트가 자신의 실패 이력에서 학습할 수 있는 반복 작업에는 Reflexion이 누적적 성능 향상을 추가합니다. 액션이 비가역적이면 Critic-Actor를 추가하고, 다른 작업 단계에 진정으로 다른 도구 세트가 필요하면 Supervisor-Worker를 추가합니다.