용어 사전

워크트리 격리란?

TL;DR

워크트리 격리란 각 AI 에이전트가 자체 코드 사본을, 자체 브랜치에서, 자체 폴더로 받는 방식입니다. 그러면 에이전트들이 같은 파일을 동시에 고쳐도 서로 덮어쓰지 않습니다. 병합할 때까지 메인 체크아웃은 그대로입니다. Pane은 모든 pane에 이 구성을 자동으로 해 줍니다.

워크트리 격리란 모든 AI 에이전트가 각자 코드 사본에서, 각자 브랜치로, 각자 폴더에서 작업하는 방식입니다. 그러면 여러 에이전트가 같은 파일을 동시에 고쳐도 서로 덮어쓰지 않고, 병합할 때까지 메인 체크아웃은 그대로 유지됩니다.

문제

폴더 하나를 함께 쓰는 에이전트들은 결국 서로의 작업을 덮어씁니다.

에이전트 A에게 로그인 페이지를 다시 작성하게 하고, 에이전트 B에게 회원가입 흐름을 추가하게 했다고 해 봅시다. 둘 다 auth.ts을 바꿔야 합니다. 폴더 하나를 같이 쓰면 에이전트 B가 자기 버전을 저장하면서 에이전트 A의 수정을 조용히 덮어씁니다. 두 에이전트 모두 알아채지 못하고, 당신은 나중에야 알게 됩니다.

그래서 한 디렉터리에서 여러 에이전트를 돌리는 건 도박입니다. 두 에이전트가 같은 파일을 건드리기 전까지는 잘 돌아가다가, 그 순간 누군가의 작업이 사라집니다.

해결 방법

에이전트마다 워크트리 하나. 파일과 브랜치는 따로, 기록은 공유합니다.

에이전트마다 자체 git 워크트리를 주세요. 같은 기록을 공유하면서 브랜치와 폴더는 따로 쓰는 방식입니다. 에이전트 A는 한쪽에서, 에이전트 B는 다른 쪽에서 작업합니다. 서로 다른 사본을 고치므로 둘 다 auth.ts을 수정할 수 있습니다.

my-project/                 ← main branch, untouched
my-project/worktrees/
  ├─ login-rewrite/         ← agent A, branch login-rewrite
  └─ signup-flow/           ← agent B, branch signup-flow

격리되는 것

파일, 브랜치, 셸은 분리됩니다. 기록, 원격 저장소, git 객체는 공유됩니다.

격리됨공유됨
파일과 커밋하지 않은 변경 사항git 기록과 커밋
브랜치원격 저장소(origin)
셸 상태와 환경 변수git 설정
작업 디렉터리객체 저장소(디스크 공간 절약)

Pane의 처리 방식

Pane이 모든 pane의 워크트리를 자동으로 만들고 정리합니다.

pane을 만들면 Pane이 미리 준비해 둔 워크트리를 넘겨주고, 새 브랜치를 만들고, .env 파일과 에이전트 설정, node_modules를 복사한 뒤 그곳에서 에이전트를 시작합니다. pane을 보관하면 Pane이 저장되지 않은 작업이 있는지 확인하고 워크트리를 제거합니다. git worktree add를 직접 입력할 일이 없습니다.

격리가 다루지 않는 것

워크트리는 에이전트의 파일을 분리할 뿐, 에이전트가 할 수 있는 일을 샌드박스로 막지는 않습니다.

워크트리는 폴더일 뿐 샌드박스가 아닙니다. 에이전트는 여전히 사용자 권한으로 실행되므로, 경로로 다른 워크트리의 파일을 읽거나, 네트워크에 접근하거나, 저장소 밖의 것을 바꿀 수 있습니다. 실제로는 에이전트가 작업 폴더 안에 머물지만, 확실한 제한이 필요하다면 컨테이너나 VM에서 실행하세요.

git 밖에서 공유되는 것도 있습니다. 앱이 쓰는 데이터베이스, 개발 서버 포트, 전역 패키지 캐시 같은 것들입니다. Pane은 각 pane에 PANE_PORT로 별도 포트 블록을 줍니다. 데이터베이스는 setup 스크립트나 워크트리마다 하나씩 만들어 주는 도구를 쓰세요.

출처

정정
틀렸거나 오래된 내용이 있으면 알려 주세요. 수정하고 맨 위의 날짜를 갱신하겠습니다. GitHub에 이슈 열기
출처

자주 묻는 질문

또는
다운로드*
Windows SmartScreen 경고Pane에 서명이 없는 동안 직접 다운로드하면 SmartScreen 경고가 표시될 수 있습니다. Pane은 완전한 오픈 소스입니다. 직접 코드를 확인하거나 소스에서 빌드할 수 있습니다.1. 추가 정보 클릭2. '그래도 실행' 클릭3. 설치 계속PowerShell 설치는 공식 릴리스를 바로 받습니다. 브라우저 다운로드에서 생기는 번거로움도 대부분 피할 수 있습니다.npm 전역 설치
PowerShell에 붙여넣으세요.Linux

작성자 Parsa Khazaeepoul, Pane 공동 창업자. .