AI를 병렬로 작동시키고 싶으신가요? 먼저 각 AI에게 개별 워크스페이스를 부여하세요

하나의 프로젝트에서 여러 AI 에이전트를 실행하는 것은 어렵습니다.

여러 에이전트에게 동일한 폴더에 대한 접근 권한을 주면, 파일이 덮어씌워질 수 있습니다. 프로젝트 상태가 엉망이 되고, 결국 망가진 결과물만 남게 됩니다.

격리가 필요합니다.

AI를 병렬로 사용하는 방법에는 두 가지가 있습니다:

  • 읽기 전용 작업: 한 에이전트가 로그를 읽는 동안 다른 에이전트가 문서를 읽습니다. 이들은 하나의 워크스페이스를 공유할 수 있습니다.
  • 쓰기 작업: 여러 에이전트가 코드를 수정합니다. 이들은 반드시 별도의 워크스페이스를 가져야 합니다.

이를 해결하기 위해 별도의 폴더를 클론(clone)하는 방식을 시도해 보았습니다. 하지만 디스크 공간 문제로 실패했습니다. 의존성이 많은 대규모 프로젝트는 수 기가바이트를 차지합니다. 이를 여러 번 클론하면 저장 공간이 낭비됩니다.

저는 git worktree로 전환했습니다.

git worktree를 사용하면 하나의 저장소에 대해 여러 개의 작업 디렉토리를 가질 수 있습니다. 이들은 모두 동일한 .git 히스토리를 공유합니다. 덕분에 디스크 공간을 절약하면서도 체계적으로 관리할 수 있습니다.

AI와 함께 사용하는 방법은 다음과 같습니다:

  1. 서브 에이전트 병렬화: AI에게 작업을 병렬로 실행하도록 지시합니다. AI가 자동으로 자체 워크트리를 생성할 수 있습니다.

  2. 수동 병렬화: 사용자가 직접 여러 개의 AI 터미널을 여는 경우, AI는 다른 터미널의 존재를 알지 못합니다. 이때는 "다른 AI가 이 디렉토리를 수정하고 있습니다. 워크트리 모드로 작업하세요"라고 알려주어야 합니다.

워크플로우는 다음 단계를 따릅니다:

  • 작업을 독립적인 부분으로 나눕니다.
  • 각 부분을 고유한 워크트리에 할당합니다.
  • 리드 에이전트를 사용하여 변경 사항을 메인 브랜치에 하나씩 병합합니다.
  • 매 병합 후 코드를 검증합니다.
  • 작업이 완료되면 워크트리를 삭제합니다.

정리는 필수입니다. 잊혀진 워크트리는 디스크 공간을 잡아먹습니다. 저는 AI 지침에 다음과 같은 규칙을 추가했습니다: "워크트리를 삭제하기 전에 모든 커밋이 메인 브랜치에 반영되었는지 확인하라." 이는 작업 손실을 방지합니다.

아주 사소한 작업에는 워크트리를 사용하지 마세요. 파일 하나만 수정한다면 하나의 워크스페이스에서 그대로 진행하세요. 워크트리는 복잡한 기능을 구현할 때 사용하십시오.

한 가지 규칙은 변하지 않습니다: 절대 트렁크(trunk)에서 직접 작업하지 마세요. 항상 새로운 브랜치에서 시작하세요. 그래야 메인 코드를 깨끗하고 안전하게 유지할 수 있습니다.

git worktree는 오래된 도구입니다. 하지만 병렬 AI 워크플로우를 위해서는 완벽한 솔루션입니다.

AI가 왜 하루 끝에 우리가 느끼는 피로감을 멈춰주지 못하는지 궁금하신가요? 댓글로 알려주세요.

출처: https://dev.to/kanfu-panda/want-ai-to-work-in-parallel-first-give-each-one-its-own-workspace-40ch

선택 사항 학습 커뮤니티: https://t.me/GyaanSetuAi