[시리즈] 하네스 엔지니어링

AI 코딩 시대에 사람 엔지니어가 해야할 일은?

개인적인 해석이 많이 포함된 글입니다. 학술적으로나 기술적으로 정확한 정의와 거리가 멀 수도 있으므로 읽으면서 유의하시기 바랍니다.

하네스 엔지니어링에서의 개발자의 역할

1. 사람이 조정하고, 에이전트가 수행

사람이 조정하고, 에이전트가 수행

이것은 OpenAI의 하네스 엔지니어링 실험에서의 가장 첫 제약조건이었다. 즉, 사람이 개발 및 수행에는 일절 개입하지 않으며, 사람은 단순히 조정만 하고 모든 작업은 에이전트가 수행하는 것이다.

OpenAI 실험 팀에서는 사람이 직접 코딩을 하지 않기 때문에 시스템, 스캐폴딩, 레버리지에 중점을 둔 다른 종류의 엔지니어링 작업이 필요했다고 한다. 이게 무슨 말일까?

2. 시스템, 스캐폴딩, 레버리지

(1) 시스템

여기서 시스템은 AI 에이전트가 일하는 전체 작업 환경을 뜻한다. 즉, AI가 코드를 만들고 검증하고 배포 흐름에 들어갈 수 있게 하는 운영 체계를 뜻하며, 사람 개발자(엔지니어링 팀)의 주요 업무는 이를 잘 구축하여 AI가 효과적으로 코드를 구축할 수 있게 하는 것임을 이야기한다.

1
2
3
4
5
6
7
개발 환경
리포지터리 구조
테스트 실행 방식
CI/CD
리뷰 프로세스
로그·메트릭·관측 가능성
권한과 제약 조건

(2) 스캐폴딩

스캐폴딩이란 에이전트가 작업을 시작하고 완성할 수 있게 해주는 발판과 골격을 의미한다. 예전에 Flutter를 써보면서 처음 알게 된 “스캐폴드”라는 단어를 여기서 다시 만났다. 스캐폴드는 건축 작업장에서 사용하는 비계(임시 발판)으로, 어떤 구조나 시스템을 세우기 위해 만드는 기본적인 뼈대나 임시 지지대를 뜻한다.

하네스 엔지니어링에서는 에이전트가 작업을 시작하고 완성할 수 있게 기본적인 뼈대를 잡는 작업을 사람 엔지니어가 해줘야 한다는 것이다.

1
2
3
4
5
6
7
8
AGENTS.md
작업 템플릿
실행 계획 문서
검증 스크립트
예제 코드
폴더 구조
체크리스트
재현 스크립트

(3) 레버리지

사람이 직접 코딩하지 않아도, 더 많은 작업이 진행되게 만드는 증폭 구조를 뜻한다. 기본적으로 레버리지는 지렛대를 뜻하는데, 금융쪽에서는 특히 타인의 자본이나 부채를 지렛대 삼아 자기 자본 투가 수익률을 극대화하는 전략을 뜻한다.

하네스 엔지니어링에서는 이러한 레버리지 구조를 만드는 것 또한 사람 엔지니어가 해야할 일인 것이다.

1
2
3
4
5
6
 사람이 여러 에이전트 작업을 병렬로 조정
반복 검증 자동화
에이전트  리뷰
작업 재사용
공통 도구화
자동화된 피드백 루프

3. AI 에이전트를 더 잘 지원하는 팁

OpenAI 실험팀은 사람 엔지니어 없이 AI만으로 효과적인 개발을 수행하기 위해 다음과 같은 작업들을 수행했다고 한다.

(1) 큰 목표를 작은 빌딩 블록으로 쪼개는 일

  • 사람이 직접 코딩하지 않기 때문에, 에이전트가 수행 가능한 작업 단위로 목표를 분해하는 게 첫 번째로 필요한 작업이 되었다.
  • 큰 목표를 설계, 코드, 검토, 테스트 같은 작은 빌딩 블록으로 세분화하고, 에이전트가 이러한 블록을 구축하도록 유도하는 첫 번째 단계이다.
1
2
3
4
5
6
7
8
9
10
11
 목표:
사용자 온보딩 기능을 만든다.

에이전트가 수행할  있는 블록:
1. 기존 사용자 가입 흐름을 조사한다.
2. 온보딩 제품 요구사항을 정리한다.
3. 필요한 DB 모델을 제안한다.
4. UI 플로우를 구현한다.
5. 테스트를 작성한다.
6. 로컬에서 검증한다.
7. PR을 열고 리뷰 피드백을 반영한다.

(2) 에이전트에게 부족한 도구와 추상화를 만들어주는 일

  • 쉽게 말해, AI 에이전트가 일할 수 있는 환경을 만들어주는 일이다.
1
2
3
4
5
6
7
작업을 이해할  있는 문서
실행 가능한 개발 환경
로컬 스크립트
테스트 도구
리뷰 도구
로그와 메트릭 조회 도구
UI 상태 확인 도구

(3) 에이전트가 읽고 실행할 수 있는 형태로 시스템을 준비

하네스 엔지니어링에서 사람 엔지니어가 가장 많이 고민할 부분은 아래 사항들이다.

1
2
3
- 어떤 기능이 누락되었는가?  
-  기능을 에이전트가 읽기 쉽게 만들여면 어떻게 해야하는가?  
-  기능을 에이전트가 실행 가능하게 만들려면 어떻게 해야하는가?  

이러한 고민들을 통해 하나씩 AI의 작업 환경을 준비해나가는 것이 바로 “스캐폴딩”이다. 즉, 단순히 폴더를 만드는 것을 넘어서 에이전트가 작업할 발판을 만들어주는 것이다. 예를 들면 다음과 같다.

1
2
3
4
5
6
PR 생성 흐름을 표준화한다.
테스트 실행 명령을 하나로 묶는다.
리뷰 요청 절차를 자동화한다.
문제 재현 스크립트를 만든다.
작업별 체크리스트를 만든다.
에이전트가 사용할  있는 리포지터리 내장 스킬을 만든다.

(4) 에이전트가 스스로 검토하고 반복할 수 있는 피드백 루프 만들기

  • 사람이 직접 모든 PR을 검토하지 않고, AI 에이전트가 스스로 검토하고 다시 고칠 수 있도록 다음과 같은 사항들을 지시한다.
1
2
3
4
5
로컬에서 자기 변경 사항을 검토한다.
로컬 또는 클라우드에서 추가 에이전트 리뷰를 요청한다.
사람 또는 에이전트 피드백에 응답한다.
모든 리뷰어가 만족할 때까지 반복한다.
PR을 연다.
  • 즉, 개발자는 리뷰를 직접 다 하는 사람이 아니라, 리뷰와 수정이 반복되는 루프를 설계하는 사람이 되는 것이다.

(5) 사람의 시간과 판단을 아끼는 레버리지 구조

  • 레버리지는 앞서 살펴봤듯, 에이전트 여러 작업을 동시에 안정적으로 굴리고, 사람의 시간과 판단 대신 자신들이 스스로 검토하고 해결할 일을 찾아 더 의도에 일치하고 안정적으로 프로젝트가 수행되게끔 하는 구조를 만드는 것을 말한다.
1
2
3
4
5
6
7
사람은 작업을 설명한다.
Codex가 구현한다.
Codex가 테스트한다.
Codex가 PR을 연다.
다른 에이전트가 리뷰한다.
Codex가 피드백을 반영한다.
사람은 필요할 때만 방향을 조정한다.
  • 따라서 사람 엔지니어의 역할은 아래처럼 바뀌게 된다.
1
2
3
4
5
6
기존 개발자:
코드를 직접 작성하고 직접 검토하는 사람

하네스 엔지니어링의 개발자:
에이전트가 코드 작성, 검토, 테스트, 수정까지 수행할  있도록
도구·환경·작업 단위·피드백 루프를 설계하는 사람

Reference

하네스 엔지니어링: 에이전트 우선 세계에서 Codex 활용하기

[시리즈] 하네스 엔지니어링

AI 코딩 시대에 사람 엔지니어가 해야할 일은?

Comments