Jak Uncle Bob organizuje sieci neuronowe za pomocą tmux i git worktrees
Uncle Bob (Robert Martin), twórca Manifestu Agile i autor książek z serii Czysty Kod, opublikował nowy projekt o nazwie SwarmForge na GitHubie. Na samym szczycie pliku README czerwonym, wielkimi literami widnieje ostrzeżenie, aby nie kupować tokena kryptowalutowego SWARM, z którym autor nie ma nic wspólnego. Za tym dziwacznym banerem kryje się ciekawy pomysł: system wieloagentowy zbudowany z narzędzi Unix, skryptów zsh i git worktrees.
Podczas gdy większość autorów frameworków AI upycha swoje rozwiązania ciężkimi bibliotekami Pythona, SwarmForge rozwiązuje problem lokalnie i pragmatycznie.
Dlaczego uruchamiać wielu agentów jednocześnie
Kiedy dasz koderowi opartemu na Claude lub Copilot złożone zadanie, szybko napotyka limity kontekstu. Albo po cichu psuje sąsiedni kod. W prawdziwym życiu programiści rozwiązują to przez podział pracy. Jeden pisze specyfikacje, drugi koduje metodą TDD, trzeci sprawdza architekturę i refaktoryzuje.
SwarmForge przenosi tę praktykę na sieci neuronowe. Narzędzie uruchamia sesje tmux, przypisuje każdemu agentowi rolę i osobny git worktree, a następnie organizuje wymianę zadań między nimi. Dzięki temu agenci pracują nad tym samym repozytorium jednocześnie, ale fizycznie nie przeszkadzają sobie nawzajem ani nie nadpisują swoich plików.
Gotowe zestawy ról
Zamiast żmudnej konfiguracji, autor oferuje pobieranie gotowych scenariuszy z różnych gałęzi repozytorium:
- Gałąź two-pack. Ekspresowy rozwój dla małych zadań: koder implementuje zachowanie metodą TDD, a cleaner usuwa duplikaty i naprawia wady architektoniczne.
- Gałąź four-pack. Standardowy cykl z specyfikatorem Gherkin, koderem, refaktoryzatorem i architektem.
- Gałąź six-pack. Pełny łańcuch z osobnym krokiem hardeningu mutacyjnego i agentem QA.
- Własna kompilacja. Własny wariant z dowolnego zestawu ról, opisany w pliku konfiguracyjnym tekstowym.
Każdej roli możesz przypisać osobnego klienta CLI. Nic nie stoi na przeszkodzie, aby umieścić Claude w roli architekta i powierzyć rutynowe zadania Codex lub Copilot.
Przekazywanie zadań między agentami
Głównym problemem systemów wieloagentowych jest to, że agenci lubią spamować się nawzajem wiadomościami i gubić kontekst. W SwarmForge nie ma bezpośredniej rozmowy między sieciami neuronowymi.
Zamiast bezpośredniego wywoływania poleceń, SwarmForge uruchamia demona w tle na Babashka (interpreter Clojure dla skryptów). Demon monitoruje katalogi outbox i inbox w systemie plików .swarmforge/handoffs/.
Kiedy jeden agent kończy etap, wywołuje lokalny skrypt swarm_handoff.sh. Skrypt sprawdza przekazanie i tworzy plik zadania. Jeśli przekazywany jest kod, agent musi określić dokładny 10-znakowy hash commitu. Demon pobiera plik, weryfikuje commit i przenosi go do folderu inbox następnego agenta.
To podejście chroni przed halucynacjami. Sieć neuronowa nie może przekazać pracy dalej, jeśli nie zatwierdziła zmian w swoim git worktree.
Konfiguracja i uruchomienie
Wszystkie ustawienia są przechowywane w prostym pliku tekstowym swarmforge/swarmforge.conf. Każda linia opisuje jedno okno i ustawia jego rolę, dostawcę, nazwę worktree oraz dodatkowe parametry CLI:
window coordinator codex master
window coder copilot wt-coder --yolo
window refactorer claude wt-refactorer
window architect claude wt-arch task --dangerously-skip-permissions
Uruchomienie systemu w istniejącym projekcie zajmuje parę poleceń terminala. Wybierz gałąź, pobierz archiwum i uruchom skrypt wejściowy:
BRANCH=four-pack
curl -L "https://github.com/unclebob/swarm-forge/archive/refs/heads/${BRANCH}.tar.gz" | tar -xz --strip-components=1
./swarm
Skrypt ./swarm sprawdza narzędzia, pobiera współdzielone skrypty z gałęzi main, inicjalizuje git worktrees dla każdej roli i otwiera sesje tmux. Na macOS automatycznie uruchamia Terminal.app lub Ghostty, na Windows — Windows Terminal z WSL.
Przy uruchomieniu SwarmForge próbuje zablokować tryb uśpienia systemu operacyjnego przez caffeinate na macOS lub systemd-inhibit na Linuksie, aby agenci nie zasypiali w połowie pracy.
Kto skorzysta ze SwarmForge
Projekt pozostawia interesujące wrażenie. Z jednej strony widać charakterystyczny styl Uncle Boba: nacisk na TDD, metryki jakości kodu, specyfikacje Gherkin i ścisłe reguły czystej architektury. Z drugiej strony, zależność od Babashka, tmux i konkretnych narzędzi CLI sprawia, że bariera wejścia jest zauważalna.
Jeśli idee Czystego Kodu są ci bliskie i chcesz eksperymentować z autonomicznym rozwojem bez rozbudowanych frameworków takich jak AutoGen czy CrewAI, SwarmForge warto wypróbować. To dobry przykład tego, jak podstawowe narzędzia Unix i właściwy przepływ pracy Git pomagają koordynować złożone systemy AI.