Problem: jeden AI, wszystko sekwencyjnie
Pracujesz z Claude Code. Piszesz "dodaj feature X" i czekasz. Claude czyta 5 plików, edytuje 3, pisze testy, aktualizuje dokumentację — wszystko jedno po drugim. Po 15 minutach kontekst jest tak duży, że Claude zapomina co robił na początku. Commit? Jeden wielki "zmieniono 20 plików". Kto co zrobił? Nie wiadomo.
Brzmi znajomo? Tak pracuje 99% ludzi z AI. Ale jest lepszy sposób.
Anthropic (twórcy Claude) sami używają wieloagentowej orkiestracji w swoim workflow deweloperskim. Shopify ogłosił w 2025 że ich zespoły dev muszą wykazać dlaczego zadanie NIE może być zrobione przez AI, zanim dostaną nową osobę. Cognition (Devin) zbudował agenta-programistę, który dzieli zadania na podzadania. Claude Code Agent SDK — oficjalne narzędzie Anthropic do budowania multi-agent systemów. To nie eksperyment — to nowy standard pracy z kodem.
Rozwiązanie: zespół agentów AI
Wyobraź sobie, że zamiast jednego Claude'a masz 10 wyspecjalizowanych agentów. Jeden pisze backend, drugi frontend, trzeci pilnuje bezpieczeństwa, czwarty pisze testy. Pracują równolegle — każdy w swojej kopii repozytorium. Commitują pod swoim imieniem (🤖 Backer, 🤖 Frontik...). Otwierają Pull Requesty. A Ty zatwierdzasz merge.
Zadanie które zajmowało 30 minut? 5 minut. Git log w którym nie wiadomo co się stało? Teraz widać: Backer zrobił endpoint, Frontik dodał UI, Securitor sprawdził bezpieczeństwo.
W tym poradniku zbudujesz to od zera. Otworzysz VSCode, skonfigurujesz Claude Code, utworzysz agentów i przetestujesz na prawdziwym zadaniu.
Co to zmienia?
| Bez orkiestracji | Z orkiestracją |
|---|---|
| Claude robi wszystko sam, sekwencyjnie | 5 agentów pracuje równolegle |
| Ogromny kontekst — Claude zapomina początek | Każdy agent ma mały kontekst |
| 1 wielki commit "zmienił 20 plików" | 5 małych PR-ów, każdy czytelny |
| Nie wiadomo co kto zrobił | Git log: Backer zrobił X, Frontik Y |
| 30 minut na zadanie | 5 minut (równolegle) |
Zadanie: "Dodaj historię rozmów do widgetu AI chat"
Bez orkiestracji: ~10 min sekwencyjnie (czytanie + edycja JS + edycja docs)
Z orkiestracją: ~3 min (Frontik edytuje JS, Doktor edytuje docs — RÓWNOLEGLE)
Przygotowanie — co zainstalować
Zanim zaczniemy, potrzebujesz kilku narzędzi. Wszystkie są darmowe (oprócz subskrypcji Claude). Jeśli coś już masz — pomiń ten krok.
1. VSCode — Twój edytor kodu
Jeśli jeszcze nie masz — pobierz Visual Studio Code (darmowy). To edytor w którym będziesz pracować z Claude Code i przeglądać zmiany.
Claude Code ma oficjalne rozszerzenie do VSCode. Możesz rozmawiać z Claude bezpośrednio w edytorze — widzisz kod i agenta obok siebie.
2. GitLens — rozszerzenie do VSCode
Otwórz VSCode → kliknij ikonę rozszerzeń (po lewej, kwadraciki) → wyszukaj "GitLens" → zainstaluj. GitLens pokaże Ci kto napisał każdą linię kodu — i to właśnie tutaj zobaczysz, że 🤖 Backer zmienił backend, a 🤖 Frontik frontend.
3. Claude Code — AI w terminalu
Claude Code to narzędzie od Anthropic (twórcy Claude). Instalujesz je w terminalu i od tego momentu rozmawiasz z AI który czyta, edytuje i commituje kod za Ciebie.
# Instalacja Claude Code npm install -g @anthropic-ai/claude-code # Sprawdź czy działa claude --version
4. GitHub — gdzie trzymasz kod
Jeśli nie masz konta — załóż na github.com (darmowe). Utwórz nowe repozytorium (prywatne lub publiczne). Agenci będą tam otwierać Pull Requesty — czyli propozycje zmian, które Ty zatwierdzasz.
5. GitHub CLI — terminal do GitHuba
# macOS brew install gh # Zaloguj się (otworzy przeglądarkę) gh auth login # Wybierz: GitHub.com → HTTPS → Login with browser
task_alt Checklist — mam to?
Plan implementacji
Faza 1: Fundamenty (30 min) ├── Branch "develop" ├── CI/CD (GitHub Actions) └── Uprawnienia (settings.json) Faza 2: Agenci (30 min) ├── 10 plików agentów (.claude/agents/*.md) ├── Skrypt agent-commit.sh └── Skill /orchestrate Faza 3: Batch (15 min) └── Skill /batch Faza 4: Dashboard (15 min) └── Skrypt agent-dashboard.sh Test: Prawdziwe zadanie (30 min) ├── Uruchomienie 2-3 agentów ├── PR-y na GitHub └── Merge + weryfikacja
Łącznie: 2-3 godziny (z testowaniem i nauką po drodze)
Krok po kroku — implementacja
Krok 1: Utwórz branch "develop"
Master to Twoja produkcja — nikt nie powinien pushować tam bezpośrednio. Develop to miejsce gdzie agenci łączą swoją pracę.
# Przejdź do katalogu projektu cd /ścieżka/do/twojego/projektu # Utwórz branch develop z master git checkout -b develop # Wyślij na GitHub git push -u origin develop
Na GitHubie w zakładce "Branches" powinieneś zobaczyć dwa branche: master i develop.
Krok 2: Zainstaluj GitHub CLI
# macOS brew install gh # Zaloguj się gh auth login # Wybierz: GitHub.com → HTTPS → Login with browser
Potrzebujesz tokena? Idź na: GitHub → Settings → Developer Settings → Personal Access Tokens → Generate. Zaznacz: repo, workflow, read:org.
Krok 3: CI/CD — automatyczne testy
Każdy PR od agenta jest automatycznie testowany. Jeśli testy nie przechodzą — wiesz że coś jest nie tak ZANIM zmergeujesz.
name: "Quality Gate" on: pull_request: branches: [master, develop] jobs: quality-check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Sprawdź składnię run: | # Dostosuj do swojego języka/frameworka find . -name "*.php" -not -path "./vendor/*" \ | xargs -n1 php -l
Krok 4: Uprawnienia
{
"permissions": {
"defaultMode": "bypassPermissions",
"deny": [
"Bash(rm -rf:*)",
"Bash(git push --force:*)",
"Bash(git reset --hard:*)"
],
"ask": [
"Bash(lftp:*)"
]
}
}
Nie dodawaj deny na git push (bez --force) — agenci muszą pushować swoje branche!
Krok 5: Zdefiniuj agentów
Każdy agent to plik Markdown w .claude/agents/:
--- name: 🤖 Backer description: Backend — endpointy, klasy, API model: opus --- # 🤖 Backer — Agent Backend Jesteś Backerem, agentem AI odpowiedzialnym za backend. ## Twoja rola - Edycja plików backend (PHP/Python/Node) - Nowe endpointy API, logika biznesowa ## Git identity - Author: `🤖 Backer (AI Agent) <backer@twoja-firma.ai>` - Branch: `feature/backer-[temat]`
| Agent | Rola | Plik |
|---|---|---|
| 🤖 Claude Lider | Koordynacja, merge | (główna sesja) |
| 🤖 Backer | Backend | .claude/agents/backer.md |
| 🤖 Frontik | Frontend JS/CSS | .claude/agents/frontik.md |
| 🤖 Securitor | Security audit | .claude/agents/securitor.md |
| 🤖 Testor | Testy | .claude/agents/testor.md |
| 🤖 Doktor | Dokumentacja | .claude/agents/doktor.md |
| 🤖 Stylowiec | CSS/UI | .claude/agents/stylowiec.md |
| 🤖 Strażnik | Quality gate | .claude/agents/straznik.md |
| 🤖 Deployak | Deploy | .claude/agents/deployak.md |
| 🤖 Kronikarz | Poradniki | .claude/agents/kronikarz.md |
Nazwy po polsku — od razu wiesz kto co robi. Emoji 🤖 odróżnia agentów od ludzi w git log.
Krok 6: Skrypt do commitowania jako agent
#!/bin/bash # Użycie: ./scripts/agent-commit.sh backer "feat: nowy endpoint" get_agent_info() { case "${1,,}" in lider) AUTHOR_NAME="🤖 Claude Lider (AI Lead)" AUTHOR_EMAIL="claude@twoja-firma.ai" ;; backer) AUTHOR_NAME="🤖 Backer (AI Agent)" AUTHOR_EMAIL="backer@twoja-firma.ai" ;; frontik) AUTHOR_NAME="🤖 Frontik (AI Agent)" AUTHOR_EMAIL="frontik@twoja-firma.ai" ;; # ... dodaj swoich agentów *) return 1 ;; esac } AGENT_ID="$1"; shift; COMMIT_MSG="$*" get_agent_info "$AGENT_ID" || { echo "Nieznany agent: $AGENT_ID"; exit 1; } git commit --author="${AUTHOR_NAME} <${AUTHOR_EMAIL}>" -m "${COMMIT_MSG}"
Krok 7: Skill /orchestrate
Pattern: PLAN → SPAWN → COLLECT → MERGE
- PLAN — Claude analizuje zadanie i dzieli na niezależne części
- SPAWN — Uruchamia agentów równolegle (każdy w izolowanym worktree)
- COLLECT — Zbiera wyniki, sprawdza PR-y
- MERGE — Łączy zmiany do develop
Testowanie
Test 1: Proof of concept (3 agentów)
Uruchom 3 agentów z prostym zadaniem — każdy dodaje komentarz w INNYM pliku:
- Doktor → plik docs
- Securitor → plik PHP
- Frontik → plik JS
3 branche, 3 PR-y na GitHub, 3 różnych autorów w git log.
Test 2: Prawdziwe zadanie
Weź małe zadanie które dotyka 2+ plików. Nasz wynik: 2 PR-y w 3 minuty (zamiast 10 minut sekwencyjnie).
Pułapki i sztuczki
Mimo bypassPermissions, agenci w worktree mogą nie mieć dostępu do Bash. Rozwiązanie: Lider kończy git operacje za nich.
Zasada: 1 plik = 1 agent. NIGDY nie przypisuj dwóch agentów do tego samego pliku — będzie konflikt.
declare -A nie działa. Rozwiązanie: Używaj case/esac zamiast tablic.
🤖 na początku nazwy agenta — od razu widać w git log że to AI, nie człowiek.
Odróżnia agentów od ludzi. backer@binsoft.ai vs adam@binsoft.pl.
Efekt końcowy
Twój projekt/ ├── .claude/ │ ├── agents/ ← 10 agentów z tożsamościami │ │ ├── backer.md │ │ ├── frontik.md │ │ └── ... │ ├── skills/ │ │ ├── orchestrate/ ← dzielenie zadań na agentów │ │ └── batch/ ← masowa refaktoryzacja │ └── settings.local.json ├── .github/ │ └── workflows/ │ └── pr-quality-gate.yml ← automatyczne testy ├── scripts/ │ ├── agent-commit.sh ← commit jako agent │ └── agent-dashboard.sh
Git log wygląda tak:
* Merge PR #5 — 🤖 Doktor (dokumentacja) |\ | * docs(chat): aktualizacja dokumentacji * | Merge PR #4 — 🤖 Frontik (localStorage) |\ \ | * feat(chat): historia rozmów w localStorage |/ * feat(devops): infrastruktura orkiestracji — 🤖 Claude Lider
Każdy widzi: kto co zrobił, kiedy, w jakim PR-ze. Jak prawdziwy zespół — tylko że AI.