작업별 맞춤 하네스: Claude Code의 동적 워크플로우
(claude.com)- 동적 워크플로우 는 Claude Code가 작업에 맞는 하네스(harness) 를 즉석에서 직접 작성하는 기능으로, 기존에 별도로 구축하던 맞춤 하네스를 코드 내부에서 네이티브로 처리
- JavaScript 파일을 실행해 서브에이전트(subagents) 를 생성·조율하며, 각 에이전트가 사용할 모델과 worktree 격리 여부까지 선택 가능
- 단일 컨텍스트 윈도우에서 발생하는 agentic laziness, self-preferential bias, goal drift 같은 실패 모드를 분리된 컨텍스트로 구조적으로 방지
- 마이그레이션, 딥 리서치, 정렬, 트리아지, 근본 원인 조사 등 코딩 외 비기술적 작업에서도 활용 가능
- 토큰 소비가 많아 모든 작업에 필요하진 않으며, 창의적 활용을 통해 Claude Code를 새로운 방식으로 확장하는 출발점
동적 워크플로우 개요
- 지난주 Claude Code에 동적 워크플로우 출시, Claude가 작업에 맞춰 하네스를 즉석 작성 가능
- 기본 Claude Code 하네스는 코딩용으로 제작되었으나, 많은 작업이 코딩 작업과 유사하기에 다른 유형 작업에도 유용
- Research, security analysis, agent teams, Code Review 등은 그간 Claude Code 위에 별도 맞춤 하네스를 구축해 최고 성능 확보
- 워크플로우는 이런 문제들을 Claude Code 내부에서 네이티브로 해결, 타인과 공유·재사용도 지원
- 모범 사례는 아직 발전 중이며, 토큰 소비가 많으므로 사용 시점과 방식을 신중히 고려해야 함
예시 프롬프트
- "이 테스트는 50번 실행 중 1번 정도 실패할 수 있습니다. 이를 재현할 수 있는 워크플로를 구축하세요. 경주에 대한 여러 가지 가설을 세우고, 증거를 통해 타당한 가설이 나올 때까지 계속 진행하세요."
- "워크플로우를 사용하여 최근 50개 세션을 살펴보고 반복적으로 수정하는 부분을 찾아, 그중 반복되는 부분을
CLAUDE.md규칙으로 변환하세요" - "워크플로를 사용하여 지난 6개월 동안 Slack의 #incidents를 분석하고 아무도 티켓을 제출하지 않은 반복적인 근본 원인을 찾아보세요."
- "제 사업 계획서를 가져다가 투자자, 고객, 경쟁업체의 관점에서 여러 담당자들이 꼼꼼하게 분석하는 워크플로우를 실행해 보세요."
- "여기 이력서 80개가 담긴 폴더가 있습니다. 워크플로우를 사용하여 백엔드 직무에 적합한 이력서 순위를 매기고, 상위 10개를 다시 한번 확인해 주세요. AskUserQuestion 도구를 사용하여 평가 기준표에 따라 저를 인터뷰해 주세요."
- "이 CLI 도구에 이름을 붙여야 합니다. 워크플로를 사용하여 여러 옵션을 브레인스토밍하고 토너먼트 방식으로 상위 3개를 선정하세요."
- "워크플로우를 사용하여 모든 곳에서 User 모델의 이름을 Account로 변경하세요."
- "제 블로그 게시글 초안을 꼼꼼히 검토하고 워크플로우를 사용하여 코드베이스와 모든 기술적 주장을 대조해 주세요. 잘못된 내용을 배포하고 싶지 않아요."
동적 워크플로우 작동 방식
- 서브에이전트 생성·조율을 돕는 몇 가지 특수 함수를 포함한 JavaScript 파일 실행
- JSON, Math, Array 등 표준 JavaScript 함수도 포함해 데이터 처리 지원
- 에이전트가 사용할 모델 선택 및 서브에이전트의 worktree 격리 여부 결정 가능, 필요한 지능 수준과 격리 수준을 Claude가 선택
- 사용자 조작이나 터미널 종료로 워크플로우가 중단되어도, 세션 재개 시 중단 지점부터 이어서 진행
동적 워크플로우가 필요한 이유
- 기본 하네스는 단일 컨텍스트 윈도우에서 계획과 실행을 동시에 수행, 다수 코딩 작업엔 효과적이나 장기·대규모 병렬·고도로 구조화된 적대적 작업에선 한계
- 복잡한 작업을 하나의 컨텍스트에서 오래 진행할수록 특정 실패 모드에 취약
- Agentic laziness: 복잡한 다단계 작업을 끝내기 전 중단하고 부분 완료 후 완료 선언 (예: 보안 검토 50개 항목 중 20개만 처리)
- Self-preferential bias: 루브릭 대비 검증·판단 시 자신의 결과를 선호하는 경향
- Goal drift: 여러 턴에 걸쳐 원래 목표에 대한 충실도가 점진적으로 상실, 특히 compaction 이후 발생하며 edge-case 요구사항이나 "X 하지 말 것" 제약이 손실
- 별도 컨텍스트 윈도우와 집중·격리된 목표를 가진 여러 Claude를 조율함으로써 이를 방지
동적 vs 정적 워크플로우
- 기존에는 Claude Agent SDK나
claude -p로 여러 Claude Code 인스턴스를 조율하는 정적 워크플로우 작성 가능 - 정적 워크플로우는 모든 edge case에 대응해야 하므로 대체로 더 일반적
- Claude Opus 4.8과 동적 워크플로우로, 이제 Claude가 사용 사례에 맞춘 맞춤 하네스를 직접 작성할 만큼 지능적
동적 워크플로우 활용 패턴
- Claude에게 워크플로우 생성을 요청하거나, 트리거 단어
ultracode사용으로 워크플로우 생성 보장 - Claude가 워크플로우 구축 시 조합해 사용하는 공통 패턴 존재
-
Classify-and-act
- 분류기 에이전트가 작업 유형을 판단한 뒤 작업별로 다른 에이전트·동작으로 라우팅, 혹은 마지막에 분류기로 출력 결정
-
Fan-out-and-synthesize
- 작업을 작은 단계로 나눠 각 단계에 에이전트를 실행 후 결과를 종합
- 작은 단계가 다수이거나 각 단계가 깨끗한 컨텍스트 윈도우의 이점을 볼 때 유용, 상호 간섭·교차 오염 방지
- synthesize 단계는 배리어로, 모든 fan-out 에이전트를 기다린 뒤 구조화된 출력을 하나로 병합
-
Adversarial verification
- 생성된 각 에이전트마다 별도 에이전트를 실행해 출력을 루브릭·기준 대비 적대적으로 검증
-
Generate-and-filter
- 주제에 대한 아이디어를 다수 생성 후 루브릭·검증으로 필터링, 중복 제거, 최고 품질의 검증된 아이디어만 반환
-
Tournament
- 작업을 나누는 대신 에이전트들이 경쟁, N개 에이전트가 서로 다른 접근으로 동일 작업 시도, 판정 에이전트가 pairwise 방식으로 우승자가 나올 때까지 판단
-
Loop until done
- 작업량이 불확실할 때 고정 횟수 대신 중단 조건(새 발견 없음, 로그 오류 없음) 충족 시까지 에이전트 반복 생성
활용 사례
- 워크플로우는 비기술적 작업에서 오히려 더 유용한 경우가 있음
-
마이그레이션과 리팩터
- Bun이 워크플로우로 Zig에서 Rust로 재작성됨, 자세한 내용은 Jarred의 X 스레드에서 확인 가능
- callsites, 실패 테스트, 모듈 등 작업 단계로 분해가 핵심
- 각 수정마다 worktree에서 서브에이전트 생성, 다른 에이전트가 적대적 검토 후 병합
- 자원 집약적 명령을 피하도록 지시해 머신 자원 고갈 없이 최대 병렬화
-
딥 리서치
- 동적 워크플로우를 사용하는 deep research skill (
/deep-research) 공개, 웹 검색을 fan-out, 소스 가져오기, 주장을 적대적 검증, 인용 포함 보고서 종합 - 웹 검색 외에도 Slack 컨텍스트로 상태 보고서 작성, 코드베이스 심층 탐색으로 기능 동작 조사 등에 활용
- 동적 워크플로우를 사용하는 deep research skill (
-
딥 검증
- 보고서의 모든 사실 주장을 확인·출처화하려면, 한 에이전트가 모든 사실 주장을 식별하고 서브에이전트가 각각을 상세 확인하는 워크플로우 생성
- 검증 에이전트가 소스 서브에이전트의 출처 품질도 점검 가능
-
정렬
- 정성적 측정 기준으로 항목 정렬 시 유용 (예: 버그 심각도순 지원 티켓)
- 1000행 이상을 한 프롬프트로 정렬하면 품질 저하·컨텍스트 초과, 대신 토너먼트·pairwise 비교 파이프라인·병렬 bucket-rank 후 병합 활용
- 비교 판단(comparative judgment) 이 절대 점수보다 신뢰성 높음, 각 비교가 별도 에이전트라 deterministic loop가 bracket을 유지하고 실행 순서만 컨텍스트에 남음
-
메모리와 규칙 준수
- CLAUDE.md에 넣어도 Claude가 놓치는 규칙은, 규칙 목록을 두고 규칙당 검증 에이전트 하나씩 점검하는 워크플로우 생성
- 거짓 양성을 줄이기 위해 규칙을 검토하는 skeptic 페르소나 서브에이전트 생성
- 역방향도 가능, 최근 세션·코드 리뷰 코멘트에서 반복 수정을 채굴, 병렬 에이전트로 클러스터링, 각 후보를 적대적 검증("이 규칙이 실제 실수를 막았을까?") 후 생존 규칙을 CLAUDE.md로 정제
-
근본 원인 조사
- 디버깅은 여러 독립 가설을 세워 검증할 때 효과적이나, 단일 컨텍스트 윈도우에선 self-preferential bias 발생 가능
- 워크플로우가 분리된 증거(로그, 파일, 데이터)별 에이전트로 가설을 생성해 구조적으로 방지, 각 가설은 검증자·반박자 패널 대면
- 코드 외 영업(3월 매출 하락 원인), 데이터 엔지니어링(파이프라인 실패 원인) 등 post-mortem에도 활용
-
대규모 트리아지
- 사람이 다 처리 못 하는 지원 큐·버그 리포트·백로그를 위한 트리아지 워크플로우가 각 항목을 분류, 기존 추적 항목과 중복 제거, 조치(수정 시도 또는 사람에게 에스컬레이션)
- 유용한 패턴은 quarantine, 신뢰할 수 없는 공개 콘텐츠를 읽는 에이전트의 고권한 행동을 차단하고 정보 처리 담당 에이전트가 수행
/loop와 결합해 지속적 실행 가능
-
탐색과 취향
- 디자인·네이밍처럼 취향 기반이며 루브릭의 이점을 보는 솔루션 탐색에 유용
- 여러 솔루션을 탐색하게 하고 리뷰 에이전트에 좋은 솔루션 기준 루브릭 제공, 리뷰 에이전트가 기준 충족 판단 시 완료, 토너먼트로 정렬·선택 가능
-
평가(Evals)
- worktree에서 별도 에이전트를 생성하고 비교 에이전트로 루브릭 대비 채점해 경량 평가 실행, 예: 생성한 skill을 특정 기준으로 평가·개선
-
모델·지능 라우팅
- 작업에 맞춰 모델을 결정하는 분류기 에이전트 생성, 많은 도구 호출을 수반하는 작업에서 사전 조사로 최적 모델 식별
- 예: "auth 모듈 동작 설명" 작업의 최적 모델은 auth 모듈 파일 수와 코드베이스 형태에 따라 다름, 분류기가 조사 후 복잡도에 따라 Sonnet·Opus로 라우팅
사용하지 말아야 할 때
- 워크플로우는 신규 기능으로, 큰 성과를 내는 사용 사례가 많으나 모든 작업에 필요하진 않으며 토큰을 크게 더 소비할 수 있음
- 이전에 시도하지 못한 방식으로 Claude Code를 밀어붙이는 창의적 활용이 적합
- 일반 코딩 작업은 "정말 더 많은 컴퓨팅이 필요한가?"를 자문, 대부분 전통적 코딩 작업엔 5명의 리뷰어 패널 불필요
동적 워크플로우 구축 팁
-
프롬프팅
- 앞서 설명한 기법을 사용한 상세 프롬프팅이 최상의 결과 도출
- 대규모 작업 전용이 아니며, "quick workflow"를 프롬프트해 가정에 대한 빠른 적대적 검토 등 수행 가능
-
/goal 및 /loop와 결합
- 트리아지·리서치·검증처럼 반복 가능한 워크플로우는
/loop와 결합해 정기 실행,/goal로 하드 완료 요구사항 설정
- 트리아지·리서치·검증처럼 반복 가능한 워크플로우는
-
토큰 사용 예산
- 명시적 토큰 사용 예산 설정으로 작업당 토큰 제한, "use 10k tokens" 같은 프롬프트로 상한 설정
-
저장과 공유
- 워크플로우 메뉴에서 "s"를 눌러 저장,
~/.claude/workflows에 체크인하거나 skill로 배포 가능 - skill로 공유 시 JavaScript 워크플로우 파일을 skill 폴더에 넣고 SKILL.md에서 참조, 유연성을 위해 skill 내 워크플로우를 그대로 실행할 스크립트가 아닌 템플릿으로 간주하도록 프롬프트
- 워크플로우 메뉴에서 "s"를 눌러 저장,
-
확장의 출발점
- 워크플로우는 Claude Code를 확장하는 새로운 방법이며, 최적 활용법은 아직 발견할 것이 많은 출발점