출처: Ryan Lopopolo (OpenAI) · YouTube 강연
문서유형: 번역·해설
#HarnessEngineering #AIAgent #OpenAI #CodeIsFree

핵심 요약

OpenAI의 Ryan Lopopolo는 하루 10억 토큰을 소비하는 토큰 억만장자다. 지난 9개월간 팀원 모두의 에디터 접근을 금지하고, 에이전트를 통해서만 코드를 작성하는 실험을 해왔다. 그의 결론은 하나다. 구현 능력은 더 이상 희소 자원이 아니다. 진짜 희소 자원은 인간의 시간, 어텐션, 그리고 컨텍스트 윈도우다.


“코드는 무료다” — 새로운 엔지니어링 패러다임

이 선언은 단순히 도발이 아니다. 모델은 무한히 병렬로 돌아가고, 인내심은 무한하다. 코드를 작성하고, 리팩터하고, 삭제하는 비용이 사라졌다. P3 태스크는 예전엔 결코 완수되지 않았다. 이제는 4개를 동시에 킥오프하고, 그중 하나를 고른다.

그 결과 엔지니어의 역할이 바뀌었다. 구현자에서 시스템 설계자·위임자로 전환된다. 지금 당신은 사실상 스탭 엔지니어다. 원하는 만큼 팀원을 가질 수 있다. 단, 그 팀원이 잘 일할 수 있도록 구조를 만드는 게 당신의 일이다.


에디터 없이 9개월: 실전 워크플로우

Ryan의 팀이 일하는 방식은 단순하다.

  1. 티켓 작성 — 기능 요구사항, 신뢰성 작업 등 단위 작업을 정의
  2. 스킬 부착 — 앱 실행법, 로컬 옵저버빌리티 스택, Chrome DevTools 연결법 등을 에이전트에게 가르치는 스킬 파일 제공
  3. 에이전트 실행 — Codex에 티켓을 넘기고 테스트가 그린이 될 때까지 실행

핵심은 에이전트가 개발 환경을 스스로 구성하게 만드는 것이다. 앱 실행, 로그 수집, DevTools 연결이 모두 스킬로 캡슐화돼 있어, 인프라가 바뀌어도 에이전트는 자동으로 적응한다. Ryan은 Chrome DevTools Protocol에서 새 데몬 방식으로 전환된 것을 3주 뒤에야 알았다. 에이전트가 이미 잘 처리하고 있었기 때문이다.

스킬은 5~10개로 제한한다. 넓게 늘리기보다는 기존 스킬을 개선한다. 인프라 변화를 스킬 뒤에 숨기면, 사람은 구현 세부사항에 신경 쓸 필요가 없다.


하네스의 본질: 적시에 올바른 텍스트 전달

하네스가 해야 할 일은 단 하나다. 모델에게 올바른 컨텍스트를 적시에 제공하는 것. 모든 것이 프롬프트다.

  • AGENTS.md 파일
  • 스킬 파일
  • 린트 에러 메시지 (“여기서 unknown을 쓰면 안 됩니다. 우리는 edge에서 parse하므로 타입이 이미 있습니다.”)
  • 리뷰어 에이전트가 PR에 남기는 코멘트
  • CI에 임베드된 검증 프롬프트

프론트엔드 컴포넌트를 작게 분리하라는 규칙이 있다면, 빌드 시작 때 주입하지 않아도 된다. 에이전트가 코드를 작성한 뒤, 린트 단계에서 “이제 이 컴포넌트를 작은 단위로 분리하세요"라고 알려주면 된다. 에이전트는 새 지시를 받고 코드를 수정한 뒤 PR을 올린다.


금요일 가비지 컬렉션: 슬롭을 체계적으로 없애는 법

팀에 세 명이 있고, 하루에 3~5개 PR이 올라오면 병합 충돌이 생긴다. Ryan의 팀은 이를 두 가지로 해결했다. 코드를 도메인별로 트리 구조화해 충돌을 줄이고, PR 체류 시간을 최소화했다.

PR 리뷰 병목을 없애기 위해 금요일을 가비지 컬렉션 데이로 지정했다. 이날은 한 주 동안 에이전트가 만들어낸 슬롭(품질 미달 코드 패턴)을 찾아 범주별로 영구 제거하는 구조를 만든다. 인간이 리뷰 코멘트를 달던 것을 문서화해 AGENTS.md에 추가하고, 린트·테스트·리뷰어 에이전트가 자동으로 같은 피드백을 주도록 만든다.

페르소나 기반 리뷰어 에이전트도 도입했다. 프런트엔드 아키텍트, 신뢰성 엔지니어, 스케일 전문가 페르소나로 각각 에이전트를 구성해 모든 푸시마다 리뷰가 자동으로 돌아간다. 사람은 P2 이상 이슈만 확인한다.


에이전트와 협업하는 코드 리뷰

코드 리뷰에서 에이전트는 피드백을 수용·보류·거절할 수 있다. 모든 코멘트를 반드시 반영하도록 강제하면 오히려 에이전트가 리뷰어에 끌려다니는 실패 모드가 생긴다. 코드는 완벽하지 않아도 된다. 빠르게 병합되는 것이 더 중요하다.

플랜 모드도 신중하게 써야 한다. 플랜을 읽지 않고 승인하면, 원하지 않는 지시사항을 반영하게 된다. 플랜을 쓴다면 별도 PR로 올려 한 줄씩 인간이 검토한 뒤 병합해야 한다.


미래: 에이전트 50개가 24/7

Ryan이 그리는 미래는 분명하다. 토큰 예산과 분기·반년·1년 치 업무를 넘기면, 에이전트들이 우선순위를 판단하고 지속적으로 제품을 발전시킨다. 사람은 “계속해"를 타이핑할 필요도 없다.

“에이전트에게 ‘계속해’를 입력해야 하는 순간은 하네스 실패다. 컨텍스트가 충분하지 않아 에이전트가 혼자 완수할 수 없다는 신호다.”

구현 능력이 무한해진 세상에서 엔지니어의 역할은 무엇을 만들지 정의하고, 에이전트가 그 일을 완수할 수 있는 구조를 설계하는 것으로 이동한다.