Równoległe agenty i worktrees
Wejdź głębiej w /worktree, /best-of-n i /multitask w Pogłębionym przewodniku po trybach agenta.
Headless agent Cursora, agent -p, działa nieinteraktywnie i wpina się w git hooki, CI oraz zadania cykliczne zamiast tylko w edytor. Tryb print domyślnie proponuje zmiany, a zapisuje je dopiero z --force. Te same wzorce — przegląd pre-commit, przegląd PR w CI, cykliczne podbijanie zależności — działają też w Claude Code i Codex z terminala, różniąc się tylko flagami.
Twoje nocne zadanie podbijające zależności świeci na czerwono od trzech dni, bot „przeglądu kodu AI”, który zespół doczepił na siłę, wypisuje ogólnikowe pochwały pod każdym PR, a jedyna osoba rozumiejąca skrypt wydania właśnie poszła na urlop. Interaktywne kodowanie z AI jest świetne wewnątrz edytora — ale w momencie, gdy próbujesz to oskryptować, trafiasz na ścianę zmyślonych flag CLI i kruchego kodu sklejającego.
Cursor dostarcza prawdziwego bezgłowego agenta (agent -p) zbudowanego dokładnie do tego. Ten przewodnik pokazuje, jak wpiąć go w haki git, CI/CD i zadania cykliczne — z uruchamialnymi skryptami, a nie pseudokodem — oraz gdzie Claude Code i Codex robią to samo z poziomu terminala.
agent -p --output-format jsonWszystko poniżej opiera się na jednej komendzie. -p (tryb print) działa nieinteraktywnie; bez --force agent jedynie proponuje edycje, z --force je zapisuje:
# Zadaj pytanie, wypisz odpowiedź, zakończ (bez zmian w plikach)agent -p "What does this codebase do?"
# Zastosuj zmiany bezpośrednio (skrypty/CI)agent -p --force "Refactor src/auth/token.ts to use the jose library"
# Ustrukturyzowane wyjście do parsowaniaagent -p --output-format json --model gpt-5.6-sol \ "List the 3 riskiest changes in the current diff as a JSON array"--output-format przyjmuje text (domyślnie), json i stream-json. W CI ustaw zmienną środowiskową CURSOR_API_KEY zamiast logować się interaktywnie.
Blokuj commity, gdy zmiany w staging mają oczywiste problemy. Hak przekazuje diff ze staging do agenta i kończy się błędem przy niezerowym kodzie wyjścia. Przepływy różnią się między narzędziami, więc oto wszystkie trzy:
#!/usr/bin/env bash# .git/hooks/pre-commit (chmod +x)set -euo pipefail
DIFF=$(git diff --cached --diff-filter=ACMR -U3)[ -z "$DIFF" ] && exit 0
echo "Running Cursor pre-commit review..."RESULT=$(printf '%s' "$DIFF" | agent -p --output-format text \ "Review this staged diff for bugs, missing error handling, and leaked secrets. Reply with exactly 'PASS' on the first line if it is safe to commit, otherwise 'FAIL' followed by a bulleted list of blocking issues.")
echo "$RESULT"echo "$RESULT" | head -1 | grep -q '^PASS' || { echo "Commit blocked."; exit 1; }#!/usr/bin/env bash# .git/hooks/pre-commit (chmod +x)set -euo pipefail
DIFF=$(git diff --cached --diff-filter=ACMR -U3)[ -z "$DIFF" ] && exit 0
echo "Running Claude Code pre-commit review..."RESULT=$(printf '%s' "$DIFF" | claude -p --max-turns 2 \ "Review this staged diff for bugs, missing error handling, and leaked secrets. Reply 'PASS' on line 1 if safe to commit, else 'FAIL' and a bulleted list.")
echo "$RESULT"echo "$RESULT" | head -1 | grep -q '^PASS' || { echo "Commit blocked."; exit 1; }#!/usr/bin/env bash# .git/hooks/pre-commit (chmod +x)set -euo pipefail
DIFF=$(git diff --cached --diff-filter=ACMR -U3)[ -z "$DIFF" ] && exit 0
echo "Running Codex pre-commit review..."RESULT=$(printf '%s' "$DIFF" | codex exec --sandbox read-only \ "Review this staged diff for bugs, missing error handling, and leaked secrets. Reply 'PASS' on line 1 if safe to commit, else 'FAIL' and a bulleted list.")
echo "$RESULT"echo "$RESULT" | head -1 | grep -q '^PASS' || { echo "Commit blocked."; exit 1; }Uruchom agenta na pull requestach i opublikuj wynik jako komentarz. Sprawdzony wzorzec to ograniczona autonomia: pozwól agentowi modyfikować wyłącznie katalog roboczy lub emitować tekst, a operacje git/PR pozostaw deterministycznymi krokami CI. Ten przepływ GitHub Actions przypina akcje zewnętrzne do bieżących wersji major i instaluje CLI Cursor bezpośrednio:
name: AI Code Review
on: pull_request: types: [opened, synchronize]
permissions: contents: read pull-requests: write
jobs: ai-review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0
- name: Install Cursor CLI run: | curl https://cursor.com/install -fsS | bash echo "$HOME/.cursor/bin" >> "$GITHUB_PATH"
- name: Generate review env: CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }} run: | git diff "origin/${{ github.base_ref }}...HEAD" > pr.diff agent -p --output-format text --model gpt-5.6-sol \ "Review the diff in @pr.diff. Focus on correctness, security, and missing tests. Write concise, file-scoped feedback to review.md. Do not modify any source files."
- name: Post review comment env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: gh pr comment "${{ github.event.pull_request.number }}" --body-file review.mdTo samo zadanie w pozostałych dwóch narzędziach:
agent -p --output-format text --model gpt-5.6-sol \ "Review the diff in @pr.diff for correctness, security, and missing tests. Write file-scoped feedback to review.md. Do not modify source files."cat pr.diff | claude -p --output-format json --max-turns 3 \ --allowedTools "Read,Grep" \ "Review this diff for correctness, security, and missing tests. Return JSON: { verdict, comments: [{ path, line, severity, message }] }"codex exec --sandbox read-only \ "Review the diff in pr.diff for correctness, security, and missing tests. Write file-scoped feedback to review.md. Do not modify source files."Cotygodniowe zadanie, które proponuje podbicia zależności, uruchamia zestaw testów i otwiera PR. Trzymaj krok AI ograniczony do edycji plików, a rozgałęzianie i tworzenie PR pozostaw CI:
name: Weekly Maintenance
on: schedule: - cron: '0 2 * * 0' # Niedziele, 02:00 UTC
permissions: contents: write pull-requests: write
jobs: maintenance: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4
- name: Install Cursor CLI run: | curl https://cursor.com/install -fsS | bash echo "$HOME/.cursor/bin" >> "$GITHUB_PATH"
- name: Propose safe dependency bumps env: CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }} run: | agent -p --force --model gpt-5.6-sol \ "Bump dependencies in package.json to the latest non-breaking (caret) versions. Update the lockfile with 'npm install'. Do NOT bump across major versions. Do NOT touch source files. Summarize changes to CHANGES.md."
- name: Verify run: npm ci && npm test
- name: Open PR env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | git checkout -B chore/weekly-deps git add -A && git commit -m "chore: weekly dependency bumps" git push -f origin chore/weekly-deps gh pr create --fill --title "chore: weekly dependency bumps" || trueW przypadku Claude Code zamień krok agenta na claude -p --max-budget-usd 2.00 --dangerously-skip-permissions "...", żeby run zatrzymał się sam, gdy zacznie być kosztowny. Dla Codex w zaufanym CI bez nadzoru użyj codex exec --sandbox workspace-write -c approval_policy=never "..." wyłącznie w izolowanym checkoutcie; nie udostępniaj mu kodu z niezaufanego PR i wymagaj timeoutu oraz przeglądu diffu i testów. Rusztowanie CI wokół kroku AI jest identyczne we wszystkich trzech narzędziach.
Cursor 3.0 przedefiniował IDE jako środowisko uruchomieniowe agentów, a 3.2–3.3 wprowadziły trzy komendy ze slashem, które orkiestrują pracę równoległą bez opuszczania pola czatu. Każda pasuje do innego kształtu zadania.
/worktree — Izolowane edycje, jedno zadanieUruchom izolowany git worktree dla zmian agenta. Używaj, gdy zadanie może wyprodukować edycje, które chcesz odizolować od bieżącej gałęzi — eksperymentalne refaktoryzacje, ryzykowne migracje, cokolwiek możesz porzucić.
/worktree refactor src/auth to use the new JWT libraryCursor tworzy worktree, przełącza do niego agenta i wystawia śledzoną lokalizację, którą na końcu możesz zmergować lub odrzucić.
/best-of-n — To samo zadanie, wiele modeliUruchom to samo zadanie równolegle na wielu modelach (Composer 2.5, Opus 5, Fable 5, GPT-5.6 Sol), każdy we własnym worktree, a potem porównaj wyniki. Przydatne, gdy nie ufasz żadnemu pojedynczemu modelowi w czystym rozstrzygnięciu — kod wrażliwy na bezpieczeństwo, niejednoznaczne specyfikacje, zadania na jeden strzał, które wolisz zrobić dobrze za pierwszym razem. W zadaniach wymagających najwyższej inteligencji Fable 5 to najmocniejsza opcja dostępna w selektorze modeli Cursor; pełne zestawienie znajdziesz w porównaniu modeli.
/best-of-n 3 implement the rate-limit middleware described in docs/rate-limit-rfc.mdWybierasz liczbę uruchomień (n); Cursor zwraca diffy obok siebie, uszeregowane według liczby zaliczonych testów, czystości lint i szybkiego porównania semantycznego.
/multitask — Jedno zadanie, wiele subagentówCursor dzieli zadanie na kawałki i każdy dispatchuje do asynchronicznego subagenta równolegle. Najlepsze do zadań, które naturalnie się dekomponują — refaktoryzacje obejmujące wiele plików, równoległe naprawy testów, aktualizacje wielu modułów.
/multitask migrate every import of "@old-pkg/auth" to "@new-pkg/auth" and update testsDostępne w Cursor 3.2+; kontrolki subagentów (maksymalna głębokość, współbieżność, limit kosztów) dodano w 3.3.
| Narzędzie | Najlepsze do |
|---|---|
/worktree | Jedno zadanie, edycje do odizolowania |
/best-of-n | Porównanie strategii modeli na tym samym zadaniu |
/multitask | Jedno zadanie naturalnie się dekomponujące — async subagenty równolegle |
| Background Agents | Hostowane w chmurze, długotrwałe, działa, gdy jesteś offline |
Dla powtarzalnego środowiska chmurowego scommituj .cursor/environment.json, żeby każdy agent startował z gotowym łańcuchem narzędzi i usługami:
{ "snapshot": "POPULATED_FROM_SETTINGS", "install": "npm ci", "start": "sudo service docker start", "terminals": [ { "name": "Dev Server", "command": "npm run dev" }, { "name": "Test Runner", "command": "npm run test:watch" } ]}Praktyczny wzorzec: odpal trzy gałęzie ze Slacka i monitoruj je na cursor.com/agents.
@Cursor [branch=feature/auth] implement OAuth 2.0 login: Passport.js with Googleand GitHub strategies, Redis-backed sessions, RBAC, and integration tests.
@Cursor [branch=feature/payments] add Stripe subscriptions: checkout endpoints,webhook handlers, and error handling with retries.
@Cursor [branch=feature/notifications] build the email pipeline: Resendintegration, templated emails, a Bull queue, and an unsubscribe flow.Trzymaj każde żądanie wąskie i weryfikowalne. Mgliste „@Cursor zbuduj całą platformę” spala tokeny na iteracjach względem niejasnego celu; trzy ograniczone zadania kończą się szybciej i czyściej się recenzuje.
Serwery MCP dają agentowi pierwszoklasowy dostęp do twoich narzędzi dostarczania — GitHub, GitLab, Jenkins, Terraform, Kubernetes — dzięki czemu pojedynczy prompt może zorkiestrować wydanie zamiast zmuszać cię do sklejania dedykowanych klientów API. Konfiguracja mieszka w ~/.cursor/mcp.json (Cursor), .mcp.json (Claude Code) lub ~/.codex/config.toml (Codex); definicje serwerów są identyczne we wszystkich trzech narzędziach.
{ "mcpServers": { "github": { "url": "https://api.githubcopilot.com/mcp/", "headers": { "Authorization": "Bearer ${env:GITHUB_PAT}" } }, "gitlab": { "type": "http", "url": "https://gitlab.com/api/v4/mcp", "headers": { "Authorization": "Bearer ${env:GITLAB_PAT}" } }, "jenkins": { "command": "npx", "args": ["-y", "jenkins-mcp-server"], "env": { "JENKINS_URL": "https://jenkins.company.com", "JENKINS_USER": "your-username", "JENKINS_TOKEN": "your-api-token" } }, "terraform": { "command": "npx", "args": ["-y", "terraform-mcp-server"] }, "kubernetes": { "command": "npx", "args": ["-y", "kubernetes-mcp-server"], "env": { "KUBECONFIG": "~/.kube/config" } } }}Z podłączonymi tymi serwerami wydanie staje się jednym promptem:
Cut release v2.1.0:- GitHub MCP: generate a changelog from commits since the last tag and create a draft release- Jenkins MCP: trigger the build-and-test job and wait for it to go green- Kubernetes MCP: roll out the new image and watch pod health- If health checks fail, pause the rollout and report which pods are unhealthyTo jest „przed/po”, które kupuje ci MCP: zamiast skryptu na kilkaset linii żonglującego czterema klientami API, agent czyta na żywo stan z każdego serwera i decyduje o następnym kroku. Kompromis względem Agent Skill (lżejszego, jednozadaniowego rozszerzenia instalowanego przez npx skills add <owner/repo>) to głębia: po MCP sięgaj, gdy potrzebujesz trwałego, stanowego połączenia z narzędziem; po skill — gdy chcesz tylko nauczyć agenta jednej skoncentrowanej umiejętności.
Równoległe agenty i worktrees
Wejdź głębiej w /worktree, /best-of-n i /multitask w Pogłębionym przewodniku po trybach agenta.
Konfiguracja MCP
Podłącz i debuguj powyższe serwery we wszystkich trzech narzędziach w Niezbędnych serwerach MCP.
Więcej automatyzacji Cursor
Agenty w tle, checkpointy i strategie dla dużych baz kodu w Zaawansowanych technikach Cursor.
CI/CD z AI
Wepnij przegląd AI w swój potok od początku do końca w Automatyzacji potoków z AI.
Automatyzacja powinna wzmacniać twój osąd, a nie go zastępować. Zacznij od kontroli tylko do odczytu (recenzent pre-commit, który jedynie ostrzega), przejdź do operacji zapisu za bramką CI i trzymaj człowieka przy każdym nieodwracalnym kroku — wdrożeniach, force-pushach i wszystkim, co dotyka danych produkcyjnych.