# [[Agent Loop (에이전트 루프)]]

## 📌 Brief Summary
Agent Loop은 LLM 기반의 에이전트가 단일 텍스트 생성을 넘어, **'관찰(Observe) - 사고(Think) - 행동(Act) - 검증(Verify)'**의 과정을 자율적으로 반복하며 주어진 목표를 완수하는 핵심 실행 사이클이다. 이는 에이전트 하네스(Harness) 내에서 구동되며, 모델이 환경의 피드백을 받아 스스로 계획을 수정하고 목표에 도달하게 만드는 동적 프로세스이다.

## 📖 Core Content
*   **기본 작동 사이클 (ReAct & Beyond)**:
    1.  **입력 및 관찰(Observe)**: 사용자 요청 및 현재 환경(파일 시스템, 도구 출력 등)의 상태를 인식.
    2.  **계획 및 사고(Think/Plan)**: 인식된 정보를 바탕으로 다음 단계의 작업 계획 수립 및 추론.
    3.  **행동 및 도구 호출(Act/Call)**: 계획된 작업을 수행하기 위해 외부 도구(MCP, API 등)를 실행.
    4.  **피드백 및 결과 반영(Feedback/Observe)**: 도구 실행 결과를 관찰하고 컨텍스트에 업데이트.
*   **[[Ralph Loop (랄프 루프)]] - 강제 자가 검증 패턴**:
    *   에이전트가 작업을 조기에 대충 마무리하고 종료하려 할 때, 하네스가 이를 인터셉트하여 **강제적으로 검증 루프를 연장**하는 특수 패턴이다.
    *   깨끗한 컨텍스트 환경에서 원래의 작업 명세서와 테스트 결과를 대조하게 하여, 에이전트가 스스로 테스트를 통과할 때까지 코드를 수정하도록 끈기를 부여한다.
*   **루프 제어와 가드레일**: 루프가 무한히 반복되어 자원을 낭비하는 것을 막기 위해 최대 단계 수(Max Steps), 토큰 예산(Token Budget), 그리고 루프 감지 미들웨어(LoopDetectionMiddleware)를 통한 제어가 수반된다.

## ⚖️ Trade-offs & Caveats
*   **둠 루프 (Doom Loop)**: 에이전트가 잘못된 논리에 갇혀 동일한 오류를 무한히 반복하는 현상. 이를 방지하기 위해 파일 편집 횟수 추적 및 상태 재정의 로직이 필요하다.
*   **컴퓨팅 리소스 폭증**: 루프와 검증 단계가 늘어날수록 토큰 비용과 처리 시간이 급격히 증가하므로 적절한 추론 예산(Reasoning Budget) 조율이 필수적이다.
*   **컨텍스트 과부하**: 루프가 길어질수록 대화 기록이 누적되어 중요한 지시 사항을 망각할 수 있으며, 이를 해결하기 위한 [[Context Compaction (컨텍스트 압축)]]이 요구된다.

## 🔗 Knowledge Connections

### Related Concepts
*   [[Agent Harness (에이전트 하네스)]]
    *   연결 이유: 루프가 실제로 구동되는 물리적/논리적 런타임 환경이자 제어 계층이다.
*   [[Self-verification (자가 검증)]]
    *   연결 이유: 에이전트 루프의 최종 목적 중 하나로, 모델 스스로 결과의 정확도를 높여가는 핵심 메커니즘이다.
*   [[Filesystem]]
    *   연결 이유: 루프 반복 시 컨텍스트 한계를 극복하고 상태를 영구적으로 보존하는 작업 공간 역할을 한다.
*   [[Agent Middleware]]
    *   연결 이유: 루프 중간에 개입하여 검증 훅(Hook)을 삽입하거나 정책을 강제하는 모듈식 제어 패턴이다.

### Deeper Research Questions
*   무한 루프(Doom Loop) 상태를 실시간으로 감지하고 개입하기 위한 최적의 중단 임계값(Threshold) 설정 방법은?
*   에이전트가 루프를 반복하며 이전 상태를 복원할 때, 노이즈를 제거하고 핵심 맥락만 선택적으로 주입하는 설계 방식은?
*   벤치마크 타임아웃 제약 내에서 자가 검증 루프를 완수하기 위한 효율적인 추론 예산 분배 전략은 무엇인가?

### Practical Application Contexts
*   **Implementation:** LangChain의 미들웨어 패턴을 활용하여 에이전트 종료 신호를 가로채고 검증 프롬프트를 주입하는 루프 로직을 구현한다.
*   **System Design:** 복잡한 작업을 여러 개의 하위 루프로 쪼개고, 각 루프 간의 상태 전달은 파일 시스템을 통해 이루어지도록 내구성 있게 설계한다.

---
*Last updated: 2026-05-05*
