Reviewed technical note
Loop Engineering은 에이전트 런타임의 설계 단위다
프롬프트 한 번이 아니라 관측, 판단, 실행, 검증이 반복되는 루프를 시스템 단위로 다루는 이유.
LLM 에이전트를 운영할 때 실패하는 지점은 대개 모델 호출 그 자체가 아니다. 실패는 루프의 경계가 흐릴 때 생긴다. 무엇을 관측했는지, 어떤 상태에서 다음 행동을 골랐는지, 실행 결과를 어떻게 검증했는지, 실패 시 어디로 되돌아가는지가 코드와 로그에 남지 않으면 에이전트는 디버깅할 수 없는 자동화가 된다.
프롬프트가 아니라 루프가 운영 단위다
단발 프롬프트는 입력과 출력만 가진다. 반면 운영 가능한 에이전트는 반복 구조를 가진다.
- 현재 상태와 외부 신호를 관측한다.
- 목표와 제약에 비춰 다음 행동을 고른다.
- 도구나 코드를 실행한다.
- 결과를 검증한다.
- 성공, 재시도, 중단, 사람 승인 중 하나로 전이한다.
이 반복이 명시돼야 비용, 지연, 실패율, 검증 누락을 측정할 수 있다. 그래서 loop engineering의 핵심은 “더 긴 프롬프트”가 아니라 반복 가능한 제어 구조다.
좋은 루프에는 중단 조건이 있다
자동화는 계속 돌 수 있다는 점 때문에 위험하다. 좋은 루프는 다음 조건을 코드로 가진다.
- 성공 판정: 산출물이 어떤 테스트나 관측값을 만족해야 하는가.
- 실패 판정: 어떤 오류는 재시도하지 않고 중단해야 하는가.
- 예산: 토큰, 시간, 도구 호출 수, 외부 API 비용의 상한은 얼마인가.
- 승인 경계: 어떤 변경은 사람이 승인해야 하는가.
이 조건이 없으면 에이전트는 “열심히 일하는 것처럼 보이는” 무한 재시도 장치가 된다.
블로그 자동 운영에도 같은 원리가 필요하다
나래위키 기반 블로그 운영 루프도 동일하다.
주제 후보 수집 → 근거 검색 → 초안 작성 → 출처 검증 → MDX 생성 → 리뷰 → 배포
여기서 자동화 가능한 단계와 사람이 봐야 하는 단계를 분리해야 한다. 초안 생성은 자동화할 수 있다. 그러나 출처가 불명확하거나 원문 요약에 가까운 글은 자동 발행하면 안 된다. draft와 reviewed 상태를 나누는 이유가 여기에 있다.
결론
에이전트 시스템의 최소 운영 단위는 모델 호출이 아니라 루프다. 루프를 명시하면 실패를 재현할 수 있고, 검증을 자동화할 수 있고, 사람이 개입해야 하는 경계를 코드로 남길 수 있다.