백그라운드 및 병렬 에이전트
범위가 정해진 과업에서 에이전트를 신뢰하게 되면, 다음 수는 뻔하다: 여러 개를 한 번에 돌리는 것. 현대의 도구들은 백그라운드 에이전트를 — 각각 자기 브랜치나 워크트리에서 — 띄울 수 있게 해주어, 당신이 다른 일을 하는 동안 서너 개의 범위 정해진 과업이 진척된다.
이것은 진짜 속도 향상이지만, 오직 독립적인 일에 한해서다. 당신이 맞바꾸는 비용은 조율이다. 같은 파일을 편집하는 두 에이전트는 충돌하는 디프를 만들어내고, 그것을 손으로 병합하는 데 절약한 것보다 더 많은 비용이 들 수 있다.
- 줄 수가 아니라 경계로 나눠라. 각 에이전트에게 다른 것들과 겹치지 않는 덩어리를 줘라 — 별개의 모듈, 별개의 기능, 별개의 파일. "에이전트 A는 내보내기 기능, 에이전트 B는 문서 작성"은 깔끔하다. "두 에이전트가 모두
app.js를 편집"은 병합 골칫거리를 예약하는 셈이다. - 작업 공간을 격리하라. 각 에이전트를 자기 git 브랜치나 워크트리에서 돌려 서로의 커밋되지 않은 변경을 밟지 못하게 하라. 한 번에 하나씩 다시 병합하고, 병합할 때마다 검사를 돌려라.
- 개수를 정직하게 유지하라. 여전히 모든 결과를 검토해야 한다. 네 개의 에이전트가 돌고 있다는 건 읽어야 할 네 개의 디프와 신뢰해야 할 네 세트의 테스트다. 한 줌을 넘어가면, 에이전트가 아니라 검토 대기열이 당신의 병목이 된다.
실수는 병렬성을 공짜로 여기는 것이다. 그렇지 않다 — 당신은 일을 작성에서 검토와 통합으로 옮긴 것이다. 종종 훌륭한 거래지만, 오직 당신이 실제로 검토를 할 때에만 그렇다.