Ejecuta dos agentes de IA a la vez con git worktrees
Apunta dos agentes de codificación con IA a la misma carpeta de proyecto y míralos destruir el trabajo del otro: el agente A edita un archivo, el agente B lo sobrescribe a mitad de tarea, uno de ellos cambia de rama y le quita el piso al otro. La solución no es un segundo clon — es una función de git que la mayoría de los desarrolladores nunca ha usado: los worktrees.
Qué es un worktree
Un worktree es un directorio de trabajo adicional asociado a un repositorio que ya tienes. Un repositorio, varios directorios, cada uno con su propia rama activa — y todos comparten por debajo el mismo almacén de objetos .git. Está integrado en git desde la versión 2.5, lanzada en 2015, así que ya lo tienes en tu máquina.
Compáralo con un segundo clon: un clon duplica todo el historial en disco, y las dos copias solo ven los commits de la otra después de un push y un fetch. Los worktrees comparten todo al instante porque solo hay un repositorio. Un commit hecho en cualquier worktree es visible de inmediato desde todos los demás. La única regla que git impone: dos worktrees no pueden tener la misma rama activa al mismo tiempo — que es exactamente el aislamiento que quieres.
La configuración de dos agentes
El patrón que rinde de inmediato: el agente 1 construye la funcionalidad en tu worktree principal, en la rama de la funcionalidad, en tu directorio de proyecto habitual. El agente 2 escribe las pruebas en un segundo worktree, en su propia rama, en un directorio hermano.
Cada agente tiene sus propios archivos, su propio checkout, su propia rama — no pueden sobrescribirse físicamente. Pero como ambos worktrees cuelgan del mismo repositorio, en el momento en que el agente 1 hace commit, el agente 2 puede ver ese commit y escribir pruebas contra la implementación real. Sin push, sin pull, sin viaje de ida y vuelta al remoto. Cuando ambos terminan, fusionas dos ramas como cualquier otro día.
Cómo ejecutarlo
# desde tu directorio de proyecto principal: crea un
# worktree hermano en una rama nueva llamada "tests"
git worktree add -b tests ../myapp-tests
# apunta el agente 2 a ../myapp-tests, el agente 1 se queda aquí
# cuando el trabajo esté fusionado, limpia
git worktree remove ../myapp-tests
Ese es todo el ciclo de vida. git worktree list muestra cada worktree activo si pierdes la cuenta, y eliminar un worktree nunca borra la rama ni sus commits — solo el directorio adicional.
Trucos avanzados
- Worktrees desechables para experimentar. ¿Quieres que un agente intente una refactorización arriesgada? Dale un worktree descartable en una rama de prueba. Si el experimento falla,
git worktree removey el desorden nunca tocó tu directorio de trabajo. - Emparejamiento adversarial. Haz que un agente escriba pruebas que fallan para un bug en un worktree, y que el otro agente las haga pasar en el worktree principal. Como los commits se comparten al instante, el ciclo de corregir y verificar es ajustado — y ningún agente puede "arreglar" la prueba para evitar arreglar el bug.
Recursos
¿Construyendo una funcionalidad con IA? Yeda AI diseña, audita y lleva a producción sistemas LLM.