오케스트레이션
워크트리 격리로 에이전트 충돌 없이 병렬 작업하기
여러 에이전트가 같은 저장소를 동시에 만지면 서로의 변경을 밟습니다. git worktree 격리로 병렬 작업을 안전하게 만드는 법.
문제부터
여러 에이전트를 병렬로 굴릴 때 가장 흔한 사고는 같은 작업 트리를 공유해서 생기는 충돌입니다. 한 에이전트가 파일을 고치는 사이 다른 에이전트가 브랜치를 바꾸거나 같은 파일을 덮으면, 커밋 안 된 작업이 조용히 사라집니다.
해법: git worktree
git worktree는 하나의 저장소에서 여러 작업 디렉터리를 만들어 각기 다른 브랜치를 체크아웃하게 합니다. 에이전트마다 독립된 워크트리를 주면, 서로의 파일을 밟지 않고 병렬로 일할 수 있습니다.
git worktree add ../agent-a feature/agent-a
git worktree add ../agent-b feature/agent-b
각 워크트리는 자기 브랜치·자기 파일 상태를 가지므로, A의 미완성 변경이 B에게 보이지 않습니다.
언제 격리하나
- 두 에이전트가 같은 파일·모듈을 만질 가능성이 있을 때.
- 위험한 리팩터링을 본체와 분리해 시험할 때.
- 실패해도 메인 작업 공간을 오염시키지 않아야 할 때.
반대로, 서로 다른 파일만 만지는 게 확실하면 격리는 과할 수 있습니다 — 격리에는 디스크·설정 비용이 따릅니다.
병합할 때
각 워크트리에서 자주 커밋하고, 작업이 끝나면 PR로 통합합니다. 변경 안 한 워크트리는 정리합니다.
마블로에서
마블로는 필요할 때 에이전트를 격리된 워크트리에서 스폰해, 병렬 작업이 서로 충돌하지 않도록 합니다. 통제 가능한 병렬성 — 격리는 그 토대입니다.
댓글
댓글 기능은 곧 제공됩니다.