Part III: GPT-5.5 시대의 Codex 실전 가이드

Chapter 9: Codex 고급 멀티에이전트 — 의존성 그래프와 메타하네스

집필일: 2026-04-28 최종수정일: 2026-04-28

9.1 자기 수정 하네스

6장에서 의존성 그래프를 선언하고, 에이전트들이 자율적으로 태스크를 실행하는 패턴을 배웠다. 이제 한 단계 더: 그 에이전트들이 자기가 따르는 하네스를 직접 개선하면 어떻게 되는가?

Meta-Harness 논문(arXiv 2603.28052) [Um, 2026]의 핵심 아이디어가 바로 이것이다. Proposer 에이전트가 이전 모든 후보 하네스의 소스코드, 실행 트레이스, 점수를 파일시스템에서 읽고 새 하네스를 제안한다. 이것이 outer-loop로 반복된다. 결과:

  • 텍스트 분류: SOTA 대비 +7.7점, 4배 적은 토큰
  • IMO 수학: 5개 모델 평균 +4.7점
  • TerminalBench-2: 수작업 baseline 상회

하네스가 스스로를 최적화하는 것이다.

9.2 의존성 그래프 — 실전

6장의 DAG 개념을 실제 코드로 구현해보자. Claude Code의 Agent Teams API [Anthropic, 2026]를 사용한다:


// 오케스트레이터 에이전트의 코드
const { TeamCreate, TaskCreate } = require('@anthropic/claude-code');

// 1. 팀 생성
const team = await TeamCreate({
  members: ['architect', 'implementer', 'tester', 'reviewer']
});

// 2. 태스크 의존성 그래프 선언
const tasks = [
  TaskCreate({ id: 't1', name: 'design-api', assignee: 'architect' }),
  TaskCreate({ id: 't2', name: 'implement-core', assignee: 'implementer',
    blockedBy: ['t1'] }),
  TaskCreate({ id: 't3', name: 'write-tests', assignee: 'tester',
    blockedBy: ['t2'] }),
  TaskCreate({ id: 't4', name: 'review-all', assignee: 'reviewer',
    blockedBy: ['t2', 't3'] }),
];

// 3. 에이전트들이 자율적으로 리프 태스크를 claim해서 실행
await team.execute(tasks);

리프 태스크(선행 의존성 없는 태스크)부터 에이전트들이 자율적으로 선택한다. t1이 완료되면 t2가 unlock된다. t2t3가 모두 완료되면 t4가 unlock된다.

observability: [IndyDevDan, 2026]의 접근처럼, hooks를 통해 태스크 시작/완료를 로깅하면 전체 그래프 실행을 추적할 수 있다 .

9.3 메타하네스 — 자기 최적화

Figure 9.1: 메타하네스 outer-loop — 에이전트가 자기 하네스를 개선한다. 이전 실행의 소스코드·트레이스·점수를 파일시스템에 보존하고 proposer가 전체를 읽는다. illustration by author Gemini assisted
Figure 9.1: 메타하네스 outer-loop — 에이전트가 자기 하네스를 개선한다. 이전 실행의 소스코드·트레이스·점수를 파일시스템에 보존하고 proposer가 전체를 읽는다. illustration by author Gemini assisted

메타하네스는 에이전트가 자기 하네스(AGENTS.md / SKILL.md / config.toml)를 개선하는 outer-loop다. 두 가지 접근:

접근 1: GEPA 스타일 피드백 루프

[Jagtap, 2026]의 GEPA(Generalized Evolutionary Prompt Automation) 접근:

  1. 에이전트 실행 → 결과 수집
  2. 실패 패턴 추출 (어떤 AGENTS.md 지시를 무시했는가?)
  3. AGENTS.md에 새 규칙 제안
  4. 다음 실행에 적용 → 다시 1단계

# 메타하네스 outer-loop (의사 코드)
while True:
    # 에이전트 실행
    results = run_agent(current_agents_md, tasks)
    
    # 실패 패턴 분석
    failures = extract_failures(results)
    
    # AGENTS.md 개선 제안
    new_agents_md = proposer_agent(
        current_agents_md=current_agents_md,
        prior_runs=filesystem.read_all_runs(),
        failures=failures
    )
    
    # 평가 후 반영
    if evaluate(new_agents_md) > evaluate(current_agents_md):
        current_agents_md = new_agents_md

접근 2: 파일시스템 기반 경험 축적

Meta-Harness 논문의 핵심 통찰 [Um, 2026]: 피드백을 압축하지 말고 원본 그대로 보존한다. 이전 실행의 소스코드 + 트레이스 + 점수를 파일시스템에 그대로 저장하고, proposer 에이전트가 전체를 읽는다. 피드백을 요약하면 "왜 이 전략이 실패했는지"를 잃는다.

이것이 하네스 설계에 주는 교훈: CLAUDE.md / AGENTS.md는 "현재 버전의 정적 파일"이 아니라 "실행 이력과 함께 진화하는 살아있는 문서"로 관리할 때 더 효과적이다.

9.4 git worktrees — Agent Teams 이전의 병렬화

Figure 9.2: git worktrees로 병렬 에이전트 — 각 feature 브랜치가 독립 디렉토리에서 동시에 실행. Agent Teams 이전의 브릿지 패턴, Codex의 branch-per-task와도 호환. illustration by author Gemini assisted
Figure 9.2: git worktrees로 병렬 에이전트 — 각 feature 브랜치가 독립 디렉토리에서 동시에 실행. Agent Teams 이전의 브릿지 패턴, Codex의 branch-per-task와도 호환. illustration by author Gemini assisted

[IndyDevDan, 2026]가 기록한 방법 — Agent Teams API 이전에 git worktrees로 병렬화를 달성하던 방식:


# 여러 브랜치에서 동시에 작업
git worktree add ../feature-auth feature/auth
git worktree add ../feature-payments feature/payments
git worktree add ../feature-notifications feature/notifications

# 각 디렉토리에서 독립적으로 claude 실행
cd ../feature-auth && claude "implement auth module"
cd ../feature-payments && claude "implement payment module"  
cd ../feature-notifications && claude "implement notifications"

이 패턴은 Agent Teams의 공식 병렬화가 나오기 전의 중요한 브릿지였다. 지금도 Codex의 branch-per-task와 함께 쓸 수 있다.

Figure 9.3: 3-tier 로컬+frontier 아키텍처 — 로컬 LLM이 계획·분석을 담당하고 frontier API가 핵심 구현, 전용 리뷰 에이전트가 보안·품질 검증. illustration by author Gemini assisted
Figure 9.3: 3-tier 로컬+frontier 아키텍처 — 로컬 LLM이 계획·분석을 담당하고 frontier API가 핵심 구현, 전용 리뷰 에이전트가 보안·품질 검증. illustration by author Gemini assisted

9.5 3-tier 로컬 모델 아키텍처

[NGUYEN, 2026]의 프로덕션 아키텍처:


[Tier 1: Local LLM (llama/deepseek-coder)]
    ↓ planning, code analysis, AGENTS.md 초안
[Tier 2: Frontier API (GPT-5.5 / Opus 4.7)]
    ↓ 핵심 구현, 복잡한 추론
[Tier 3: Dedicated Review Agent]
    ↓ 보안 체크, 코드 품질 검증

비용: Tier 1은 로컬 실행으로 API 비용 없음. Frontier API는 Tier 2에만 사용. 전체 비용 70-80% 절감 가능.

메타하네스 맥락에서: Tier 1 로컬 모델이 AGENTS.md 개선 제안을 빠르게 실험하고, Tier 2 frontier가 최종 평가를 한다. 실험 비용이 극적으로 낮아진다.

9.6 ch 12를 향한 브릿지 — 자율 연구로

Karpathy의 autoresearch 실험 [Karpathy, 2026] — GPT-2 학습 최적화에 700회 실험 / 2일 — 은 이 챕터의 메타하네스를 연구 도메인에 적용한 것이다. 에이전트가 실험을 설계하고, 실행하고, 결과를 분석하고, 다음 실험을 제안한다. 하네스가 연구 루프 자체가 된다.

이 방향이 12장에서 다루는 AI Scientist의 출발점이다.


참고문헌

  1. Anthropic, "Agent Teams," 2026. [Anthropic, 2026]
  2. Lee, Yoonho et al., "Meta-Harness: End-to-End Optimization of Model Harnesses," arXiv 2603.28052, 2026. [Um, 2026]
  3. B327Roy, "Multi-agent retrospective," 2026. [brunch), 2026]
  4. Jagtap, "Codex AGENTS.md auto-optimization (GEPA)," 2026. [Jagtap, 2026]
  5. Fulton, Alex, "Inside the agent harness," 2026. [Fulton, 2026]
  6. Luong, "Local LLMs with frontier — 3-tier," 2026. [NGUYEN, 2026]
  7. IndyDevDan, "Claude Code hooks for multi-agent observability," 2026. [IndyDevDan, 2026]
  8. IndyDevDan, "Pre-Agent-Teams parallelization with git worktrees," 2026. [IndyDevDan, 2026]
  9. Karpathy, Andrej, "Autoresearch," 2026. [Karpathy, 2026]
  10. Intuition, "Codex as superapp — multi-agent," 2026. [IntuitionLabs, 2026]