원문 캡처 · github.com
원문 캡처 · github.com

The Art of Building AI Coding Agents 2판은 에이전트를 만들고, 학습 내용을 시험하고, 책을 개선하는 실습형 코드북이다.

책 읽기 · 장 안내 · 해답 · 1판 보관본

이 책의 실습으로 만든 코딩 에이전트 Ensemble에는 도구와 감독형 작업, 스트리밍 CLI·브라우저 인터페이스, 영구 대화 기록, 스킬, 메모리, 여러 에이전트의 운용 기능, 인증 게이트웨이가 포함된다. 저장소에는 코드와 함께 개발 과정을 형성한 지침, 채점 도구, 리뷰 기록도 공개돼 있다.

2판은 빌 콕스(Bill Cox)의 지휘 아래 Codex를 사용해 만들었다. 학생이 구현한 뒤 이를 비교 검토하고, 교육 내용과 채점 도구를 수정하는 과정을 거쳤다. 1판의 마지막 실습인 게이트웨이까지 다루며, 현재 26장에 해당한다. 기존 5장, 22장, 24장의 내용은 관련 장에 통합했으며, 기능은 유지했다.

Ensemble은 GPT-6 Astra를 높은 추론 설정으로 사용해 실제 코딩 작업을 수행한 바 있다. 다음 판의 일상적인 개발 도구로 쓰기 위한 작업은 진행 중이다. 25장은 이 경험을 다루기 위해 의도적으로 자리표시자로 남겨뒀다. 이 책은 Ensemble이 이미 3판을 만들었다고 주장하지 않는다. 24장은 선택 사항이며 채점되지 않는다. 공개 OAuth 경로에서 프롬프트 캐시가 만족스럽게 작동하는 독자는 이 장의 Codex 엔드포인트 우회 방법을 건너뛸 수 있다.

저장소와 개발

경로용도
book/현재 2판 원고와 출판 파일
agent/자체 Go 모듈을 사용하는 현재 애플리케이션 개발 트리
agent/gui/별도 Go 모듈로 제공하는 선택형 브라우저 애플리케이션
solutions/chNN/채택된 장별 누적 스냅샷. 책의 장 번호와 맞춰 사용한다
solutions/evidence/원래 실습 번호를 기준으로 보관한 실행 및 검사 기록
cmd/grade-edition2/현재 장 채점 명령어
docs/edition-2-notes/학생·저자·독립 리뷰 기록
edition-1/1판 책, 애플리케이션, 해답, 기존 채점 도구의 보관본

개발은 agent/에서 진행하고, 채택된 스냅샷은 그대로 보존한다. 25장에는 아직 채택된 해답 디렉터리가 없다. solutions/history/에는 폐기된 독립 리팩터링 스냅샷만 남아 있다. 과거 매니페스트와 영수증에는 측정 당시의 경로와 소스 리비전이 기록돼 있다. 이동 기록에서 파일 이동에 관한 설명을 볼 수 있다.

각 모듈에 지정된 Go 버전을 사용해 모듈 디렉터리에서 빌드한다.

sh
mkdir -p bin
(cd agent && go build -o ../bin/ensemble .)
(cd agent/gui && go build -o ../../bin/ensemble-gui ./cmd)

API 키를 사용하는 경우 LLM_VENDOR, LLM_MODEL, LLM_API_KEY를 지정한 뒤, 사용할 작업공간에서 CLI를 실행한다.

sh
/path/to/ensemble/bin/ensemble chat --skills-dir /path/to/ensemble/agent/skills

구현이 지원하고 사용자 계정에서 사용할 수 있는 모델을 선택해야 한다. 애플리케이션 README는 설정, 인증, 스트리밍, 기록 저장을 설명한다. 브라우저 인터페이스는 GUI README에서 다룬다.

선택 사항인 24장 경로에서는 기존 Codex 로그인이 읽기 전용 인증 정보 파일을 제공한다. 다음 예시는 대화 상태를 저장소 바깥에 두고, 도구는 저장소에서 작동하도록 구성한다.

sh
ensemble_repo="$PWD"
mkdir -p "$HOME/ensemble-session"
(
 cd "$HOME/ensemble-session"
 unset LLM_BASE_URL OPENAI_BASE_URL LLM_RESOLVED_MODEL
 LLM_VENDOR=openai LLM_MODEL=gpt-6-astra \
 OPENAI_REASONING_EFFORT=high OPENAI_BILLING_MODE=codex \
 "$ensemble_repo/bin/ensemble-gui" \
 --workspace "$ensemble_repo" \
 --skills-dir "$ensemble_repo/agent/skills" --save save.json
)

애플리케이션이 출력하는 브라우저 주소를 사용한다. 이 경로는 Codex의 기존 인증 정보를 복사하거나 갱신하지 않고 읽는다. 우회 방법의 근거와 한계는 24장에 설명돼 있다. 답변이 성공했다는 사실만으로 프롬프트 캐시가 재사용됐다고 입증할 수는 없다.

실습 채점

저장소 루트에서 실습을 채점할 수 있다.

sh
make grade # current Chapter 1 snapshot
make grade-dir CH=26 DIR=./solutions/ch26
go run ./cmd/grade-edition2 -ch 8 # matching snapshot by default
go run ./cmd/grade-edition2 -ch 3 /path/to/your/submission

수정된 채점 도구는 1~18장, 20~23장, 26장을 다룬다. 19장은 설명 중심이고, 24장은 선택 사항이며 채점하지 않는다. 25장은 추후 경험을 위해 남겨뒀다. 검사는 유료 추론을 사용하지 않고 실제 애플리케이션을 로컬 가짜 서비스에 연결해 실행한다. 각 장은 공개된 요구사항과 별도의 리뷰 또는 실제 사용 작업이 있는지 밝힌다.

기존 채점 도구에서 실패한 항목은 독립적으로 예외를 인정받았더라도 과거 기록에 실패로 남는다. 수정된 채점 결과는 별도의 결과로 기록한다. 차이는 작업 흐름 안내와 개선 기록에서 확인할 수 있다. 기존 채점 도구를 실행하려면 먼저 보관 디렉터리로 이동한다.

sh
(cd edition-1 && go run ./cmd/grade -ch 1)

책 빌드와 라이선스

sh
make book
make ebook
python3 book/build-print.py

조립된 마크다운은 저장소에서 바로 읽을 수 있도록 커밋돼 있다. 출판 안내에는 EPUB 탐색, 인쇄용 페이지 검증, 표지 포함 PDF에 관한 설명이 있다. 1판의 출판 파일은 edition-1/book/에 남아 있다.

책과 코드는 Apache-2.0 라이선스로 공개돼 있다. 저장소를 포크해 에이전트에 맞게 수정하고, 변경 이유를 기록할 수 있다. 새로 구현해보는 과정은 지침이 실제로 무엇을 가르치는지 시험하는 방법이기도 하다.