Agent-to-Agent Pair Programming: Claude와 Codex를 짝 프로그래머로 함께 돌리기
Agent-to-agent pair programming
TL;DR Highlight
CLI 툴 loop는 Claude와 Codex를 tmux에서 동시 실행하여 개발자와 리뷰어 역할로 상호 대화하는 페어 프로그래밍을 구현한다.
Who Should Read
Claude Code나 Codex 같은 AI 코딩 에이전트를 실무에 도입해서 쓰고 있는 개발자 중, 단일 에이전트의 한계를 느끼고 멀티 에이전트 워크플로우를 실험해보고 싶은 사람.
Core Mechanics
- 저자는 Claude와 Codex를 코드 리뷰에 나란히 써보다가 흥미로운 패턴을 발견했다. 두 에이전트가 같은 피드백을 줄 때 그건 노이즈가 아니라 오히려 강한 신호였고, 팀 내에서 두 리뷰어가 동의하는 피드백은 100% 반영하는 규칙을 자연스럽게 만들게 됐다.
- 이를 바탕으로 'loop'라는 CLI 툴을 만들었다. tmux 위에서 claude와 codex를 나란히 띄우고, 두 에이전트 사이에 직접 메시지를 주고받을 수 있는 브릿지를 연결해주는 단순한 도구다. GitHub에 오픈소스로 공개되어 있다(https://github.com/axeldelafosse/loop).
- loop는 interactive TUI(터미널 UI)를 그대로 사용하기 때문에 사람이 중간에 개입할 수 있다. 질문에 답하거나, 방향을 수정하거나, 후속 지시를 내릴 수 있어서 완전 자동화가 아니라 '루프 안에 머무는' 방식으로 설계됐다.
- Cursor 연구팀이 장기 실행 코딩 에이전트 연구에서 발견한 것처럼, 잘 작동하는 에이전트 워크플로우는 인간 팀 협업 구조와 닮아 있다. Claude Code의 'Agent teams'나 Codex의 'Multi-agent' 기능도 메인 에이전트가 서브에이전트에게 작업을 배분하는 구조인데, 저자는 여기서 한 발 더 나아가 서브에이전트끼리 직접 소통하게 만들었다.
- 에이전트를 계속 루프로 돌리면 예상보다 더 많은 코드 변경이 일어날 수 있다. 저자는 이를 대체로 긍정적으로 보지만, 인간이 나중에 리뷰할 때 변경량이 너무 많아져서 어려워지는 문제가 생긴다. 이를 해결하기 위한 open question으로 PR을 여러 개로 분리할지, PLAN.md를 git이나 PR 설명에 공유할지 등을 언급하고 있다.
- 여러 에이전트 툴을 동시에 쓰는 이유는 다양하다. 벤더 락인(vendor lock-in) 회피, 오픈소스 기여, 구독 한도 최대 활용, 또는 각 모델의 강점과 관점 차이를 활용하기 위해서다. 저자는 멀티 에이전트 앱들이 에이전트 간 통신을 일급 기능(first-class feature)으로 지원해야 한다고 주장한다.
- 저자의 경험에 따르면 Claude는 생성과 창의적 작업에 강하고, Codex는 꼼꼼하고 정확한 감사(audit)와 비판적 리뷰에 강하다. 두 모델의 성격 차이가 페어 프로그래밍 역할 분담에 자연스럽게 맞아떨어진다는 관찰이다.
Evidence
- 실제로 비슷한 방식을 쓰고 있다는 경험담이 있었다. Claude가 작업을 완료했다고 표시한 결과물을 Codex에게 리뷰시켰더니, Claude가 작업을 완전히 성공적으로 마친 경우는 매우 드물었고 Codex가 거의 항상 문제를 찾아냈다는 것이다. 특히 Claude에게 작업 결과를 'why/where/how' 문서로 정리하게 한 뒤 Codex에게 넘기면 리뷰 품질이 좋아진다는 팁도 공유됐다.
- 멀티 에이전트 설정의 효과가 실제로 '여러 에이전트'여서인지 아니면 '두 가지 설정(system prompt, model, temperature, context pruning, toolset 등)을 교대로 적용'하는 것 자체의 효과인지 구분하기 어렵다는 회의적인 의견도 있었다. 즉, 핵심은 에이전트 수가 아니라 다른 관점과 설정을 도입하는 것일 수 있다는 지적이다.
- PLAN.md를 git이나 PR에 넣는 아이디어에 대해 날카로운 반론이 나왔다. PLAN.md가 git에 들어가는 순간 그건 이미 '구현 계획의 다운스트림'이 되어버린다. 실제로 중요한 것은 원래 의도(intent)인데, 계획에서 구현이 어긋났을 때 왜 그 결정이 내려졌는지 추적하기가 더 어려워진다는 주장이다.
- 페어 프로그래밍 자체가 사람한테도 잘 안 맞는다는 의견이 있었다. 머릿속의 복잡한 사고 과정을 실시간으로 말로 설명하기가 어렵고, 옆에서 보면 코드를 무작위로 바꾸는 것처럼 보인다는 것이다. 이 댓글은 AI 에이전트에 인간 협업 패턴을 적용하는 것 자체에 회의적인 시각을 담고 있다.
- 멀티 에이전트에 대한 체계적인 측정이 부족하다는 지적이 반복됐다. 대부분의 증거가 아직 일화적(anecdotal)이고, '바이브는 좋지만 과학이 필요하다'는 표현이 여러 댓글에 나왔다. 유사한 툴로 claude-review-loop(https://github.com/hamelsmu/claude-review-loop)가 언급되기도 했다.
How to Apply
- Claude Code와 Codex 구독을 둘 다 쓰고 있다면, `loop` CLI를 설치해서 Claude가 코드를 작성하고 Codex가 리뷰하는 페어 프로그래밍 워크플로우를 실험해볼 수 있다. 두 에이전트가 동의하는 피드백을 '반드시 반영' 규칙으로 삼으면 리뷰 노이즈를 줄이면서 중요한 이슈를 놓치지 않을 수 있다.
- Claude에게 작업을 완료한 후 why/where/how 형태의 작업 요약 문서를 작성하게 하고, 이를 Codex에게 리뷰 컨텍스트로 넘기면 리뷰 품질이 향상된다. 이 패턴은 loop 없이도 수동으로 즉시 적용 가능하다.
- 에이전트 루프가 예상보다 많은 변경을 만들어내는 문제가 있다면, PR을 기능 단위로 작게 쪼개거나 에이전트에게 변경 범위를 명시적으로 제한하는 시스템 프롬프트를 추가하는 것이 좋다. '스코프를 벗어난 변경은 별도 이슈로 기록만 하고 수정하지 말 것'처럼 명시하면 인간 리뷰 부담을 줄일 수 있다.
Terminology
관련 논문
OpenKnowledge – Obsidian/Notion의 오픈소스 AI-first 대안
Git 기반 동기화와 Claude/Codex/Cursor 연동을 내장한 로컬 우선 마크다운 에디터로, AI 에이전트의 두 번째 뇌(LLM Wiki)로 활용할 수 있는 오픈소스 도구다.
Unfireable Safety Kernel: AI 에이전트를 위한 Execution-Time AI Alignment
AI 에이전트가 자신의 안전장치를 우회할 수 없도록, 에이전트 프로세스 바깥에 수학적으로 증명된 강제 통제 게이트를 배치하는 아키텍처
RubyLLM: 주요 AI 프로바이더를 모두 지원하는 Ruby 프레임워크
OpenAI, Claude, Gemini 등 주요 AI 프로바이더를 단일 인터페이스로 통합한 Ruby 프레임워크로, Rails 통합과 에이전트 기능까지 지원해 Ruby 개발자가 AI 기능을 빠르게 붙일 수 있다.
Qwen-AgentWorld: 범용 에이전트를 위한 Language World Model
Alibaba Qwen 팀이 AI 에이전트가 행동 결과를 미리 시뮬레이션할 수 있는 'Language World Model'을 공개했다. 에이전트 훈련과 실행 경로 검증에 새로운 패러다임을 제시하는 연구다.
SHERLOC: Code Repair Agent를 위한 구조화된 Diagnostic Localization 프레임워크
버그 위치만 알려주는 게 아니라 '왜, 어떻게 고쳐야 하는지'까지 진단 리포트를 생성해서 코드 수정 에이전트의 성능을 높이는 training-free 프레임워크
peerd – 브라우저에서 완전히 실행되는 AI Agent Harness
백엔드 서버 없이 Chrome/Firefox 확장 프로그램으로만 동작하는 AI 에이전트 실행 환경으로, 브라우저 탭을 직접 조작하고 WASM Linux VM까지 구동할 수 있어 프라이버시와 보안을 동시에 챙길 수 있다.