LLM 에이전트를 병렬로 실행하는 방법은 여러 가지가 있으며, 각 방법은 장단점을 가집니다. 작성자는 네 가지 방법을 시도했으며, 그중 맞춤형 스크립트나 수동 관리를 선호하는 이유를 설명합니다.
1. git worktree를 활용한 수동 병렬 실행
git worktree 명령어를 사용하면 동일한 저장소의 여러 브랜치를 동시에 체크아웃할 수 있어, 각 작업 트리에서 독립적으로 LLM 에이전트를 실행할 수 있습니다. 예를 들어, git worktree add ../project-parallel-1 명령으로 새로운 작업 공간을 생성하고, 여기서 에이전트에게 작업을 할당합니다.
-
장점: 메인 브랜치와 충돌 없이 독립적인 장기 작업 수행 가능.
-
단점:
- 인지적 부담: 작업 트리 관리가 수동으로 이루어지므로 인지적 부담이 크고, 에이전트가 오랫동안 바쁠 것이라는 확신이 필요합니다.
- 환경 설정: 로컬 환경 설정의 복잡성(예: Docker/Kubernetes 혼합 환경)에 따라 모든 테스트(단위, 통합, 시스템)가 추가 명령어 없이 실행되지 않거나, 수동 테스트를 위한 앱 인스턴스 구동이 어려울 수 있습니다.
- 반복 개발의 어려움: 변경 사항을 테스트하기 위해 메인 브랜치에 병합될 때까지 기다려야 할 수 있어 빠른 반복 개발이 어렵습니다.
- 주로 새로운 인접 작업, 작은 버그 수정, 다음 작업의
PLAN.md생성 등에 활용됩니다.
2. 기존 GUI/TUI 도구의 한계
git worktree 관리를 돕는 Conductor(GUI)와 Claude Squad(TUI) 같은 도구들이 존재하지만, 작성자의 요구 사항을 충족시키지 못했습니다.
- Conductor (GUI)
- 장점: 버튼 클릭으로 worktree 생성, worktree 생성 시
bundle실행 같은 설정 가능. - 단점:
--dangerously-skip-permissions옵션 사용 불가.- 항상
main/master브랜치에서 분기하며, 현재 브랜치에서 분기하는 설정 부재. - 동일 저장소 내에 worktree를 생성하여 파일 검색 시 중복 문제 발생 가능.
- 내장된 diff 뷰어와 Claude Code 래퍼가 제한적이며,
/mcp와 같은 전체 Claude Code 기능 사용 불가.
- 장점: 버튼 클릭으로 worktree 생성, worktree 생성 시
- Claude Squad (TUI)
- 장점: 현재 브랜치에서 분기, 저장소 외부 worktree 생성, 안정적인 브랜치 명명 규칙.
- 단점:
--dangerously-skip-permissions옵션 사용 불가.- 내부 설정 옵션이 부족하여 ‘새 worktree 생성 시 항상 xyz 수행’과 같은 자동화 불가.
- 일부 버그 존재.
3. 맞춤형 스크립트 (Ruby)의 활용
작성자는 기존 도구들의 한계를 극복하기 위해 Ruby 스크립트를 개발했습니다. 이 스크립트는 아직 정교하지 않지만, 여러 작업 트리를 관리하기 위한 좋은 시작점이며, 특히 --dangerously-skip-permissions와 같은 필수 기능을 직접 제어할 수 있다는 점에서 기존 도구보다 우월합니다. 이 스크립트는 가장 단순한 형태로, 여러 에이전트를 동시에 여러 트리에서 실행하는 수준까지는 아니지만, 필요한 제어력을 제공합니다.