HiAPI
블로그

사용 가이드

Codex 에이전트 루프 심층 분석: Datadog과 Sora 28일 Android 출시에서 얻은 교훈

Codex CLI 내부의 루프가 어떻게 작동하는지, Datadog과 OpenAI 프로덕션 팀이 실제로 무엇에 사용하는지, 그리고 동일한 아키텍처를 hiapi의 미디어 생성 에이전트로 어떻게 이식할 수 있는지.

Jun 8, 2026
Codex 에이전트 루프 심층 분석: Datadog과 Sora 28일 Android 출시에서 얻은 교훈

Codex는 엔지니어 4명으로 28일 만에 Sora의 Android 앱을 출시했습니다. Datadog에서는 현재 1,000명 이상의 엔지니어가 과거 인간 리뷰어가 놓치곤 했던 시스템 수준 결함을 잡아내기 위해 이를 활용하고 있습니다. 두 사례 모두 동일한 아키텍처에서 비롯됩니다. 언어 모델, 도구 집합, 샌드박스 환경을 감싸는 겉보기엔 단순한 제어 루프입니다.

AI 코딩 어시스턴트, 미디어 생성 파이프라인, 또는 세상에 대해 행동해야 하는 어떤 에이전트를 만들고 있다면, Codex 에이전트 루프는 지금 연구할 수 있는 가장 깔끔한 참고 자료입니다. 이 글에서는 그것이 어떻게 작동하는지 전체적으로 살펴보고, 프로덕션 팀이 실제로 무엇에 사용하는지, 그리고 동일한 아키텍처 패턴을 hiapi 기반으로 구축할 수 있는 미디어 생성 에이전트로 어떻게 이식할 수 있는지 다룹니다.

이 글은 OpenAI의 공개 엔지니어링 아티클 《Codex 에이전트 루프 펼쳐보기》(2026년 1월), Datadog 사례 연구, Sora Android 출시 회고를 바탕으로 합니다. 아래에 인용된 Hiapi 플랫폼 가격은 2026-06 기준입니다.

에이전트 루프란 무엇인가

에이전트 루프는 당신, 언어 모델, 그리고 모델이 호출할 수 있도록 허용된 도구 사이에 위치한 제어 흐름입니다. 사용자 관점에서 하나의 "턴"은 채팅 메시지 하나가 들어가고 하나가 나오는 것처럼 보입니다. 하지만 내부적으로는 단일 턴에 모델과 외부 도구 사이의 여러 번의 왕복이 포함될 수 있습니다.

하나의 턴이 갖는 형태:

  1. 프롬프트 준비. 에이전트는 시스템 프롬프트, 프로젝트 수준 지시(Codex에서는 AGENTS.md 파일), 대화 기록, 그리고 사용자의 새 메시지를 조합합니다.
  2. 추론. 모델이 최종 어시스턴트 메시지 또는 도구 호출을 반환합니다.
  3. 도구 호출인 경우, 에이전트는 샌드박스에서 해당 호출을 실행하고 결과를 캡처하여 대화에 추가한 뒤 2단계로 돌아갑니다.
  4. 최종 어시스턴트 메시지인 경우—"요청하신 architecture.md를 추가했습니다" 같은—해당 턴이 종료되고 제어권이 사용자에게 돌아갑니다.

핵심 특성은 "출력"이 터미널에서 보이는 어시스턴트 메시지만이 아니라는 점입니다. 대부분의 실제 출력은 도구 호출의 부수 효과입니다. 기록된 파일, 실행된 테스트, 설치된 패키지 등입니다. 어시스턴트 메시지는 단지 종료 신호일 뿐입니다.

이것이 에이전트 루프가 단순히 "몇 단계 더 있는 채팅"이 아닌 이유입니다. 채팅은 매 턴마다 한 번의 왕복만 합니다. 반면 에이전트 루프는 단일 턴 안에서 수십 번의 "추론 → 도구 → 추론" 사이클을 완료할 수 있으며, 사용자는 마무리 메시지만 보게 됩니다.

루프를 빠르게 만드는 세 가지 특성

위 루프의 순진한 구현도 작동은 하지만, 몇 턴 지나면 느리고 비싸집니다. Codex의 설계는 이 문제를 해결하기 위해 참고할 만한 세 가지 아이디어를 사용합니다.

1. Responses API에서의 프리픽스 캐싱. 에이전트가 모델과 대화할 때마다 프롬프트 시작 부분은 동일한 긴 프리픽스입니다. 먼저 시스템 프롬프트, 그다음 AGENTS.md, 그다음 초기 대화입니다. 첫 요청은 해당 프리픽스에 대응하는 모델 내부 키-값 상태를 계산하고 캐시합니다. 동일 세션의 후속 요청은 공유 프리픽스에 대해 재계산을 건너뜁니다.

실질적인 결과 하나: 세션 도중에 AGENTS.md를 편집하지 마세요. 시스템 프롬프트는 보통 가장 큰 단일 캐시 블록이며, 이를 수정하면 세션 나머지 부분의 캐시가 무효화됩니다. Codex 자체 엔지니어들도 이것을 가장 흔한 "자초한" 느려짐 원인으로 꼽습니다.

2. 도구 호출 결과는 루프 위에 쌓이지 않고 루프 내부에 남습니다. 각 도구 출력은 동일한 대화에 추가됩니다. 이는 당연하게 들리지만, 모델이 실행한 모든 명령, 본 모든 오류, 확인한 모든 파일에 대한 완전한 기억을 가진다는 뜻입니다—수동으로 아무것도 요약할 필요가 없습니다. 대가는 컨텍스트 윈도가 빠르게 커진다는 점이며, Codex는 대화가 너무 길어지면 자동 압축으로 처리합니다.

3. 종료는 턴 수가 아니라 모델 출력의 형태로 감지됩니다. 에이전트에는 최대 반복 횟수 안전망이 없습니다. 모델이 계속 도구 호출을 내보내는 한 계속 루프하고, 모델이 일반 어시스턴트 메시지를 내보내는 즉시 멈춥니다. 이 결정을 모델에 맡김으로써 오케스트레이션 코드를 간결하게 유지합니다.

사례 1: Datadog이 이 루프로 시스템 수준 코드 리뷰를 수행하는 방법

Datadog 프로모션 사례에서 가장 유용한 점은 에이전트 루프가 프로덕션에서 무엇을 잘하는지, 그리고 무엇을 잘하지 못하는지 알려준다는 것입니다.

Datadog의 AI 개발 경험 팀은 인간 리뷰어가 놓치는 종류의 결함—린트도, 스타일도 아닌, 서비스 간 회귀, 성능 절벽, 실제 장애를 재현하는 변경—을 찾아낼 수 있는 코드 리뷰 에이전트를 원했습니다. 그들은 이전의 대부분 도구가 "고급 린터"처럼 행동한다고 지적했습니다. 단일 diff 내의 얕은 패턴만 표시할 뿐, 주변 시스템에 대한 모델이 없습니다.

프로모션 전에 에이전트를 검증하기 위해 팀은 장애 재생 테스트 프레임워크를 구축했습니다. 과거 장애를 일으켰던 pull request를 재구성하고, 각각을 새로 도착한 리뷰처럼 Codex에 입력한 뒤, 온콜 엔지니어에게 Codex의 코멘트가 결과를 바꿀지 물었습니다.

공개된 결과는 Codex가 약 22%의 과거 장애에서 유용한 새 피드백을 제공했다는 것입니다—팀이 평가한 다른 어떤 도구보다 많습니다. 각 pull request가 당시 이미 인간 리뷰를 통과했기 때문에, 이 테스트는 본질적으로 "리뷰어가 당시 놓친 것"을 측정합니다.

현재 1,000명 이상의 Datadog 엔지니어가 모든 PR에서 이를 사용합니다. 엔지니어는 코멘트에 👍/👎로 응답하고, 코드를 수정하거나 이유를 붙여 제안을 건너뜁니다. 흥미로운 설계 선택은 Datadog이 공식적인 도구 내 지표가 아니라 우회 채널—엔지니어가 Slack에서 유용한 발견을 언급하는 것—을 통해 영향을 측정한다는 점입니다. 팀은 에이전트를 게이트키퍼가 아닌 증강 수단으로 봅니다. 에이전트는 신호를 제시하고, 인간이 여전히 결정합니다.

여기서 참고할 패턴: 에이전트 루프는 전체 시스템 범위에서 추론(의존성, 테스트, 관련 서비스)하는 데 가장 뛰어나며, 눈앞의 diff만이 아닙니다. 이를 위해서는 적절한 도구와 적절한 읽기 권한을 주어야 합니다. 에이전트 루프는 섀시일 뿐이며, 도구 면과 프로젝트 컨텍스트가 실제 위험을 제시할 수 있는지를 결정합니다.

사례 2: 28일 만에 Sora Android 출시

Sora Android 사례는 더 과감한 증명입니다. 2025년 10월 8일부터 11월 5일 사이, 엔지니어 4명으로 구성된 팀이 Codex를 사용해 Sora를 "iOS 전용"에서 공개 Android 출시로 끌어올렸습니다—28일 주기, 18일째에 내부 직원 빌드, 10일 후 공개 출시. 이 앱은 Google Play 스토어 1위에 올랐으며, 사용자는 첫 24시간 동안 100만 개 이상의 영상을 생성했습니다. 출시 시 무크래시율: 99.9%.

팀은 어떤 방식이 효과가 있었는지, 그리고—더 유용하게는—어떤 방식이 효과가 없었는지 솔직히 밝혔습니다.

효과가 없었던 방식은 그 뻔한 프롬프트였습니다. "iOS 코드를 기반으로 Sora Android 앱을 만들어라. 시작." 그들은 시도했고 곧 중단했습니다. 산출물은 기술적으로 사용 가능했지만 제품 경험은 부족했습니다. 그들의 표현대로라면 Codex는 "아직 자신이 통보받지 못한 것을 추론하는 것을 잘하지 못하며", 안내 없이는 "깊은 아키텍처 판단"을 하기 어려워합니다.

효과가 있었던 방식은 Codex를 플랫폼 간의 의미 번역기로 취급하고 그 주변에 강력한 스캐폴딩을 구축하는 것이었습니다.

  • 먼저 프로젝트의 아키텍처 패턴—내비게이션, 의존성 주입, 네트워킹—을 확립하고 소수의 예제 기능을 수작업으로 작성했습니다. 이것이 나머지 코드베이스의 기준을 세웠습니다.
  • AGENTS.md 파일을 사용해 팀 규칙을 인코딩하여 Codex의 출력이 일관되게 유지되도록 했습니다.
  • Codex가 iOS Swift 코드와 기존 백엔드를 자주 참조하도록 하여 의미상 동등한 Kotlin을 생성하도록 요구했습니다. 그들의 요약은 "크로스 플랫폼의 미래는 Codex"였습니다.
  • 그들은 Codex를 "새로 입사한 시니어 엔지니어"로 취급했습니다—인간은 아키텍처, 시스템 설계, 사용자 경험을 담당하고, Codex는 경계가 명확한 범위 내에서 중노동을 담당합니다.

보고된 바에 따르면 Codex가 생성한 코드 비중은 거의 85%에 달했으며, 4주 동안 대략 50억 토큰 예산을 소비했습니다.

여기서 간과하기 쉬운 두 가지 교훈이 있습니다. 첫째, 에이전트의 품질은 당신이 구축한 스캐폴딩—예제, AGENTS.md, 명확한 범위—의 품질에 의해 제한됩니다. 둘째, 그린필드 프로젝트에서는 "소규모 팀 + 유능한 에이전트"가 "엔지니어 수 확장"을 이깁니다—프레드 브룩스의 관찰이 마침내 적절한 손에서 반례를 얻은 셈입니다.

이식 가능한 패턴

코드 리뷰와 Android 출시의 구체적 세부 사항을 걷어내면, 어떤 에이전트를 구축하는 팀이든 복제해야 할 네 가지 패턴이 남습니다.

확장 전에 패턴을 먼저 확립하라. 내비게이션 패턴(Sora)이든 "위험한 변경"의 정의(Datadog)든, 인간의 작업은 초기 단계에 일어납니다. 예제 기능과 안정적인 AGENTS.md가 이러한 패턴을 이후 모든 턴으로 전달하는 방식이며—이것이 바로 프리픽스 캐싱이 보상하는 대상입니다.

에이전트에게 가장 큰 도구 면이 아니라 적절한 도구 면을 주어라. Datadog의 리뷰어는 서비스 간 읽기가 필요합니다. Sora의 번역기는 iOS 소스와 백엔드를 읽어야 합니다. 두 팀 모두 읽기 면을 신중히 큐레이션했습니다. 도구 목록이 더 많다고 더 나은 것은 아닙니다.

아키텍처는 인간이, 구현은 에이전트가. 두 사례 연구 모두 이 분업으로 수렴합니다. 인간은 구조적 결정을 설정하고, 에이전트는 경계가 명확한 범위 내에서 채웁니다. 이 분업을 뒤집는 것이 바로 팀이 시간을 낭비하는 지점입니다.

도구 지표가 아니라 결과로 측정하라. Datadog은 의도적으로 에이전트 자체의 출력률이 아니라 Slack 반응과 장애 결과를 관찰했습니다. 이는 최적화 목표를 정직하게 유지합니다. 코멘트는 많지만 장애 행동을 바꾸지 않는 코드 리뷰 도구는 유용한 도구가 아닙니다.

이 루프를 미디어 생성 에이전트에 적용하기

에이전트 루프 아키텍처는 코드 전용이 아닙니다. 모델이 행동하고, 관찰하고, 반복해야 하는 곳이라면 어디든 동일한 제어 흐름이 적용됩니다.

hiapi 플랫폼은 통합 비동기 엔드포인트—POST /v1/tasks로 생성 작업을 생성하고, GET /v1/tasks/:id로 결과를 수집—를 통해 모든 미디어 생성 모델을 노출하므로, 루프의 "행동" 단계는 한 번 작성하면 모든 모델에서 재사용할 수 있는 두 번 호출 함수입니다. 구체적으로, 루프가 다음과 같은 영상 제작 에이전트를 구축할 수 있습니다.

  1. 에이전트가 브리프를 받습니다: "대리석 위에 놓인 시계의 6초 제품 샷을 만들어라."
  2. 프롬프트를 조합하고 POST /v1/tasks를 통해 seedance-2-0 작업을 생성한 뒤, 작업 ID를 완료될 때까지 폴링합니다(2026-06 기준, hiapi 플랫폼에서 480P는 영상 초당 $0.15, 720P는 2.2배 계수 적용—위 6초 클립은 480P에서 $0.90).
  3. 생성된 영상을 다운로드하고 빠른 검토 단계를 실행합니다—"시계 문자판이 실제로 보이는가? 조명이 브리프와 일치하는가?"—그런 다음 출력을 수락하거나 프롬프트를 수정합니다.
  4. 검토가 N회 연속 실패하면 에이전트는 지금까지의 최선 결과와 문제 설명을 첨부하여 사용자에게 에스컬레이션합니다.

동일한 형태가 이미지 생성 에이전트에도 적용됩니다: 브리프 → 텍스트-투-이미지 호출(예: gpt-image-2는 1K에서 장당 $0.03, 또는 Nano-Banana-2는 1K에서 $0.085) → 시각 검사 → 수정 → 재시도. Codex의 패턴 "프리픽스 캐싱이 안정적인 시스템 프롬프트, 도구 호출 출력이 대화에 축적되도록"은 그대로 적용됩니다. 역할 정의와 브랜드 가이드를 시스템 프롬프트에 넣고, 루프가 각 생성 시도와 검토를 동일 스레드의 턴으로 축적하게 하세요.

Codex의 교훈을 미디어 에이전트로 옮기는 몇 가지 실용적 변환:

  • AGENTS.md는 브랜드 가이드 파일이 됩니다. 안정적이고, 한 번만 로드하며, 세션 도중 절대 편집하지 마세요. 이것이 바로 프리픽스 캐싱이 보상하는 대상입니다.
  • 예제 기능은 참조 출력이 됩니다. 검토 단계가 비교할 "좋은 결과물이란 이런 것" 이미지를 수작업으로 큐레이션합니다.
  • 샌드박스는 속도 및 지출 상한이 됩니다. 언제 멈춰야 하는지 배우지 못한 미디어 에이전트는 대량의 생성을 쌓을 수 있습니다. Codex가 파일 시스템 쓰기를 기본 제한하듯, 턴당 지출 상한을 설정하세요.
  • 종료 신호는 완전히 동일합니다. 검토 단계가 또 다른 생성 요청이 아니라 "수락"을 반환하면 루프가 끝납니다.

오케스트레이션 로직을 당장 작성하지 않고 이런 루프의 기반 모델을 먼저 시험해보고 싶다면, hiapi 가격 페이지에 현재 이미지당 및 영상 초당 가격이 나열되어 있으며, 각 모델 상세 페이지에는 에이전트에 무엇을 연결할지 결정하기 전에 프롬프트를 실행해볼 수 있는 Playground가 있습니다.

FAQ

Codex 에이전트 루프란 무엇인가요?

Codex CLI 내부의 제어 흐름으로, 당신과 모델, 그리고 모델이 호출할 수 있도록 허용된 도구 사이의 상호작용을 오케스트레이션합니다. 각 "턴" 내부에는 여러 번의 모델 추론 → 도구 호출 루프가 포함될 수 있으며, 모델이 또 다른 도구 호출이 아닌 일반 어시스턴트 메시지를 내보낼 때 종료됩니다.

프리픽스 캐싱이 에이전트에 왜 그렇게 중요한가요?

매 턴마다 긴 프리픽스—시스템 프롬프트, 프로젝트 지시, 대화 기록—를 다시 보내기 때문입니다. 캐싱이 없으면 모델은 모든 요청에서 이 모든 내용을 다시 인코딩하여 느리고 비쌉니다. 캐싱이 있으면 공유 프리픽스는 한 번만 계산되고 동일 세션의 후속 턴에서 재사용됩니다. 실질적 의미: 세션 도중에 프로젝트 지시(예: AGENTS.md)를 편집하지 마세요. 세션 나머지 부분의 캐시가 무효화되기 때문입니다.

Sora Android 같은 것을 출시하는 데 엔지니어가 몇 명 필요한가요?

OpenAI가 공개한 숫자는 엔지니어 4명, 28일이며, 보고된 바에 따르면 Codex가 코드베이스의 거의 85%를 생성하고 전체 프로젝트가 약 50억 토큰을 소비했습니다. 팀은 명시적으로 소규모 유지를 선택했고—브룩스의 "지연된 프로젝트에 인력을 추가하면 더 늦어질 뿐"을 인용—구현을 에이전트에 크게 의존했습니다.

Codex가 Datadog 평가에서 실제로 무엇을 포착했나요?

팀의 "장애 재생" 방법에서 그들은 역사적으로 장애를 일으킨 PR을 Codex를 통해 다시 실행하고 온콜 엔지니어에게 피드백이 결과를 바꿀지 물었습니다. Codex는 약 22%의 장애에서 실행 가능한 피드백을 제공했습니다—예를 들어 PR이 처음 랜딩될 때 인간 리뷰어가 놓친 서비스 간 회귀와 성능 변화 같은 문제입니다.

동일한 에이전트 루프 패턴을 이미지 또는 영상 생성에 사용할 수 있나요?

네. 이 아키텍처 패턴—프롬프트 준비, 모델 호출, 도구 실행, 결과 추가, 종료까지 루프—은 모델에 구애받지 않습니다. hiapi의 미디어 생성 엔드포인트(이미지 모델 gpt-image-2 또는 nano-banana-2, 영상 모델 seedance-2-0 등)에 연결하고 동일한 교훈을 따를 수 있습니다. 프리픽스 캐싱을 위한 안정적인 시스템 프롬프트, 품질을 보장하는 예제, 안전을 위한 샌드박스 지출 상한, 종료를 결정하는 검토 단계.

AGENTS.md에 무엇을 넣어야 하나요?

Codex에 구체적으로: 프로젝트 규칙, 빌드/테스트/린트 명령, 코드 스타일 규칙, 그리고 "건드리지 말 것" 경계. 공개된 Sora와 Datadog 팀 모두 이를 에이전트의 온보딩 문서로 취급했습니다—시니어 엔지니어에게 첫날 알려줄 것들입니다. 세션 동안 안정적으로 유지하여 프리픽스 캐시에 남도록 하세요.

핵심 요점

  • Codex 에이전트 루프는 단순한 제어 흐름입니다: 프롬프트 준비 → 모델 추론 → 선택적 도구 호출 → 결과 추가 → 모델이 일반 어시스턴트 메시지를 내보낼 때까지 반복.
  • 세 가지 구현 세부 사항이 이를 프로덕션 수준으로 만듭니다: 프리픽스 캐싱, 대화 내에 남는 도구 호출 결과, 모델 출력 형태로 구동되는 종료 감지.
  • Datadog은 이 루프를 1,000명 이상의 엔지니어를 위한 시스템 수준 코드 리뷰에 사용하며, 그 장애 재생 테스트 프레임워크는 Codex가 인간 리뷰어가 놓쳤던 과거 장애 관련 문제의 약 22%를 포착했음을 보여줍니다.
  • OpenAI는 엔지니어 4명으로 28일 만에 Sora Android 앱을 출시했고, 약 85%의 코드를 Codex가 생성했으며, 출시 시 무크래시율 99.9%를 기록했습니다—"가서 만들어라"라고 프롬프트하는 대신 예제와 AGENTS.md로 대규모 스캐폴딩을 구축한 덕분입니다.
  • 동일한 에이전트 루프 아키텍처는 hiapi에서 구축할 수 있는 미디어 생성 파이프라인으로 깔끔하게 이식됩니다: 모든 텍스트-투-이미지 및 텍스트-투-비디오 모델이 동일한 /v1/tasks 비동기 형태를 사용하며, Codex의 프리픽스 캐싱, 샌드박스, 예제 측면의 플레이는 이미지 및 영상 에이전트에 일대일로 대응됩니다.

영구 AI 아티팩트로 빌드 시작하기

API 키를 받아 태스크 기반의 하나의 API로 이미지, 비디오, 오디오 모델을 호출하세요.

API 문서 보기