출처 https://www.youtube.com/watch?v=dMuGx0DzWak · 채널 바이브랩스 · 길이 08:20 · 게시 2026-07-23 포맷 내레이션 + 모션그래픽 해설 영상. 11개 챕터로 나뉘어 슬라이드·수치 그래픽이 계속 바뀐다. 원본 자막(자동 생성):
raw/transcripts/2026-07-25-harness-loop-graph-engineering.ko.srt관련: moc-claude-code · moc-ai-agents-orchestration · moc-ai-agents-harness
한눈에 보는 요약
- 하네스 → 루프 → 그래프는 유행의 세대교체가 아니다. 앞 기술이 폐기되고 뒤 기술이 등장하는 계단이 아니라, 층위가 다른 세 요소가 동시에 돌아가는 구조다. 하네스는 AI가 일하는 작업장, 루프는 그 안에서 완료 조건까지 반복하는 방식, 그래프는 작업의 흐름을 지도처럼 그린 것이다.
- “그래프 엔지니어링”은 Anthropic의 기능 이름이 아니다. 실제 기능명은 Claude Code의 동적 워크플로우(dynamic workflow) — Claude가 JavaScript로 실행 계획을 짜고 서브에이전트에게 나눠 주는 기능이다. 워크플로우 하나당 동시 실행은 최대 16개, 워크플로우 전체 호출 상한은 1,000개다.
- 위력은 Bun 사례로 증명됐다. Bun 창립자가 동적 워크플로우로 핵심 코드를 Zig → Rust로 옮겼다. 11일, 약 50개 워크플로우, 최고점에 4개 동시 가동 = 약 64개의 Claude가 동시 작업. 6개 플랫폼 테스트 전부 통과(스킵·삭제 0), 재현되던 버그 128개 수정, 바이너리 약 20% 감소.
- 그런데 그 코드를 사람은 얼마나 읽었나. 후속 감사에서
unsafe표시가 약 1만 3천 개 넘게 발견됐고, 안전한 Rust에서 호출 가능한 위험 함수 5개가 별도로 나왔다. 자동 검사는 측정하도록 설계된 것만 측정한다 — “검사하지 않은 항목은 통과한 게 아니라 아무도 보지 않은 것.” - 비용도 공짜 초능력이 아니다. Bun 작업 토큰을 당시 API 정가로 환산하면 약 $165,000(약 2억 3천만 원). Anthropic의 멀티에이전트 리서치 시스템도 일반 채팅 대비 약 15배 토큰을 썼다.
- 그래프는 지능을 높이는 마법이 아니라 성공 확률을 높이는 구조다. 재시도·분할·검증을 쌓아 “천재처럼 보일 때까지” 돌리는 것에 가깝다. 문제는 에이전트는 병렬로 늘어나도 사람의 눈은 병렬로 늘어나지 않는다는 것.
- 결론 — 천장은 사라지지 않고 자리를 옮겼다. 예전 한계가 “한 번에 얼마나 큰 일을 시킬 수 있나”였다면, 지금은 “얼마나 많은 토큰·비용을 태울 것인가”와 “그 결과를 누가 읽고 책임질 것인가”다.
장면별 상세 설명
[00:02] 1. 따라잡기가 현대 무용이 된 시점

화면은 MODEL · PROMPT · HARNESS · LOOP · GRAPH를 한 줄로 늘어놓고 지금 시선이 꽂힌 자리(CURRENT OBSESSION)에 HARNESS를 밝혀 둔다. 우측 아래에는 TREND CYCLE: ACCELERATING.
내레이션의 하소연이 이 그림 그대로다. 얼마 전까지는 “모델보다 하네스가 중요하다”고 하길래 하네스를 겨우 공부했더니, 이번엔 “프롬프트의 시대는 끝났고 루프를 설계해야 한다”고 한다. 루프를 붙잡고 숨을 고르려니 이제는 그래프 엔지니어링의 시대란다. 하네스를 따라가면 루프가 달아나고, 루프를 쫓으면 그래프가 앞서간다. 양발로 하나씩 붙잡다가는 가랑이가 찢어질 판이라 “개발 공부가 아니라 현대 무용을 배우는 기분” 이라는 것.
[00:36] 2. 셋은 계단이 아니다 — 작업장으로서의 하네스

이 영상이 가장 먼저 바로잡는 지점이다. 화면 위쪽의 HARNESS → LOOP → GRAPH 직렬 화살표에 빨간 줄이 그어지고 NOT A RELAY(계주가 아니다)라는 라벨이 붙는다. 대신 아래쪽에서 세 노드가 서로 연결된 삼각형으로 재배치되고 COEXIST — 동시 운용이라는 캡션이 달린다. 옆의 체크리스트도 “앞 기술 = 폐기”는 ✗, “새 요소 = 한 묶음”은 ✓.
하네스는 AI가 실제로 일할 수 있게 만든 작업장이다. 모델이 머리라면, 파일을 읽고 고치는 도구·터미널·메모리·권한과 안전 규칙이 손발이다. Claude Code나 Codex 같은 도구가 대표적인 예다.
[01:01] 3. 루프와 그래프 — 완료 조건, 그리고 작업의 지도

루프는 그 작업장 안에서 AI가 일을 반복하는 방식이다. 화면은 원형 트랙을 도는 러너와 PASS CONDITION 1/12이라는 카운터로 이를 표현한다. “테스트 12개를 모두 통과할 때까지 수정하라”고 시키면 AI가 코드를 고치고, 테스트하고, 실패 원인까지 찾아 다시 고친다. 사람이 매번 판단하는 대신 완료 조건을 미리 기계에게 넘기는 구조다. (루프 자체를 더 깊이 다룬 노트: 2026-06-14-loop-engineering)

그래프는 작업이 흘러가는 관계를 지도처럼 표현하는 방식이다. 슬라이드 부제 그대로 “갈라졌다가, 다시 합쳐지는 길” — A가 끝나면 B와 C로 나뉘고, 두 작업이 모두 끝나면 D에서 결과를 합친다. 검증에 실패하면 앞 단계로 되돌아갈 수도 있다.
[01:33] 4. 하네스 안에서 루프도 돌고 그래프도 돈다

작업장이라 이름 붙은 박스 안에 루프가 그려지고, 우측 범례가 PASS → 직진 / FAIL → 되감기로 갈린다. 실패한 경로는 분홍 점선으로 되감기며 빠져나간다. 셋의 관계를 한 장으로 정리한 그림이다 — 하네스라는 작업장 안에서 루프도 돌고 그래프도 돈다. 그래프 안에 루프가 들어갈 수도 있다.
여기서 흔한 오해도 하나 짚는다. 그래프가 곧 “여러 AI를 동시에 돌린다”는 뜻은 아니다. 한 에이전트만 움직이는 그래프도 있고, 순서대로 실행되는 그래프도 있다. 다만 서로 독립적인 작업을 발견하면 여러 에이전트에게 나눠 병렬 처리할 수 있기 때문에 멀티에이전트와 자주 함께 등장하는 것이다.
[01:57] 5. 뿌리는 오래됐고, Anthropic이 붙인 진짜 이름은 따로 있다

“그래프 엔지니어링을 누가 만들었냐”고 물으면 한 사람을 지목하기 어렵다. 화면 하단에 나열된 PETRI NET · MEALY · MOORE · STATECHART가 답을 대신한다 — 그래프와 워크플로우, 상태 머신은 수십 년 전부터 소프트웨어 개발에 쓰이던 도식이다. 최근 한 개발자가 Claude를 활용한 14단계 로드맵으로 이 흐름을 “그래프 엔지니어링”이라는 이름 아래 체계화하면서 크게 알려졌다고 보는 편이 정확하다.

그래서 Anthropic이 새로 만든 실제 기능의 이름은 그래프 엔지니어링이 아니라 동적 워크플로우(dynamic workflow) 다. Claude가 JavaScript로 실행 계획을 작성하고 여러 서브에이전트에게 이를 나눠 주는 기능이다.

숫자도 명확하다. 공식 문서 기준 동적 워크플로우 한 번에 최대 16개 에이전트가 동시에 움직인다. 컴퓨터 CPU가 부족하면 그보다 적게 실행된다(슬라이드 부제 “여유가 없으면 수가 줄어든다”가 이것). 한 워크플로우가 호출할 수 있는 에이전트는 총 1,000개까지지만, 1,000개가 한꺼번에 달려드는 것은 아니다 — 동시 상한 16을 지키며 큐에서 순서대로 소화된다.
[02:53] 6. Bun 사례 — 64개의 Claude가 11일 동안

이 기능이 얼마나 강력한지는 Bun 사례에서 드러난다. Bun은 JavaScript와 TypeScript를 빠르게 실행하는 런타임이고, Bun 창립자가 Claude Code의 동적 워크플로우를 활용해 핵심 코드를 Zig에서 Rust로 옮겼다.
화면의 계기판이 규모를 요약한다 — 11일 동안 매일 불이 켜졌고, 워크플로우는 약 50회 가동됐으며, 최고점에는 4개 워크플로우를 동시에 돌렸다. 워크플로우마다 16개 에이전트가 움직였으니 약 64개의 Claude가 동시에 작업한 셈이다.


결과도 놀라웠다. Bun 측 발표에 따르면 6개 플랫폼(darwin-arm64, darwin-x64, linux-x64, linux-arm64, linux-musl, win32-x64)에서 준비된 테스트를 모두 통과했고 건너뛰거나 삭제한 테스트는 없었다(SKIP 0 / DELETE 0). 기존에 재현되던 버그 128개도 수정했는데, 메모리 누수와 충돌뿐 아니라 도움말 색상이 잘못 표시되는 사소한 오류까지 포함된다.
바이너리 크기도 약 20% 줄었다. 다만 이걸 Rust 재작성만의 결과라고 말하면 안 된다 — ICU 데이터 정리와 링커 최적화가 함께 반영된 결과다. 일부 벤치마크에서는 실행 속도도 조금 좋아졌다.
[04:01] 7. 그렇게 쏟아진 코드를 사람은 얼마나 읽었을까

여기서 영상의 방향이 꺾인다. 슬라이드 부제가 질문 그 자체다 — OUTPUT ≠ READ, 만들어진 양과 읽힌 양의 간극.
Rust에는 컴파일러의 안전 검사를 개발자가 직접 책임지는 unsafe 영역이 있다. Bun의 후속 감사에서 이 표시가 약 1만 3천 개 넘게 발견됐다.

바로 균형을 잡아 준다. 1만 3천 개가 곧 버그 1만 3천 개라는 뜻은 아니다. C나 C++ 라이브러리와 연결할 때는 정상적인 코드에도 unsafe가 필요하다. 다만 자동 테스트가 통과했다고 해서 안전성 검토까지 끝난 것은 아니라는 뜻이다. 실제 감사에서는 안전한 Rust 코드에서도 호출할 수 있었던 위험한 함수 5개가 별도로 발견됐다.
[04:39] 8. 자동 검사가 재는 것과, 재지 않아서 못 보는 것

핵심 장면이다. 슬라이드는 화면을 둘로 가른다. 잴 수 있는 것(자가 닿는 영역만) — 테스트 통과 여부, 빌드 성공, 응답 속도. 그리고 못 보는 것(눈금 없는 어둠) — NO SCALE · 0 TICKS 라벨 아래 가독성 / 우회 / 유지보수 비용 세 블록이 어둠 속에 잠겨 있다.
자동 검사는 측정하도록 설계된 것만 측정한다. 코드가 장기적으로 읽기 좋은지, 위험한 우회가 너무 많이 들어갔는지, 유지보수 비용이 얼마나 커졌는지는 저절로 감시되지 않는다. 영상이 이 대목에서 못 박는다 — “검사하지 않은 항목은 통과한 것이 아닙니다. 아무도 보지 않은 겁니다.”

Anthropic도 장기 실행 에이전트 연구에서 비슷한 문제를 밝혔다. 화면의 실험 노트가 요약한 그대로다 — verification skipped / marked as complete / same pattern, again. Claude가 기능을 충분히 테스트하지 않은 채 작업을 완료했다고 표시하는 경향이 있었고, 단위 테스트는 통과했지만 실제 사용자가 쓰는 전체 흐름은 작동하지 않은 경우도 있었다.
내레이션의 비유가 통렬하다: AI는 가끔 시험지를 제대로 풀지 않고 이름만 써 놓은 뒤 제출 버튼부터 누른다. 더 황당한 건 제출하고 나서 스스로 대견해한다는 것.
[05:32] 9. 비용 — 무료로 생긴 초능력이 아니다

Bun 작업에 사용된 토큰을 당시 API 정가로 환산하면 약 $165,000, 우리 돈으로 약 2억 3천만 원이다. 실제 계약 조건과 내부 비용은 달랐겠지만, 대규모 에이전트 작업이 무료로 생긴 초능력은 아니라는 사실은 분명하다.
Anthropic의 멀티에이전트 리서치 시스템에서는 일반 채팅보다 약 15배 많은 토큰이 사용됐다. 모든 그래프가 정확히 15배를 쓴다는 뜻은 아니지만, 에이전트를 늘리고 서로 검토하고 다시 고치게 할수록 비용이 빠르게 커진다는 방향은 분명하다.
[06:09] 10. 그래프는 마법이 아니다 — 그리고 모든 일에 맞지도 않는다

무대 뒤를 보여 주는 슬라이드다. GENIUS에 취소선이 그어지고, 그 자리에 RETRY 01 ✗ / 02 ✗ / 03 ✗ / 04 ✗ / 05 ✗ → PASS ✓가 쌓인다. AI가 갑자기 천재가 된 게 아니라, 천재처럼 보일 때까지 여러 번 작업을 시킨 것이다. 그래프는 지능을 마법처럼 높이는 장치가 아니라, 작업을 나누고 병렬로 실행하고 결과를 검증해서 성공 확률을 높이는 구조에 가깝다.

문제는 비대칭이다. AI의 숫자는 병렬로 늘어나지만 사람의 눈은 병렬로 늘어나지 않는다. 에이전트는 16대가 됐는데 내 눈은 여전히 두 개다. (내레이터의 자조 — “그나마 이제 노안까지 찾아왔습니다.”)

그래프가 모든 일에 맞는 것도 아니다. 필터 그래픽이 기준을 보여 준다 — 낱개 작업·리서치 과제는 통과, 얽힌(COUPLED) 작업은 탈락.
시장 조사처럼 서로 독립된 작업은 나누기가 쉽다. 한 에이전트는 경쟁사를 조사하고, 다른 에이전트는 논문을 읽고, 마지막에 결과를 합치면 된다. 하지만 코드는 서로 얽혀 있다. 로그인 화면을 고치면 데이터베이스에 영향을 줄 수 있고, 데이터베이스를 바꾸면 결제 기능이 박살날 수도 있다. 코드는 각자 방에서 쓴 보고서를 마지막에 스테이플러로 찍는 작업이 아니다.
[07:07] 11. 루프·그래프를 쓸 때 기억할 세 가지

카드 세 장이 순서대로 넘어간다.
- RULE 01 — 기계가 판정하는 일. 완료 여부를 기계가 분명하게 판단할 수 있는 일에만 사용한다. 테스트 통과, 빌드 성공, 파일 형식처럼 판정 기준이 명확해야 한다.
- RULE 02 — 실행 전에 목록을 둘로 나눈다. 자동 검사가 보는 것과 보지 않는 것을 미리 갈라 둔다. 앞 목록은 AI에게 맡겨도 되지만, 뒤 목록은 결국 사람이 읽어야 한다.
- RULE 03 — “쪼갤 수 있는가”보다 “쪼개도 되는 일인가”를 먼저 묻는다. 카드 부제가
가능이 아니라 적합을 먼저. 같은 맥락과 감각을 공유해야 하는 일은 한 에이전트가 끝까지 맡는 편이 나을 때도 많다.
[07:42] 12. 천장은 사라진 게 아니라 자리를 옮겼다

AI가 발전하면서 “천장이 사라졌다”는 말이 나온다. 하지만 천장은 사라지지 않았다. 자리를 옮겼을 뿐이다.
예전에는 한 번에 얼마나 큰 일을 시킬 수 있느냐가 한계였다. 이제는 얼마나 많은 토큰과 비용을 태울 것인가, 그리고 그렇게 만들어진 결과를 누가 읽고 책임질 것인가가 새로운 한계가 됐다.
화면이 그 경계를 그대로 보여 준다 — build(), ship()은 건너간다. 하지만 그것을 들여다보는 사람은 아직 화면 이쪽에 서 있다. “만드는 일은 AI에게 넘길 수 있습니다. 하지만 읽는 일은 아직 아무에게도 넘어가지 않았습니다.”
마지막 문장은 농담이지만 뼈가 있다: “AI가 코드를 만드는 속도는 엄청나게 빨라졌습니다. 그리고 사람이 검토를 끝낼 때까지 기다리는 능력은 그보다 더 뛰어납니다.”
부록 — 실전 체크리스트
- 완료 조건을 기계가 판정할 수 있는가? 테스트 통과 / 빌드 성공 / 스키마 검증처럼 이진 판정이 되는 작업에만 루프·그래프를 건다. “코드를 예쁘게 정리해줘”는 루프 대상이 아니다.
- 실행 전에 “자동 검사가 보는 것 / 보지 않는 것” 목록을 두 칸으로 적어 둔다. 오른쪽 칸(가독성·아키텍처 부채·위험한 우회·유지보수 비용)이 사람 리뷰의 범위다.
- 작업이 얽혀 있는지 먼저 판단한다. 독립된 조사·수집은 병렬화, 상태를 공유하는 코드 변경은 한 에이전트 직렬 처리를 우선 검토.
- “통과”와 “검토됨”을 구분해 기록한다. CI 그린은 검토 완료가 아니다 — Bun 사례의
unsafe1만 3천 건이 정확히 이 간극이다. - 에이전트 수를 늘리기 전에 토큰 예산을 먼저 정한다. 멀티에이전트는 일반 대화 대비 10배 이상 토큰을 쓰는 것이 정상 범위다.
- 에이전트를 늘렸다면 리뷰 처리량도 함께 설계한다. 리뷰 병목을 방치하면 병렬화 이득이 검토 대기 큐로 이동할 뿐이다.
원문 인용 모음
- [00:29] “이건 개발 공부가 아니라 거의 현대 무용을 배우는 기분이 듭니다.”
- [00:45] “하네스는 AI가 실제로 일할 수 있도록 만든 작업장입니다. 모델이 머리라면 파일을 읽고 수정하는 도구, 터미널, 메모리, 권한과 안전 규칙이 손발입니다.”
- [01:13] “사람이 매번 판단하는 대신 완료 조건을 미리 기계에게 넘기는 구조입니다.”
- [01:33] “그러니까 하네스라는 작업장 안에서 루프도 돌고 그래프도 돕니다. 그래프 안에도 루프가 들어갈 수 있습니다.”
- [02:21] “앤트로픽이 새로 만든 실제 기능의 이름은 그래프 엔지니어링이 아니라 클로드 코드의 동적 워크플로우입니다.”
- [03:17] “워크플로마다 16개 에이전트가 움직였으니 약 64개의 클로드가 동시에 작업한 셈이죠.”
- [03:44] “바이너리 크기도 약 20% 줄었지만 이것을 Rust 재작성만의 결과라고 말하면 안 됩니다.”
- [04:01] “그렇게 쏟아져 나온 코드를 사람은 얼마나 읽었을까요?”
- [04:26] “자동 테스트가 통과했다고 해서 안전성 검토까지 끝난 것은 아니라는 뜻입니다.”
- [04:58] “검사하지 않은 항목은 통과한 것이 아닙니다. 아무도 보지 않은 겁니다.”
- [05:21] “AI는 가끔 시험지를 제대로 풀지 않고 이름만 써 놓은 뒤 제출 버튼부터 누릅니다. 더 황당한 것은 제출하고 나서 스스로 대견해한다는 겁니다.”
- [06:09] “AI가 갑자기 천재가 된 게 아니라는 거죠. 천재처럼 보일 때까지 여러 번 작업을 시킨 겁니다.”
- [06:24] “AI의 숫자는 병렬로 늘어나지만 사람의 눈은 병렬로 늘어나지 않는다는 겁니다.”
- [07:01] “코드는 각자 방에서 쓴 보고서를 마지막에 스테이플러로 찍는 작업이 아니라는 거죠.”
- [07:31] “쪼갤 수 있는가보다 쪼개도 되는 일인가를 먼저 물어보세요.”
- [07:45] “천장은 사라지지 않았습니다. 자리를 옮겼을 뿐입니다.”
- [08:03] “만드는 일은 AI에게 넘길 수 있습니다. 하지만 읽는 일은 아직 아무에게도 넘어가지 않았습니다.”