앤트로픽 워크플로우 6대 패턴과 자율 해결 루프의 통합

해당 글은 코딩 에이전트(AI)를 활용하는 패러다임이 단순한 ‘프롬프트 입력(Prompting)’에서 ‘시스템 루프 설계(Loop Engineering)’로 진화에 대한 글에서 AI와 나눈 대화 속에서 인사이트 얻은 것을 작성 [LINK]

1. 앤트로픽이 제시한 복잡한 문제 해결을 위한 동적 아키텍처

루프 엔지니어링은 하늘에서 갑자기 떨어진 개념이 아니며, 글로벌 AI 연구소인 앤트로픽(Anthropic)이 정립한 동적 워크플로우(Dynamic Workflow) 아키텍처 프레임워크와 깊은 연관성을 맺고 있다.
앤트로픽은 단일 프롬프트-응답 구조의 한계를 극복하기 위해 소프트웨어 공학적 관점에서 6가지 핵심 디자인 패턴을 정의한 바 있음. 구체적으로는 프롬프트 체이닝(Prompt Chaining), 라우팅(Routing), 병렬화(Parallelization), 오케스트레이터-워커(Orchestrator-Workers), 에반게리스트-옵티마이저(Evaluator-Optimizer) 등이 이에 해당한다.

이 패턴들 중에서도 사용자가 내린 거대한 추상적 명령을 인간의 개입 없이 ‘끝까지 완수하는 관점’으로 발전시킨 진화형 형태가 바로 오케스트레이터-워커(Orchestrator-Workers) 패턴과 에이전트 루프(Agent Loop)의 결합체라는 사실이다.
복잡도가 높은 소프트웨어 개발 작업은 사전에 모든 실행 경로를 예측하는 것이 불가능하므로, 실행 시점에 동적으로 경로를 수정하며 전진하는 구조적 설계가 필수적으로 요구되기 때문이다.

2. 오케스트레이터 워커 패턴과 재귀적 목표 달성의 연계성

루프 엔지니어링에서 오케스트레이터-워커 패턴은 자율적인 작업 분배와 격리의 핵심 논리로 작용한다.
시스템의 중심에 위치한 메인 LLM(오케스트레이터)은 사용자가 부여한 궁극적 목표(예: “auth 모듈의 결함 요인을 제거하고 테스트를 통과시킬 것”)를 분석하여 대형 백로그를 생성함.
이후 오케스트레이터는 스스로 코드를 짜는 것이 아니라, 세부 과제별로 전용 워커(하위 에이전트)들을 동적으로 생성하고 다발적인 Git 워크트리에 배치하여 병렬 연산을 유도함.

이 과정에서 중요한 사실은 앤트로픽이 강조한 ‘동적 피드백 루프’가 실시간으로 작동한다는 점이다.
워커 에이전트가 특정 코드 수정에 실패하거나 빌드 에러를 반환하면, 오케스트레이터는 자율적으로 파이프라인을 중단하고 실패 원인을 다시 분석하여 대안 서브 태스크를 발행함.
즉, 사전에 정의된 하드코딩된 알고리즘이 아니라, 실행 결과에 따라 연산 그래프가 유연하게 변경되는 진정한 의미의 Dynamic Workflow가 구현된다는 뜻이다.

3. 자율 해결 루프의 전형적인 일일 구동 프로세스

이 고도화된 아키텍처 패턴들이 결합되어 실제 프로덕션 환경에서 어떻게 하루 동안 자율적으로 문제를 해결하는지 구체적인 워크플로우 단계별로 서술하면 다음과 같다.

[AM 06:00 크론 구동] ➔ [최근 커밋 및 CI 트리아지 파싱] ➔ [이슈별 독립 Worktree 생성] ➔ [제작 에이전트 코드 수정] ➔ [검증 에이전트 크로스 체크] ➔ [MCP 커넥터 통한 PR 발행 및 Slack 알림] ➔ [디스크 메모리에 상태 기록 및 종료]

새벽 자동화 스케줄러 작동
: 매일 아침 지정된 시간에 서버 인터벌 크론 작업이 루프를 깨우면, 시스템은 내장된 ‘트리아지 스킬(Triage Skill)’을 호출하여 전날 발생한 CI/CD 빌드 실패 로그와 Linear의 미해결 버그 티켓을 파싱함.

독립적 작업 영역 할당
: 오케스트레이터 에이전트는 발견된 3개의 독립된 버그에 대해 각각 git worktree 명령을 실행하여 물리적으로 완전히 격리된 3개의 작업 디렉토리를 동적으로 생성함.

병렬 구현 및 교차 검증
: 각 워크트리 내부에서 ‘제작 워커 에이전트’가 스킬 가이드라인에 따라 코드를 수정함. 코딩이 완료되면 즉시 ‘검증 워커 에이전트’가 깨어나 수정한 코드를 정적 분석(Lint) 및 유닛 테스트 코드와 대조하여 유효성을 판정함.

외부 프로덕션 환경 반영
: 검증 단계에서 모든 유닛 테스트가 100% 통과되면, 루프는 내장된 MCP 커넥터를 이용해 GitHub API를 직접 호출하여 Pull Request(PR)를 발행하고, 관련된 Linear 티켓의 상태를 ‘In Review’로 자동 전이시킨 뒤, 개발 팀의 Slack 채널에 알림 메시지를 전송함.

디스크 메모리 동기화
: 루프는 금일 처리한 세부 내역과 미처 해결하지 못한 예외 스택 트레이스를 루트 디스크의 상태 마크다운 파일에 직렬화(Serialization)하여 저장한 뒤 프로세스를 안전하게 종료함. 다음 날 구동되는 루프는 이 상태 메모리를 기반으로 정지했던 시점부터 다시 자율 연산을 이어나가게 됨.

댓글 남기기