AI 에이전트 루프: 자가 교정형 코딩 에이전트가 끝까지 해내는 방법
AI 에이전트 루프는 프롬프트하고 고치는 방식을 자가 교정 사이클로 바꿉니다. 에이전트가 계획을 쓰고, 만들고, 자기 결과물을 계획에 비춰 검토한 뒤, 완료될 때까지 반복합니다. Claude Code, Codex, Gemini CLI, Cursor, 그리고 Ralph loop에서 루프가 어떻게 작동하는지 알아봅니다.
대부분의 사람들이 여전히 AI 코딩 에이전트를 쓰는 방식은 탁구 같습니다. 프롬프트를 보내면 에이전트가 답하고, 뭐가 잘못됐는지 짚어내서 다시 프롬프트를 보냅니다. 교정을 담당하는 엔진은 당신이고, 매 턴마다 루프 안에 들어가 앉아 있는 셈입니다.
루프는 이 구도를 뒤집습니다. 원하는 것을 설명하면 에이전트가 작업에 착수하고, 자기 체크리스트를 쓰고, 자기 약점을 찾아내고, 결과물이 제대로 설 때까지 다시 돌립니다. 실수를 잡아내는 역할이 더 이상 당신이 아닙니다. 에이전트가 자기 실수를 잡습니다.
이 전환은 과장된 마케팅이 아닙니다. 이 도구들을 만든 사람들이 직접 여기에 기댑니다. Claude Code를 만든 Boris Cherny와 Cat Wu는 에이전트 루프로 코딩한다고 이야기합니다. "Ralph loop"라는 이름을 붙인 Geoffrey Huntley는 단순한 while 루프 안에서 밤새 에이전트를 돌립니다. 이제 이 패턴에는 이름이 생겼고, 인스타그램에서 프롬프트 세 개를 베껴오기 전에 이해해 둘 만한 가치가 있습니다.
프롬프트 탁구에서 루프로
단일 프롬프트는 한 방입니다. 묻고, 답을 받고, 거래가 끝납니다. 이걸 개선하려면 당신이 빈틈을 알아채고 다시 프롬프트를 보내야 합니다. 이걸 진짜 기능 규모로 확장하면, 수십 번의 미세 교정을 손으로 하게 됩니다.
AI 에이전트 루프는 그 빈틈을 에이전트 안에서 닫습니다. 당신이 목표를 정하면 에이전트가 계획하고, 행동하고, 결과를 살피고, 교정합니다. 목표에 도달할 때까지 이걸 거듭합니다. 당신이 사라진 건 아닙니다. 마지막에 검토합니다. 다만 매 반복마다 발목을 잡는 병목이 더는 아닙니다.
프롬프트 탁구는 매 턴마다 당신을 루프 안에 넣습니다. 진짜 루프는 에이전트를 그 안에 넣습니다.
AI 에이전트 루프란 실제로 무엇인가
모든 에이전트 루프는 똑같은 네 박자로 돕니다. 계획, 행동, 관찰, 교정입니다. 에이전트가 다음 단계를 정하고, 그걸 실행하고(코드를 쓰고, 명령을 돌리고, 파일을 읽고), 무슨 일이 벌어졌는지 읽고, 조정합니다. Claude가 코드를 쓰고, 테스트를 돌리고, 실패를 보고, 고치고, 테스트를 다시 돌립니다. 이 피드백이 핵심 비결의 전부입니다. 그게 바로 루프를 단순 반복이 아니라 자가 교정형으로 만드는 요소입니다.
가장 강력한 형태의 루프는 이 박자들을 세 가지 역할로 나눕니다. 하나는 계획하고, 하나는 빌드하고, 하나는 검토합니다. 이들을 따로 떼어 두는 것이 바로, 에이전트가 답안을 쓰는 그 숨결에 자기 답안을 채점하는 일을 막아 줍니다.
오늘 바로 베껴 쓸 수 있는 세 명령어 루프
지금 돌고 있는 구성을, Claude Code 슬래시 명령어 세 개로 다시 만든 것이 여기 있습니다. 각각을 한 번씩 붙여넣으면 에이전트가 명령어를 만들고, 그다음 순서대로 실행하면 됩니다.
계획 담당, /spec:
내가 원하는 것을 완전히 이해할 때까지 한 번에 한 질문씩 나를 인터뷰해.
그런 다음 specs/project.md에 정확한 계획을 써: 목표, 정확한 요구사항,
엣지 케이스, 그리고 범위 안에 드는 것과 범위 밖인 것.
짧고 날카롭게 유지하고, 소설처럼 쓰지 마.
빌드 담당, /build:
specs/project.md를 읽고 거기 적힌 것을 정확히 그대로 빌드해, 그 이상은 안 돼.
끝나면 계획의 모든 요구사항을 나열하고, 어느 것을 충족했는지 표시해.
검토 담당, /review:
빌드된 결과를 specs/project.md와 요구사항 단위로 하나씩 비교해.
각 항목에 대해 충족됐는지 말해. 필요한 수정 사항을 적어서
/build에 다시 넘겨. 계획 전체가 충족됐을 때만 승인해.
명령어 셋, 루프 하나입니다. spec이 계획을 쓰고, build가 그것을 구현하고, review가 계획에 비춰 점검한 뒤 수정 사항을 build에 되돌려 보냅니다. 모든 요구사항이 충족될 때까지 계속 돕니다.
계획이 진실의 출처입니다. 검토는 빌드를 그 계획에 비춰 측정하며, 막연한 느낌에 비춰 측정하지 않습니다.
이건 그 속을 들여다보면 스펙 기반 코딩입니다. 채팅 기록이 아니라 글로 쓰인 스펙이 에이전트가 책임져야 할 기준입니다. GitHub의 오픈소스 Spec Kit은 /specify, /plan, /tasks, /implement로 같은 아이디어를 정형화했고, Claude Code, Copilot, Cursor, Codex CLI, Gemini CLI에서 똑같이 돕니다.
왜 새 컨텍스트가 루프를 작동하게 하는가: the Ralph loop
Geoffrey Huntley는 2025년 중반에 이 모든 것의 가장 거친 형태에 이름을 붙였습니다. Ralph loop입니다. 아이디어는 단순한 셸 루프로, 글로 쓰인 스펙을 두고 에이전트에게 같은 프롬프트를 먹이고, 에이전트가 작업 하나를 골라 출시하게 한 다음, 깨끗한 컨텍스트로 완전히 새로운 에이전트를 띄워 똑같은 프롬프트를 다시 먹이는 것입니다.
while has_more_todos; do
agent --prompt "todo.md에서 다음 작업을 처리해" --non-interactive
done
직관에 어긋나는 부분은 컨텍스트 초기화입니다. 긴 세션은 썩습니다. 창이 오래된 추론, 막다른 길, 낡은 파일 내용으로 채워지면서 모델이 슬그머니 지시를 흘리기 시작합니다. 각 Ralph 반복은 디스크에서 현재 저장소와 할 일 목록을 읽어 작업 한 단위를 하고, 커밋하고, 깔끔하게 빠져나오는 새 에이전트입니다. Huntley가 Simpsons 캐릭터의 이름을 일부러 붙인 이유가 있습니다. 너무 멍청해서 안 될 것처럼 보이는데, 됩니다. 긴 세션이 환각을 일으키기 시작하는 것을 본 적이 있다면, 왜 새 창이 부풀어 오른 창을 이기는지 이미 알고 있을 겁니다.
Claude Code의 /loop과 /goal
Claude Code는 루프 기본 요소를 직접 제공합니다. /goal은 지속되는 최종 상태, 즉 "완료"가 어떤 모습인지를 정하고, Claude는 그냥 다음 단계를 돌리는 대신 매 차례마다 그 목표에 비춰 진행 상황을 평가합니다. /loop은 작업을 일정 주기로, 또는 어떤 조건이 충족될 때까지 반복하며, /loop every 10m이나 /loop until: <condition> 같은 형태가 있습니다. 둘을 함께 쓰면 스스로 방향을 잡고 스스로 멈추는 루프가 만들어집니다. Claude는 현재 상태와 목표 사이의 간격을 작업하고, 목표가 충족되거나 당신이 Ctrl+C를 누르면 멈춥니다.
중요한 디테일이 있습니다. 루프는 연속성을 유지합니다. 무엇을 시도했고 왜 실패했는지 기억하므로, 매 차례가 같은 막다른 길을 반복하는 대신 이전 차례 위에 쌓입니다. 이건 Ralph의 깨끗한 컨텍스트 초기화와는 정반대의 절충이고, 둘 다 유효합니다. 빈틈없는 자가 교정에는 연속성을, 창이 썩어 가고 있을 때는 새 컨텍스트를 씁니다. 어느 쪽을 꺼내 들지 아는 것이 바로 진짜 실력입니다.
같은 루프, 모든 프로바이더
루프는 Claude만의 기능이 아니라, 이 분야 전체가 향하고 있는 방향입니다. 이름은 다르지만, 형태는 다르지 않습니다.
| 도구 | 루프 메커니즘 | 자가 교정 방식 |
|---|---|---|
| Claude Code | /goal + /loop | 지속되는 목표, 매 차례 간격을 평가하고 충족되면 멈춤 |
| Codex CLI | /goal | OpenAI의 "Ralph loop 해석판": 도달할 때까지 여러 턴에 걸쳐 목표를 살려 둠 |
| Gemini CLI | 에이전트형 계획-행동-관찰 | 계획하고, 편집하고, 점검을 돌리고, 단계별 승인 없이 자가 교정 |
| Cursor | 에이전트 모드 | 단계를 계획하고, 파일을 편집하고, 컴파일러를 돌리고, 자기가 망친 것을 고침 |
| Spec Kit (모든 에이전트) | /specify /plan /tasks /implement | 스펙이 루프 전체에서 진실의 출처 |
| Ralph / autoloop | 셸 while 루프 | 글로 쓰인 스펙을 두고 반복마다 새 에이전트 |
Codex CLI는 공개적으로 루프를 가장 멀리까지 밀어붙였습니다. OpenAI 팀은 자사의 /goal을 Ralph loop에 대한 자기들 해석판으로 소개했고, a16z의 Andrew Chen은 그것을 디바이스 드라이버 작업에 밤새 14시간 연속 개입 없이 돌려 두었습니다. 그는 또한 그게 "토큰 사용량을 1만 배로 불릴" 거라고 짚었는데, 이는 에이전트를 반나절 동안 갈아 돌리게 두는 데 드는 솔직한 비용입니다.
함정: 루프는 모든 것을 증폭시킨다
루프는 좋은 출력만 증폭시키는 게 아니라, 나쁜 계획도 증폭시킵니다. 자가 교정형 에이전트를 막연한 스펙에 겨누면, 엉뚱한 것을 당당하게 빌드하고, 같은 막연한 스펙에 비춰 검토하고, 승인할 것입니다. 계획이 지렛대입니다. 날카로운 스펙은 프롬프트 열 번을 아끼고, 흐릿한 스펙은 백 번을 낭비합니다.
지켜봐야 할 실패 양상이 둘 있습니다. 비용이 폭주합니다. 매 반복이 토큰을 태우고, 불분명한 목표 위에서 한계 없이 도는 루프는 토큰을 아주 많이 태울 수 있습니다. 그리고 루프가 영원히 돌 수도 있습니다. 승리를 선언하거나, 결코 충족할 수 없는 목표를 쫓으면서 말입니다. 한계를 두세요. 명확한 until 조건, 토큰 상한, 또는 머지 전 사람의 검토 지점입니다. 멈춤이 없는 루프는 자율성이 아니라, 통제 불능의 폭주입니다.
함대 전체에 걸쳐 루프 돌리기
자가 교정형 에이전트 하나는 돌보기 쉽습니다. 진짜 레버리지는 여러 개를 한꺼번에 돌릴 때, 각각이 자기 작업을 두고 루프를 돌 때 드러납니다. 그리고 바로 그 지점이, 터미널 하나를 들여다보는 방식이 더는 확장되지 않는 곳입니다.
AgentsRoom은 바로 그것을 위해 만들어졌습니다. 멀티 에이전트 콕핏입니다. 모든 에이전트에게 역할, 실시간 상태 점, 그리고 자기 색깔이 있고, 당신은 창 하나에서 함대 전체를 감독합니다. 백로그에 티켓을 떨어뜨리면 에이전트가 그것을 집어 계획-빌드-검토 루프를 돌리고, 깔끔한 diff를 건넵니다. 이것이 실전에서의 스펙 기반 AI 코딩입니다. 티켓이 스펙이고, 에이전트가 루프를 돌리고, 당신이 결과를 검토합니다.
긴 루프는 컨텍스트를 썩히기 때문에, AgentsRoom이 이를 지켜봅니다. 각 에이전트는 매 차례 끝에 한 줄짜리 상태를 쓰고, 어떤 에이전트가 두 차례 연속으로 그걸 갱신하지 않으면 깨끗한 컨텍스트에서 한 번의 클릭으로 재시작할 수 있는 경고가 뜹니다. Ralph loop가 의지하는 바로 그 새 창 초기화와 같습니다. 어떻게 작동하는지는 컨텍스트 드리프트 감지 페이지에서 읽어 보세요.
그리고 루프는 프로바이더에 종속되지 않기 때문에, 당신은 한 곳에 묶이지 않습니다. 한 티켓은 Claude Code에서, 다음은 Codex에서, 또 다른 하나는 Gemini CLI에서 돌리되, 모두 같은 대시보드에서, 각각이 자기만의 git worktree 안에서 돌게 해 병렬 에이전트들이 서로 충돌하지 않도록 합니다. 자리를 뜨기 전에 돌려 두고 아침에 diff를 검토하세요. 그것이 백그라운드 코딩 에이전트와 야간 근무의 핵심입니다.
목표를 한 번 정하고, 루프가 그것을 닫게 두고, 마지막에 검토하세요. AgentsRoom 다운로드하고, 프로바이더 호환성 매트릭스를 확인하고, 에이전트별 검토와 멀티 프로바이더 지원에 대해 더 읽어 보세요.
AgentsRoom 다운로드
모든 프로젝트에서 Claude 에이전트를 하나의 창에서 실행하세요.
컴패니언 앱: 이동 중에도 에이전트를 모니터링
Claude, Codex, Gemini CLI 또는 다른 AI 공급자를 사용하세요.
버그와 요청을 공개 백로그로 바로 보내세요.
AgentsRoom의 실제 모습.