AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

Long-running Agents – 장시간 실행 AI 에이전트 설계 원칙과 프로덕션 패턴

Long-running Agent(장기 실행 에이전트)는 단일 컨텍스트 창을 넘어 수시간·수일·수주에 걸쳐 자율적으로 목표를 향해 전진하는 AI 에이전트다. Google Chrome 엔지니어 Addy Osmani와 Anthropic·Cursor·Google이 2026년 초 각자 발표한 아키텍처 분석에서 “장기 실행 에이전트”가 독립적인 설계 영역으로 자리잡았다.

“장기 실행”의 세 가지 의미

실무에서 “long-running”은 세 가지 다른 맥락으로 쓰인다.

유형핵심 문제대표 해결책
장기 추론(Long-horizon reasoning)수십 단계에 걸친 계획·실행 일관성모델 품질, METR TH 메트릭
장시간 실행(Long-running execution)수시간~수일 프로세스 지속하네스 설계, 상태 지속성
영속 에이전시(Persistent agency)세션 간 정체성·메모리 유지Memory Bank, 외부 메모리

세 가지가 실제 프로덕션에서는 겹친다. 대부분의 엔지니어링 과제는 두 번째—”장시간 실행”—에 집중된다.

에이전트가 부딪히는 세 가지 벽

1. 유한한 컨텍스트

1M 토큰 창도 24시간 실행에는 부족하다. 창이 채워질수록 추론 품질이 저하되는 컨텍스트 로트(context rot) 현상이 하드 한계보다 먼저 찾아온다.

2. 세션 간 상태 없음

새 세션은 백지에서 시작한다. Anthropic의 비유: “이전 교대 때 일어난 일을 기억하지 못하는 교대 근무자들.” 명시적인 지속성 레이어 없이는 교대 전환마다 생산성이 무너진다.

3. 자기검증 불가

모델은 자신의 작업을 평가할 때 긍정적으로 편향된다. “완료됐나요?”라고 물으면 실제보다 더 자주 “예”라고 답한다. 외부 검증 신호 없이는 30% 완성 상태에서 완료 선언이 나온다.

Ralph 루프: 가장 단순한 실용 구현

Ralph 루프는 Geoffrey Huntley와 Ryan Carson이 대중화한 배시 스크립트 기반 패턴이다:

1. prd.json에서 미완성 태스크 선택
2. 태스크 + 컨텍스트 + 진행 노트로 프롬프트 구성
3. 에이전트 호출
4. 테스트/검증 실행
5. progress.txt에 결과 기록
6. 태스크 상태 업데이트 (완료/실패/블록)
7. 1번으로 돌아감

이 루프가 작동하는 이유는 상태가 에이전트 외부에 있기 때문이다. prd.json은 계획, progress.txt는 실험 노트, AGENTS.md는 누적 규칙북이다. 에이전트 자체는 기억이 없지만 파일시스템은 기억한다.

주요 플랫폼의 아키텍처 접근

Anthropic: Brain / Hands / Session 분리

Anthropic의 관리형 에이전트 아키텍처는 세 구성 요소를 독립적으로 교체 가능하게 설계한다:

  • Brain: 모델과 하네스 루프
  • Hands: 에이전트가 실제 도구를 실행하는 격리된 샌드박스
  • Session: 모든 생각·도구 호출·관찰의 추가 전용 이벤트 로그

세션을 이벤트 로그로 관리하면 컨테이너 장애 시 wake(sessionId) 한 번으로 상태를 복구할 수 있다. 이 분리 덕분에 p50 TTFT가 ~60%, p95가 90% 이상 단축됐다.

초기화 에이전트(initializer agent)가 feature-list.jsoninit.sh를 만들면, 코딩 에이전트(coding agent)가 반복적으로 깨어나 한 번에 기능 하나씩 진행하고 claude-progress.txt를 남기고 커밋한다. 테스트 래칫(ratchet) 프롬프트로 테스트 삭제를 방지한다.

Cursor: Planner / Worker / Judge

Cursor의 장기 자율 코딩 아키텍처에서 발견한 교훈:

  • 공유 파일에 락을 쓰는 평등 에이전트 모델은 병목과 위험 회피를 유발
  • Planner: 코드베이스를 탐색하며 태스크를 emit, 재귀적으로 서브플래너 생성
  • Worker: 집중된 실행자, 서로 조율하지 않음
  • Judge: 반복 완료 여부 판단

플랫폼별로 다른 모델이 더 나은 역할을 맡는다—Opus가 일찍 멈추는 경향이 있어 GPT 모델이 일부 자율 작업에서 더 적합했다.

Google: Agent Platform

Google Cloud Next ’26에서 발표된 Gemini Enterprise Agent Platform:

  • Agent Runtime: 수일간 자율 실행, 서브초 콜드 스타트
  • Agent Sessions: 대화·이벤트 이력 지속
  • Memory Bank: 장기 기억 관리 서비스
  • Agent-to-Agent Orchestration: 멀티 에이전트 조율 내장

5가지 프로덕션 패턴

1. 체크포인트-재개 (Checkpoint-and-Resume)

에이전트를 장기 실행 서버 프로세스처럼 취급한다. N 작업 단위마다 중간 상태를 디스크에 기록하고, 장애 시 마지막 체크포인트에서 재시작한다.

2. 위임된 승인 (Delegated Approval, Human-in-the-Loop)

에이전트가 전체 실행 상태를 유지한 채 일시정지한다—추론 체인, 작업 메모리, 도구 이력. 사람이 검토하는 수시간 동안 컴퓨팅을 소모하지 않고, 승인 후 서브초 지연으로 재개한다.

3. 메모리 레이어드 컨텍스트

장기 기억(Memory Bank), 단기 세션 상태, 저지연 프로필을 계층화한다. 주의할 점: 메모리 드리프트(memory drift)—비정형적인 상호작용에서 학습한 절차적 단축키가 광범위하게 적용되는 현상. 메모리를 마이크로서비스처럼 버전 관리한다.

4. 앰비언트 처리 (Ambient Processing)

인간과 상호작용하지 않고 Pub/Sub 스트림이나 데이터베이스에 앉아 이벤트에 반응하는 에이전트. 콘텐츠 모더레이션, 이상 탐지, 인박스 분류 등에 적합하다. 정책을 에이전트에 하드코딩하지 말고 게이트웨이 레이어에 정의해 재배포 없이 업데이트한다.

5. 플리트 오케스트레이션 (Fleet Orchestration)

코디네이터가 전문 서브에이전트(Lead Researcher, Scoring, Outreach)에게 서브태스크를 위임한다. 각 전문 에이전트는 독립적인 아이덴티티·정책·레지스트리 항목을 갖는다. ADK의 그래프 기반 워크플로로 선언적으로 구성한다.

실제 구현 시작점

개발자·개인 저장소: Claude Code(또는 Cursor/Codex)를 사용하고, AGENTS.md를 파일럿 체크리스트처럼 관리하며, 타입체크·린트 훅을 추가하고, 에이전트가 완료 선언 시 Ralph 루프로 재확인한다. 멀티시간 작업은 worktree에서 실행하고 의미 있는 단위마다 커밋한다.

호스팅 에이전트 제품: 런타임을 직접 만들지 말고 Google Agent Platform, Claude Managed Agents 중 하나를 선택한다.

자율 운영(모니터링·리서치·Ops): ADK + Memory Bank + Cloud Run + Cloud Scheduler.

현실적인 한계

  • 비용: 24시간 실행은 비싸다. 예산 제한과 서킷 브레이커를 명시적으로 설정해야 한다.
  • 보안: 장기 실행 에이전트에 API 키와 셸 실행 권한이 주어지면 공격 표면이 크게 넓어진다. Brain/Hands 분리로 크레덴셜을 샌드박스에서 격리한다.
  • 정렬 드리프트: 여러 컨텍스트 창에 걸쳐 원래 목표가 요약·재요약되며 의미가 희석된다. 훅과 Judge 에이전트가 방어선이다.
  • 검증: 24시간 자율 활동 감사는 실질적인 인간 시간을 필요로 한다. 구조화된 아티팩트(PR, 커밋, 브리핑, 테스트 결과)가 이를 관리 가능하게 만든다.

관련 문서

  • agent-harness — 에이전트 하네스 엔지니어링 전반 (컴팩션, 훅, 훅 설계)
  • context-engineering — 컨텍스트 창을 유한 자원으로 관리하는 방법론
  • claude-agent-sdk — Anthropic Claude Agent SDK 사용법
  • symphony — OpenAI의 오케스트레이션 오픈소스 스펙

참고 자료



AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)