Loop Engineering

Author: Addy Osmani | Source: addyosmani.com/blog | Published: 2026-06-07


한 줄 요약

프롬프트를 잘 쓰는 사람이 되는 대신 에이전트를 프롬프트하는 시스템(루프)을 설계하는 쪽으로 레버리지 포인트가 이동했고, 그 루프는 automation·worktree·skill·connector·subagent 다섯 조각 + 외부 메모리로 구성된다.

핵심 주장/내용

  • 루프 = 재귀적 목표: 목적을 정의하면 AI가 완료될 때까지 반복. 일을 찾아내고, 나눠주고, 검증하고, 무엇이 끝났는지 기록하고, 다음을 결정하는 작은 시스템을 만들어 그 시스템이 에이전트를 찌르게 한다
  • 5개 프리미티브 (Codex와 Claude Code 양쪽에 모두 존재, 이름만 다름):
    1. Automations — 스케줄로 발화해 스스로 discovery·triage. 뭔가 찾으면 Triage inbox로, 아무것도 없으면 자동 아카이브
    2. Worktrees — 병렬 에이전트가 같은 파일을 건드리지 않게 격리. 두 에이전트가 같은 파일을 쓰는 건 두 엔지니어가 상의 없이 같은 줄을 커밋하는 것과 동일한 문제
    3. Skills — 프로젝트 지식을 SKILL.md에 기록. 없으면 루프가 매 사이클 프로젝트를 처음부터 재유도(re-derive)
    4. Plugins/Connectors (MCP) — 이슈 트래커·DB·스테이징 API·Slack 접근. “고치는 법은 이겁니다”와 “PR을 열고 티켓을 링크하고 CI 그린이면 채널에 알림”의 차이
    5. Sub-agents — 만드는 자와 검사하는 자를 분리. 코드를 쓴 모델은 자기 숙제를 너무 후하게 채점
  • 여섯 번째, 메모리: 대화 밖에 사는 마크다운/Linear 보드. 모델은 실행 사이에 전부 잊지만 repo는 안 잊는다. 컨텍스트가 아니라 디스크에 있어야 함
  • /loop vs /goal: /loop는 주기적으로 재실행, /goal은 검증 가능한 정지 조건이 참이 될 때까지 계속하며 매 턴마다 별도 소형 모델이 완료 여부를 판정(maker/checker 분리를 정지 조건 자체에 적용)
  • 루프가 대신 해주지 않는 3가지 — 오히려 루프가 좋아질수록 날카로워지는 문제:
    • 검증: 무인 루프는 무인으로 실수하는 루프. “done”은 주장이지 증명이 아님
    • comprehension debt: 내가 안 쓴 코드를 빠르게 내보낼수록 존재하는 것과 내가 이해하는 것의 간극이 커짐
    • cognitive surrender: 루프가 알아서 돌면 의견 갖기를 그만두고 나오는 대로 받는 게 편해짐
  • 같은 루프, 정반대 결과: 깊이 이해하는 일을 더 빨리 하려고 쓰는 사람과, 일을 이해하지 않으려고 쓰는 사람. 루프는 차이를 모르지만 사람은 안다

주요 수치 / 사실

  • 인용: Peter Steinberger “코딩 에이전트를 프롬프트하지 말고 에이전트를 프롬프트하는 루프를 설계하라”, Boris Cherny(Anthropic, Claude Code) “나는 이제 Claude를 프롬프트하지 않는다. 루프를 돌린다. 내 일은 루프를 쓰는 것”
  • 토큰 비용 경고: subagent는 각자 모델·툴 작업을 하므로 토큰을 더 태움. 두 번째 의견이 값어치 있는 곳에만 지출
  • 실제 루프 예시: 매일 아침 automation → triage skill이 어제 CI 실패·오픈 이슈·최근 커밋을 읽어 마크다운/Linear에 기록 → 항목마다 worktree 열고 subagent가 수정 초안, 두 번째 subagent가 프로젝트 skill·기존 테스트 대비 리뷰 → connector가 PR 개설·티켓 갱신 → 처리 못한 건 triage inbox로
  • 병목은 도구가 아니라 사람의 리뷰 대역폭(orchestration tax)

관련 위키


Source: 원문 보기