루프 엔지니어링은 최소한의 사람 개입으로 사용자 정의 목표를 달성하도록 에이전틱 워크플로, 즉 루프를 설계하여 AI 에이전트를 반복적으로 안내하는 기법입니다. 에이전트 루프는 매 단계마다 사람이 프롬프트를 제공하는 대신, 에이전트가 작업이 완료될 때까지 상황에 따라 행동하고, 관찰하고, 의사결정을 내리고, 반복적으로 작업을 수행할 수 있도록 합니다.
루프 엔지니어링은 개발자의 역할을 AI 에이전트에 프롬프트를 입력하는 것에서, 에이전트를 프롬프트하고, 점검하고, 안내하는 자동화 시스템을 설계하는 것으로 확장합니다. 잘 설계된 루프 안에서 에이전트는 추론하고, 행동하고, 자신의 행동 결과를 검토한 뒤, 그에 따라 다음 행동을 조정할 수 있습니다.
루프 엔지니어링은 IBM Bob, Claude Code, OpenAI Codex와 같은 다양한 AI 코딩 에이전트의 기반이 되는 새로운 에이전틱 엔지니어링 기법입니다. 루프 엔지니어링은 전체 실행 시스템을 최적화하여 에이전트가 최소한의 감독만으로도 복잡한 다단계 문제를 해결할 수 있도록 합니다.
프롬프트 엔지니어링은 AI 모델에 가장 효과적이고 최적화된 단일 지시를 작성하는 기법입니다. 루프 엔지니어링은 지정된 목표를 달성할 때까지 스스로 프롬프트를 생성하고 작업 결과를 평가하는 자동화 시스템을 설계합니다.
프롬프트 엔지니어링에서는 사람이 프롬프트를 작성하고, 결과를 평가하며, 각 단계에서 다음 프롬프트를 작성합니다. 루프 엔지니어링은 최적의 결과를 얻기 위해 자체 내부 프롬프트를 스스로 개선하는 자동화 시스템을 구축합니다. 프롬프트 체인은 고정된 구조를 따르지만, 루프는 동적이며 유연합니다.
프롬프트 엔지니어링은 일회성 상호작용이나 개별 모델 호출에 적합합니다. 루프 엔지니어링은 자율 코드 생성, 소프트웨어 유지 관리, 다단계 작업 수행과 같은 워크플로를 처리하는 장시간 실행 에이전트에 더욱 적합합니다.
Think 뉴스레터를 통해 AI, 자동화, 데이터 등 가장 중요하고 흥미로운 업계 동향에 대한 최신 소식을 받아보세요. IBM 개인정보 보호정책을 참조하세요.
에이전트 루프는 일반적으로 다음과 같은 패턴을 따릅니다.
재귀적 목표는 에이전틱 루프가 반복될 때마다 평가되며, 에이전트가 목표에 계속 집중하도록 돕는 동시에 불필요한 반복을 방지하고 토큰 비용을 제어합니다. 재귀적 목표는 명확하고 검증 가능한 종료 조건을 포함한 구체적인 목표를 AI 에이전트에 제공합니다. 목표는 구체적이고 적절한 범위를 가져야 하며, 가능한 경우 테스트 가능한 하위 작업으로 나누어야 합니다.
"웹사이트가 더 빠르게 로드되도록 해"는 모호한 지시입니다. 반면 "코드가 모든 단위 테스트를 통과하고 요청된 요구 사항을 충족하면 반복을 중단해"는 에이전트에 측정 가능한 목표와 명확한 종료 조건을 제공합니다.
에이전트는 자신의 목표와 현재 진행 상황을 고려한 후, 목표에 더 가까워질 수 있는 행동을 수행합니다. 행동에는 코드 생성, 단위 테스트 실행 또는 버그 수정 등이 포함될 수 있습니다.
에이전틱 시스템은 해당 행동의 결과를 평가합니다. 자동 코드 생성에서는 에이전트가 생성한 코드의 통과 여부를 확인하기 위해 지속적 통합(CI) 테스트를 실행할 수 있습니다.
관찰 결과를 바탕으로 시스템은 피드백을 평가하고, 필요한 경우 접근 방식을 수정한 뒤 에이전틱 루프를 다시 시작합니다.
잘 설계된 루프는 최소한의 감독만으로도 효율적이고 안정적으로 작동하며, 정해진 범위 안에서 실행됩니다. 이러한 루프는 토큰 비용을 낮게 유지하고, 적절한 시점에 종료되며, 신뢰할 수 있는 결과를 도출하는 효율적인 프로세스입니다. 반대로 잘못 설계된 루프는 반복되는 실패, 불필요한 작업 또는 잘못된 추론으로 토큰을 낭비하여 비효율적으로 작동합니다.
좋은 결과를 내는 루프를 설계할 때 개발자는 일반적으로 다음 요소를 포함합니다.
루프를 일회성 프롬프트와 구분하는 핵심은 반복 실행입니다. 사용하는 코딩 도우미에 따라 루프는 자동화 또는 일정 관리를 통해 실행됩니다. 두 방식 모두 루프의 실행 주기를 정의하여 무엇을, 얼마나 자주 수행할지 결정합니다. 예를 들어 개발자는 GitHub Actions를 사용해 에이전트 루프를 예약하거나 트리거하는 경우가 많습니다.
Linux나 macOS 같은 Unix 기반 시스템에서는 cron 작업이라는 시간 기반 스케줄러를 사용해 작업을 자동화합니다.
예약된 자동화와 달리 후크는 코드 생성, 파일 편집, 툴 호출, 작업 완료와 같은 이벤트가 발생할 때 실행되는 지시입니다. 후크는 해당 이벤트가 실행되기 전이나 후에 실행될 수 있습니다.
개발자는 주로 정책 적용, 출력값 검증, 워크플로 자동 실행 등 보안과 품질 관리를 위해 후크를 사용합니다. 예를 들어 pre-commit 후크는 변경 사항을 리포지터리에 커밋하기 전에 코드가 표준을 준수하는지 확인하는 데 사용할 수 있습니다.
후크는 거버넌스나 품질 검사 같은 작업을 에이전트 대신 처리하므로 토큰 사용량과 연산 비용을 줄일 수 있습니다.
루프가 한 번 실행될 때마다 컨텍스트라고 하는 데이터가 생성되며, 이 데이터는 다음 실행의 입력으로 사용됩니다. 최신 AI 에이전트와 대규모 언어 모델(LLM)은 컨텍스트 윈도우가 커서 한 번에 많은 양의 데이터를 입력할 수 있습니다. 하지만 컨텍스트를 지나치게 많이 제공하면 관련성이 떨어지고 비용이 증가하며, 모델이 중요한 정보를 식별하기도 어려워질 수 있습니다.
컨텍스트 엔지니어링은 AI 모델에 필요한 데이터만 제공하고 불필요한 컨텍스트는 최소화하도록 시스템을 설계하는 기법입니다. 대표적인 방법으로는 이전 루프 실행 결과를 요약해 컨텍스트를 압축하거나, 마크다운을 활용해 컨텍스트를 더욱 체계적으로 구성하는 방법이 있습니다.
루프 엔지니어는 일반적으로 MCP(Model Context Protocol) 서버를 다른 API 및 통합 기능과 함께 사용하여 에이전트가 커넥터와 툴을 통해 자율적으로 작업을 수행할 수 있도록 합니다. 툴에 액세스할 수 없으면 에이전트는 무엇을 할지 설명만 할 수 있을 뿐, 외부 시스템에서 실제 작업을 수행할 수는 없습니다.
코딩 에이전트는 툴을 사용해 코드를 실행하고, 파일 시스템에 액세스하며, 터미널이나 셸에서 명령을 실행하고, 데이터베이스를 조회하며, 테스트를 수행합니다. 에이전트 하니스 엔지니어링은 지속적으로 동작하면서 스스로 오류를 수정하는 시스템을 구축하기 위해 에이전트를 중심으로 완전한 실행 환경을 설계하는 새로운 기법입니다.
워크트리를 사용하면 여러 에이전트가 서로의 작업에 영향을 주지 않고 브랜치를 분리해 병렬로 작업할 수 있습니다. Git 워크트리를 사용하면 여러 작업 디렉터리가 하나의 리포지터리를 공유할 수 있으므로 리포지터리 기록을 복제하지 않고도 여러 브랜치를 동시에 사용할 수 있습니다. 에이전트는 코드가 테스트를 통과하고, 사람이 검토하거나, 사용자가 지정한 다른 조건을 충족하기 전까지는 브랜치를 병합하지 않습니다.
스킬에는 반복적으로 수행되는 특정 워크플로에 필요한 프로젝트별 지식이 담겨 있습니다. 에이전트는 해당 작업을 수행할 때 스킬 파일을 참조합니다. 일부 코딩 도우미는 지침과 메타데이터가 포함된 skill.md 파일을 하나의 스킬 폴더로 구성합니다. 반면 agents.md와 같은 프로젝트 수준의 지침 파일은 리포지터리 전체에 적용됩니다.
스킬이 없으면 사용자는 세션마다 프로젝트 컨텍스트를 직접 제공해야 하며, 그렇지 않으면 에이전트가 해야 할 작업을 추측하게 되어 잘못 판단할 위험이 있습니다. 스킬은 플러그인 형태로 여러 프로젝트와 리포지터리에서 공유할 수 있습니다.
주 에이전트는 조사, 탐색, 구현, 검증과 같은 특정 역할을 수행하도록 하위 에이전트에 작업을 위임할 수 있습니다. 효과적인 루프 엔지니어링은 한 에이전트가 다른 에이전트의 코드를 검토하는 메이커/체커 구조를 사용하여 코드 품질을 높입니다.
하위 에이전트를 사용하면 토큰 사용량은 늘어나지만, 별도의 지침을 가진 검증용 하위 에이전트가 코딩 에이전트가 자신의 코드를 직접 검토하는 것보다 일반적으로 더 높은 수준의 품질을 보장합니다. 일부 코드 플랫폼은 별도의 하위 에이전트를 사용하여 작업 진행 상황을 모니터링하고 종료 조건이 충족되었는지 판단합니다.
루프에는 스파인이 포함됩니다. 스파인은 프로젝트 진행 상황을 추적하고 동일한 오류가 반복되는 것을 방지하기 위한 지속 상태 또는 메모리입니다. 매 사이클마다 에이전트는 자신의 작업 결과를 지속 상태, 메모리 저장소 또는 마크다운 파일이나 Linear 보드와 같은 프로젝트 추적기에 기록합니다. 스파인은 상태와 컨텍스트를 유지하여 이후 반복 작업에 활용합니다.
아무리 견고하고 안정적인 루프라도 사람의 개입은 반드시 필요합니다. 조직은 AI를 활용해 소프트웨어 개발 및 배포를 가속화하고, 품질, 보안, 비즈니스 성과에 대한 판단은 사람이 맡을 때 AI의 가치를 가장 크게 얻을 수 있습니다.
휴먼 인 더 루프 접근 방식은 검증되지 않은 코드, 이해 부채, 의도 부채, 인지적 의존과 같은 자동 코드 생성의 가장 큰 위험을 줄이는 데 도움이 됩니다.
체커 에이전트 역시 결국 하나의 에이전트일 뿐이며, 배포되는 모든 코드에 대한 최종 책임은 개발자에게 있습니다. 효과적인 AI 거버넌스를 위해서는 코드가 정상적으로 동작하는지뿐 아니라 민감한 데이터를 노출하거나 관련 규정을 위반하지 않는지도 사람이 직접 확인해야 합니다.
시스템에 존재하는 전체 코드의 양과 사람이 실제로 이해하고 있는 수준 사이의 격차를 이해 부채라고 합니다. 에이전트가 작성하는 코드가 늘어나고 사람이 검토하는 양이 줄어들수록 이해 부채는 커집니다.
기존의 기술 부채가 의도적인 지름길에서 비롯되는 반면, 이해 부채는 자연스럽게 누적됩니다. 에이전트는 매우 빠르게 코드를 생성하기 때문에 이해 부채도 빠르게 쌓입니다. 또한 코드가 자동화된 테스트를 통과하는 경우가 많아 이러한 문제는 쉽게 드러나지 않습니다. 이를 방치하면 운영 환경의 장애를 디버깅하거나, 대규모 변경을 수행하거나, 장애에 대응해야 하는 시점에서 심각한 이해 부채가 드러나는 경우가 많습니다.
사람이 AI에 더욱 의존할수록 인지적 의존, 즉 중요한 사고 과정을 AI에 맡기는 현상이 나타날 가능성이 커집니다. 인지적 위임은 AI에 사고의 일부를 맡기되 사람이 생성된 결과를 직접 검토하고 확인하는 것을 의미하는 반면, 인지적 의존은 통제권 자체를 AI에 넘겨버린 상태를 의미합니다.
개발자가 루프의 결과를 검증 없이 그대로 받아들이면 이해 부채는 빠르게 증가합니다.
IBM® Bob와 함께 안전하고 의도를 이해하는 AI 개발 파트너를 활용하여 소프트웨어 딜리버리를 가속화하세요.
엔터프라이즈 환경에 적합한 툴을 사용하여 AI 애플리케이션을 더욱 빠르게 개발, 배포 및 관리하세요.
지능형 AI 현대화로 레거시 시스템을 새롭게 혁신하세요.