agent:~/.claude$ cat agent-architecture.md

Architektura agentów: budowanie szkieletów programistycznych opartych na AI

# Kompletny system budowania produkcyjnych szkieletów agentów AI. Umiejętności, hooks, pamięć, subagenci, orkiestracja wieloagentowa oraz wzorce, które czynią agenty kodujące AI niezawodną infrastrukturą.

words: 12171 read_time: 46m updated: 2026-05-09 07:20
$ less agent-architecture.md

TL;DR: Claude Code to nie okno czatu z dostępem do plików. To programowalne środowisko uruchomieniowe z 29 udokumentowanymi zdarzeniami cyklu życia, z których każde można obsłużyć skryptami powłoki, których model nie jest w stanie pominąć. Można składać hooks w dispatchers, dispatchers w skills, skills w agents, a agents w przepływy pracy — w rezultacie powstaje autonomiczny harness deweloperski, który egzekwuje ograniczenia, deleguje pracę, utrzymuje pamięć między sesjami i koordynuje deliberację wieloagentową. Niniejszy przewodnik omawia każdą warstwę tego stosu: od pojedynczego hooka po system konsensusu złożony z 10 agentów. Bez konieczności stosowania jakichkolwiek frameworków. Wyłącznie bash oraz JSON.

Andrej Karpathy ukuł termin opisujący to, co narasta wokół agenta LLM: claws. Hooks, skrypty i orkiestracja, które pozwalają agentowi uchwycić świat poza jego oknem kontekstu.1 Większość deweloperów traktuje agentów programistycznych AI jako interaktywnych asystentów. Wpisują polecenie, obserwują, jak edytuje plik, i przechodzą dalej. Takie podejście ogranicza produktywność do tego, co można osobiście nadzorować.

Model mentalny oparty na infrastrukturze jest odmienny: agent programistyczny AI to programowalne środowisko uruchomieniowe z jądrem LLM. Każde działanie podejmowane przez model przechodzi przez hooks, nad którymi sprawuje się kontrolę. Definiuje się zasady, nie polecenia. Model działa w obrębie danej infrastruktury w taki sam sposób, w jaki serwer WWW działa w obrębie reguł nginx. Nie siada się przy nginx, by wpisywać żądania. Konfiguruje się go, wdraża i monitoruje.

To rozróżnienie ma znaczenie, ponieważ infrastruktura się kumuluje. Hook blokujący poświadczenia w poleceniach bash chroni każdą sesję, każdego agenta, każde autonomiczne uruchomienie. Skill kodujący kryteria oceny stosuje się spójnie, niezależnie od tego, czy zostanie wywołany przez użytkownika, czy przez agenta. Agent recenzujący kod pod kątem bezpieczeństwa wykonuje te same kontrole, niezależnie od tego, czy jest się obserwatorem, czy nie.2


Najważniejsze wnioski

  • Hooks gwarantują wykonanie; polecenia nie. Warto stosować hooks do lintowania, formatowania, kontroli bezpieczeństwa i wszystkiego, co musi być wykonywane za każdym razem, niezależnie od zachowania modelu. Kod wyjścia 2 blokuje działania. Kod wyjścia 1 jedynie ostrzega.3
  • Skills kodują wiedzę dziedzinową, która aktywuje się automatycznie. Pole description decyduje o wszystkim. Claude wykorzystuje rozumowanie LLM (nie dopasowywanie słów kluczowych), aby zdecydować, kiedy zastosować dany skill.4
  • Subagents zapobiegają rozrostowi kontekstu. Izolowane okna kontekstu do eksploracji i analizy utrzymują główną sesję w zwięzłej formie. Niezależne subagents można uruchamiać równolegle, natomiast zespołów agentów należy używać wtedy, gdy pracownicy wymagają trwałej koordynacji.5
  • Pamięć rezyduje w systemie plików. Pliki są zachowywane między oknami kontekstu. CLAUDE.md, MEMORY.md, katalogi reguł oraz dokumenty handoff tworzą uporządkowany system pamięci zewnętrznej.6
  • Deliberacja wieloagentowa wykrywa martwe punkty. Pojedynczy agenci nie są w stanie kwestionować własnych założeń. Dwóch niezależnych agentów o różnych priorytetach oceny wychwytuje błędy strukturalne, których nie są w stanie wyeliminować bramki jakości.7
  • Wzorzec harness to cały system. CLAUDE.md, hooks, skills, agents oraz pamięć nie są niezależnymi funkcjami. Łączą się one w deterministyczną warstwę pomiędzy użytkownikiem a modelem, która skaluje się wraz z automatyzacją.

Jak korzystać z niniejszego przewodnika

Doświadczenie Proszę zacząć tutaj Następnie warto zgłębić
Codzienne korzystanie z Claude Code, chęć osiągnięcia więcej The Harness Pattern Skills System, Hook Architecture
Budowanie autonomicznych przepływów pracy Subagent Patterns Multi-Agent Orchestration, Production Patterns
Ocena architektury agentów Why Agent Architecture Matters Decision Framework, Security Considerations
Konfigurowanie zespołowego harness CLAUDE.md Design Hook Architecture, Quick Reference Card

Każda sekcja opiera się na poprzedniej. Sekcja Decision Framework na końcu zawiera tabelę odniesień, która pozwala dobrać właściwy mechanizm do każdego rodzaju problemu.


Pięciominutowa ścieżka złota

Przed głębokim zanurzeniem oto najkrótsza droga od zera do działającego harness. Jeden hook, jeden skill, jeden subagent, jeden rezultat.

Krok 1: Utworzenie hooka bezpieczeństwa (2 minuty)

Proszę utworzyć .claude/hooks/block-secrets.sh:

#!/bin/bash
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command // empty')
if echo "$CMD" | grep -qEi '(AKIA|sk-|ghp_|password=)'; then
    echo "BLOCKED: Potential secret in command" >&2
    exit 2
fi

Podłączenie w .claude/settings.json:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [{ "type": "command", "command": ".claude/hooks/block-secrets.sh" }]
      }
    ]
  }
}

Rezultat: Każde polecenie bash uruchamiane przez Claude jest teraz sprawdzane pod kątem wycieku poświadczeń. Model nie może pominąć tej kontroli.

Krok 2: Utworzenie skilla do przeglądu kodu (1 minuta)

Proszę utworzyć .claude/skills/reviewer/SKILL.md z frontmatter (name: reviewer, description: Review code for security issues, bugs, and quality problems. Use when examining changes, reviewing PRs, or auditing code., allowed-tools: Read, Grep, Glob) oraz listą kontrolną: SQL injection, XSS, zakodowane na sztywno sekrety, brak obsługi błędów, funkcje powyżej 50 linii.

Rezultat: Claude automatycznie aktywuje tę wiedzę ekspercką za każdym razem, gdy pojawi się wzmianka o przeglądzie, kontroli lub audycie.

Krok 3: Uruchomienie subagenta (30 sekund)

W dowolnej sesji Claude Code można poprosić Claude o przejrzenie ostatnich 3 commitów pod kątem problemów bezpieczeństwa przy użyciu oddzielnego agenta. Claude uruchamia agenta Explore, który odczytuje diff, stosuje skill przeglądu i zwraca podsumowanie. Główny kontekst pozostaje czysty.

Co zostało uzyskane

Trójwarstwowy harness: deterministyczna bramka bezpieczeństwa (hook), wiedza dziedzinowa aktywująca się automatycznie (skill) oraz izolowana analiza chroniąca kontekst (subagent). Każda z kolejnych sekcji rozwija jedną z tych trzech warstw.


Dlaczego architektura agentów ma znaczenie

Simon Willison ujmuje obecny moment w jednej obserwacji: pisanie kodu jest teraz tanie.8 Zgadza się. Jednak konsekwencją tego jest to, że weryfikacja stała się kosztowną częścią. Tani kod bez infrastruktury weryfikacyjnej produkuje błędy na masową skalę. Inwestycja, która się zwraca, to nie lepszy prompt. To system wokół modelu, który wychwytuje to, co model przeoczy.

Trzy siły sprawiają, że architektura agentów staje się konieczna:

Okna kontekstu są skończone i stratne. Każdy odczyt pliku, wyjście narzędzia i tura rozmowy pochłaniają tokeny. Microsoft Research i Salesforce przetestowały 15 LLM na ponad 200 000 symulowanych rozmów i odkryły średni spadek wydajności o 39% z interakcji jednoturowej do wieloturowej.9 Degradacja rozpoczyna się już po dwóch turach i podąża przewidywalną krzywą: precyzyjne edycje wieloplikowe w pierwszych 30 minutach degradują się do wizji tunelowej jednego pliku w 90. minucie. Dłuższe okna kontekstu tego nie naprawiają. Warunek „Concat” z tego samego badania (cała rozmowa jako pojedynczy prompt) osiągnął 95,1% wydajności jednoturowej przy identycznej treści. Degradacja wynika z granic tur, a nie z limitów tokenów.

Zachowanie modelu jest probabilistyczne, a nie deterministyczne. Polecenie Claude „zawsze uruchom Prettier po edycji plików” działa w około 80% przypadków.3 Model może zapomnieć, postawić na szybkość lub uznać zmianę za „zbyt małą”. Dla zgodności z przepisami, bezpieczeństwa i standardów zespołowych 80% jest niewystarczające. Hooki gwarantują wykonanie: każdy Edit lub Write wyzwala formatter, za każdym razem, bez wyjątków. Deterministyczne wygrywa z probabilistycznym.

Pojedyncze perspektywy pomijają problemy wielowymiarowe. Pojedynczy agent przeglądający endpoint API sprawdził uwierzytelnianie, zweryfikował sanityzację danych wejściowych i potwierdził nagłówki CORS. Stan idealny. Drugi agent, zlecony oddzielnie jako tester penetracyjny, wykrył, że endpoint akceptował nieograniczone parametry zapytań, które mogły wywołać denial-of-service poprzez amplifikację zapytań do bazy danych.7 Pierwszy agent nigdy tego nie sprawdził, ponieważ nic w jego ramach oceny nie traktowało złożoności zapytań jako powierzchni bezpieczeństwa. Ta luka ma charakter strukturalny. Żadne dopracowanie promptu jej nie naprawi.

Architektura agentów odpowiada na wszystkie trzy wyzwania: hooki wymuszają deterministyczne ograniczenia, subagenty zarządzają izolacją kontekstu, a orkiestracja wieloagentowa zapewnia niezależne perspektywy. Razem tworzą harness.


Wzorzec harness

Harness to nie framework. To wzorzec: kompozycyjny zestaw plików, skryptów i konwencji, który otacza agenta kodującego AI deterministyczną infrastrukturą. Komponenty:

┌──────────────────────────────────────────────────────────────┐
│                      THE HARNESS PATTERN                      │
├──────────────────────────────────────────────────────────────┤
│  ORCHESTRATION                                                │
│  ┌────────────┐  ┌────────────┐  ┌────────────┐             │
│  │   Agent     │  │   Agent    │  │  Consensus │             │
│  │   Teams     │  │  Spawning  │  │  Validation│             │
│  └────────────┘  └────────────┘  └────────────┘             │
│  Multi-agent deliberation, parallel research, voting          │
├──────────────────────────────────────────────────────────────┤
│  EXTENSION LAYER                                              │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐    │
│  │  Skills   │  │  Hooks   │  │  Memory  │  │  Agents  │    │
│  └──────────┘  └──────────┘  └──────────┘  └──────────┘    │
│  Domain expertise, deterministic gates, persistent state,     │
│  specialized subagents                                        │
├──────────────────────────────────────────────────────────────┤
│  INSTRUCTION LAYER                                            │
│  ┌──────────────────────────────────────────────────────┐    │
│  │     CLAUDE.md  +  .claude/rules/  +  MEMORY.md       │    │
│  └──────────────────────────────────────────────────────┘    │
│  Project context, operational policy, cross-session memory    │
├──────────────────────────────────────────────────────────────┤
│  CORE LAYER                                                   │
│  ┌──────────────────────────────────────────────────────┐    │
│  │           Main Conversation Context (LLM)             │    │
│  └──────────────────────────────────────────────────────┘    │
│  Your primary interaction; finite context; costs money        │
└──────────────────────────────────────────────────────────────┘

Warstwa instrukcji: Pliki CLAUDE.md i katalogi rules definiują, co agent wie o Pana/Pani projekcie. Ładują się automatycznie przy starcie sesji oraz po każdej kompakcji. Jest to długoterminowa pamięć architektoniczna agenta.

Warstwa rozszerzeń: Skills dostarczają wiedzy domenowej, która aktywuje się automatycznie w zależności od kontekstu. Hooks zapewniają deterministyczne bramki uruchamiane przy każdym pasującym wywołaniu narzędzia. Pliki pamięci utrwalają stan między sesjami. Niestandardowi agenci dostarczają wyspecjalizowanych konfiguracji subagents.

Warstwa orkiestracji: Wzorce wieloagentowe koordynują niezależnych agentów do badań, przeglądu i deliberacji. Budżety spawnowania zapobiegają niekontrolowanej rekursji. Walidacja konsensusu zapewnia jakość.

Kluczowe spostrzeżenie: większość użytkowników pracuje wyłącznie w warstwie Core, obserwując rozrastający się kontekst i rosnące koszty. Zaawansowani użytkownicy konfigurują warstwy Instruction i Extension, a warstwy Core używają wyłącznie do orkiestracji i ostatecznych decyzji.2

Managed vs. self-hosted harness (kwiecień 2026)

Przez większość początku 2026 ścieżka „zbuduj własny harness” była jedyną realną opcją. W kwietniu 2026 to się zmieniło. Anthropic wypuścił Claude Managed Agents w publicznej wersji beta (8 kwietnia): pętla harness + wykonywanie narzędzi + kontener sandbox + persistencja stanu jako REST API, rozliczane według standardowych tokenów plus $0,08 za godzinę-sesji. Aktualizacja OpenAI Agents SDK (16 kwietnia) sformalizowała ten sam podział — harness i compute jako oddzielne warstwy, z natywnymi dostawcami sandbox (Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, Vercel) oraz snapshot/rehydrate dla przetrwania utraty kontenera.2324

Głębsza powierzchnia SDK po stronie OpenAI pojawiła się w openai-agents Python v0.14.0 (wydany 15 kwietnia 2026; ogłoszony 16 kwietnia): podklasa SandboxAgent klasy Agent z default_manifest, instrukcjami sandbox i capabilities; Manifest opisujący kontrakt świeżego workspace (pliki, katalogi, pliki lokalne, repozytoria Git, env, użytkownicy, mounts); SandboxRunConfig do wiązania per-run klienta sandbox, wstrzykiwania sesji live, nadpisań manifestu, snapshotów oraz limitów współbieżności materializacji. Wbudowane capabilities obejmują dostęp do powłoki, edycję filesystemu, inspekcję obrazów, skills, pamięć sandbox oraz kompakcję. Pamięć sandbox utrwala wyodrębnione lekcje między uruchomieniami i progresywnie je ujawnia; workspace’y obsługują pliki lokalne, wpisy repo Git oraz zdalne mounts (S3, R2, GCS, Azure Blob, S3 Files); snapshoty są przenośne między dostawcami. Backendy: UnixLocalSandboxClient, DockerSandboxClient oraz klienci hostowani dla Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop i Vercel poprzez opcjonalne extras.24

Dla projektów Python, które chcą osadzić runtime Claude Code jako bibliotekę — pomiędzy „wywołaniem claude przez shell” a „REST API do Managed Agents” — claude-agent-sdk-python jest trzecią opcją. Seria z 28-29 kwietnia (v0.1.69 → v0.1.71) podniosła wbudowany CLI do v2.1.123, podniosła próg zależności mcp do >=1.19.0 (starsze wersje cicho odrzucały zwroty CallToolResult z narzędzi MCP in-process, pozostawiając modelowi blob błędu walidacji) oraz dostosowała SandboxNetworkConfig do parytetu schematu z TypeScript SDK (allowedDomains, deniedDomains, allowManagedDomainsOnly, allowMachLookup).30

Rozwidlenie architektoniczne jest teraz realne:

Wymiar Self-hosted harness (domyślny w tym przewodniku) Managed harness (Claude Managed Agents / OpenAI Agents SDK)
Obciążenie operacyjne Wszystko prowadzi się samodzielnie Vendor prowadzi pętlę, sandbox, stan
Personalizacja Całkowita — własne hooks, własne skills, własna pamięć Ograniczona — punkty rozszerzeń definiowane przez vendora
Model kosztów Token + self-hosted compute Token + premia za godzinę runtime
Trwałość stanu Projektuje się ją samodzielnie Vendor checkpointuje przez disconnects
Orkiestracja zespołów agentów Buduje się samodzielnie Koordynacja wieloagentowa dostarczana przez vendora

Kiedy wybrać które: self-hosted pozostaje słuszny dla zespołów, które już mają siłę infrastrukturalną, chcą skills/hooks pod własną kontrolą lub głęboko optymalizują konkretny workflow. Managed jest słuszny dla zespołów bez dedykowanych inżynierów platformy, gdy czas do wartości jest ważniejszy niż personalizacja, lub gdy uruchomienia agentów muszą niezawodnie przetrwać zamknięcie laptopa bez konieczności samodzielnego budowania warstwy persistencji. Oba podejścia są kompatybilne — można uruchomić self-hosted harness, który deleguje konkretne długo działające zadania do Managed Agents poprzez ich REST API.

Jak harness wygląda na dysku

~/.claude/
├── CLAUDE.md                    # Personal global instructions
├── settings.json                # User-level hooks and permissions
├── skills/                      # Personal skills (44+)
   ├── code-reviewer/SKILL.md
   ├── security-auditor/SKILL.md
   └── api-designer/SKILL.md
├── agents/                      # Custom subagent definitions
   ├── security-reviewer.md
   └── code-explorer.md
├── rules/                       # Categorized rule files
   ├── security.md
   ├── testing.md
   └── git-workflow.md
├── hooks/                       # Hook scripts
   ├── validate-bash.sh
   ├── auto-format.sh
   └── recursion-guard.sh
├── configs/                     # JSON configuration
   ├── recursion-limits.json
   └── deliberation-config.json
├── state/                       # Runtime state
   ├── recursion-depth.json
   └── agent-lineage.json
├── handoffs/                    # Session handoff documents
   └── deliberation-prd-7.md
└── projects/                    # Per-project memory
    └── {project}/memory/MEMORY.md

.claude/                         # Project-level (in repo)
├── CLAUDE.md                    # Project instructions
├── settings.json                # Project hooks
├── skills/                      # Team-shared skills
├── agents/                      # Team-shared agents
└── rules/                       # Project rules

Każdy plik w tej strukturze służy określonemu celowi. Drzewo ~/.claude/ to osobista infrastruktura, która ma zastosowanie do wszystkich projektów. Drzewo .claude/ w każdym repozytorium jest specyficzne dla projektu i współdzielone przez git. Razem tworzą kompletny harness.


System umiejętności

Umiejętności to rozszerzenia wywoływane przez model. Claude wykrywa je i stosuje automatycznie na podstawie kontekstu, bez konieczności jawnego wywoływania.4 W momencie, gdy zauważa Pan/Pani, że ponownie tłumaczy ten sam kontekst w kolejnych sesjach, należy zbudować umiejętność.

Kiedy budować umiejętność

Sytuacja Należy zbudować… Dlaczego
Wkleja Pan/Pani tę samą listę kontrolną w każdej sesji Umiejętność (Skill) Wiedza dziedzinowa aktywowana automatycznie
Uruchamia Pan/Pani jawnie tę samą sekwencję poleceń Polecenie ukośnikowe (Slash command) Akcja wywoływana przez użytkownika z przewidywalnym wyzwalaczem
Potrzebna jest izolowana analiza, która nie powinna zanieczyszczać kontekstu Subagent Oddzielne okno kontekstu dla skupionej pracy
Potrzebny jest jednorazowy prompt z konkretnymi instrukcjami Nic Wystarczy go po prostu wpisać. Nie wszystko wymaga abstrakcji.

Umiejętności służą wiedzy, którą Claude ma zawsze dostępną. Polecenia ukośnikowe służą akcjom, które uruchamia Pan/Pani jawnie. Decydując między nimi, warto zadać pytanie: „Czy Claude powinien stosować to automatycznie, czy też ja decyduję, kiedy to uruchomić?”

Tworzenie umiejętności

Umiejętności znajdują się w czterech możliwych lokalizacjach, od najszerszego do najwęższego zakresu:4

Zakres Lokalizacja Stosuje się do
Korporacyjny Zarządzane ustawienia Wszystkich użytkowników w organizacji
Osobisty ~/.claude/skills/<name>/SKILL.md Wszystkich Pana/Pani projektów
Projektowy .claude/skills/<name>/SKILL.md Tylko bieżącego projektu
Wtyczki <plugin>/skills/<name>/SKILL.md Tam, gdzie wtyczka jest włączona

Każda umiejętność wymaga pliku SKILL.md z nagłówkiem YAML:

---
name: code-reviewer
description: Review code for security vulnerabilities, performance issues,
  and best practice violations. Use when examining code changes, reviewing
  PRs, analyzing code quality, or when asked to review, audit, or check code.
allowed-tools: Read, Grep, Glob
---

# Code Review Expertise

## Security Checks
When reviewing code, verify:

### Input Validation
- All user input sanitized before database operations
- Parameterized queries (no string interpolation in SQL)
- Output encoding for rendered HTML content

### Authentication
- Session tokens validated on every protected endpoint
- Permission checks before data mutations
- No hardcoded credentials or API keys in source

Referencja pól nagłówka frontmatter

Pole Wymagane Cel
name Tak Unikalny identyfikator (małe litery, łączniki, maks. 64 znaki)
description Tak Wyzwalacz wykrywania (maks. 1024 znaki). Claude używa go, aby zdecydować, kiedy zastosować umiejętność
allowed-tools Nie Ogranicza możliwości Claude (np. Read, Grep, Glob dla trybu tylko-do-odczytu)
disable-model-invocation Nie Zapobiega autoaktywacji; umiejętność aktywuje się tylko poprzez /skill-name
user-invocable Nie Ustawienie false całkowicie ukrywa ją z menu /
model Nie Nadpisuje, którego modelu używać, gdy umiejętność jest aktywna
context Nie Ustawienie fork uruchamia ją w izolowanym oknie kontekstu
agent Nie Uruchamia jako subagent z własnym izolowanym kontekstem
hooks Nie Definiuje hooki cyklu życia ograniczone do tej umiejętności
$ARGUMENTS Nie Podstawienie ciągu znaków: zastępowane danymi wejściowymi użytkownika po /skill-name

Pole opisu jest wszystkim

Na początku sesji Claude Code wyodrębnia pola name i description każdej umiejętności i wstrzykuje je do kontekstu Claude. Gdy wysyła Pan/Pani wiadomość, Claude używa rozumowania modelu językowego, aby zdecydować, czy któraś z umiejętności jest istotna. Niezależna analiza kodu źródłowego Claude Code potwierdza ten mechanizm: opisy umiejętności są wstrzykiwane do sekcji available_skills promptu systemowego, a model używa standardowego rozumienia języka do wyboru istotnych umiejętności.10

Słaby opis:

description: Helps with code

Skuteczny opis:

description: Review code for security vulnerabilities, performance issues,
  and best practice violations. Use when examining code changes, reviewing
  PRs, analyzing code quality, or when asked to review, audit, or check code.

Skuteczny opis zawiera: co robi (przegląda kod pod kątem konkretnych typów problemów), kiedy go użyć (badanie zmian, PR-ów, analiza jakości) oraz frazy wyzwalające (review, audit, check), które użytkownicy naturalnie wpisują.

Budżet kontekstu

Wszystkie opisy umiejętności współdzielą budżet kontekstu, który skaluje się dynamicznie do 1% okna kontekstu, z wartością zapasową 8000 znaków.4 Przy wielu umiejętnościach należy utrzymywać każdy opis zwięzły i umieszczać kluczowy przypadek użycia na początku. Można nadpisać budżet poprzez zmienną środowiskową SLASH_COMMAND_TOOL_CHAR_BUDGET,11 lecz lepszym rozwiązaniem są krótsze, precyzyjniejsze opisy. Polecenie /context w trakcie sesji pozwala sprawdzić, czy jakieś umiejętności są wykluczane.

Pliki pomocnicze i organizacja

Umiejętności mogą odwoływać się do dodatkowych plików w tym samym folderze:

~/.claude/skills/code-reviewer/
├── SKILL.md                    # Required: frontmatter + core expertise
├── SECURITY_PATTERNS.md        # Referenced: detailed vulnerability patterns
└── PERFORMANCE_CHECKLIST.md    # Referenced: optimization guidelines

Należy odwoływać się do nich z SKILL.md za pomocą linków względnych. Claude czyta te pliki na żądanie, gdy umiejętność się aktywuje. Plik SKILL.md warto utrzymywać poniżej 500 linii, a szczegółowy materiał referencyjny przenosić do plików pomocniczych.12

Współdzielenie umiejętności przez Git

Umiejętności projektowe (.claude/skills/ w katalogu głównym repozytorium) są współdzielone poprzez kontrolę wersji:4

mkdir -p .claude/skills/domain-expert
# ... write SKILL.md ...
git add .claude/skills/
git commit -m "feat: add domain-expert skill for payment processing rules"
git push

Gdy współpracownicy zaktualizują repozytorium, otrzymują umiejętność automatycznie. Bez instalacji, bez konfiguracji. To najskuteczniejszy sposób ujednolicenia wiedzy w zespole.

Umiejętności jako biblioteka promptów

Poza umiejętnościami jednofunkcyjnymi struktura folderów działa jak zorganizowana biblioteka promptów:

~/.claude/skills/
├── code-reviewer/          # Activates on: review, audit, check
├── api-designer/           # Activates on: design API, endpoint, schema
├── sql-analyst/            # Activates on: query, database, migration
├── deploy-checker/         # Activates on: deploy, release, production
└── incident-responder/     # Activates on: error, failure, outage, debug

Każda umiejętność koduje inny aspekt Pana/Pani wiedzy specjalistycznej. Razem tworzą bazę wiedzy, z której Claude czerpie automatycznie na podstawie kontekstu. Mniej doświadczony programista otrzymuje wskazówki na poziomie seniora bez konieczności pytania.

Umiejętności komponują się z hookami

Umiejętności mogą definiować własne hooki w nagłówku frontmatter, które aktywują się tylko podczas działania umiejętności. Tworzy to zachowanie specyficzne dla dziedziny, które nie zanieczyszcza innych sesji:2

---
name: deploy-checker
description: Verify deployment readiness. Use when preparing to deploy,
  release, or push to production.
hooks:
  PreToolUse:
    - matcher: Bash
      hooks:
        - type: command
          command: "bash -c 'INPUT=$(cat); CMD=$(echo \"$INPUT\" | jq -r \".tool_input.command\"); if echo \"$CMD\" | grep -qE \"deploy|release|publish\"; then echo \"DEPLOYMENT COMMAND DETECTED. Running pre-flight checks.\" >&2; fi'"
---

Umiejętności filozoficzne aktywują się automatycznie poprzez hooki SessionStart, wstrzykując ograniczenia jakościowe do każdej sesji bez jawnego wywołania. Sama umiejętność stanowi wiedzę. Hook stanowi egzekwowanie. Razem tworzą warstwę polityki.

Częste błędy w umiejętnościach

Zbyt szerokie opisy. Umiejętność git-rebase-helper, która aktywuje się przy dowolnym promptcie związanym z gitem (rebase’y, merge’e, cherry-picki, a nawet git status), zanieczyszcza kontekst w 80% sesji. Rozwiązaniem jest albo zawężenie opisu, albo dodanie disable-model-invocation: true i wymaganie jawnego wywołania /skill-name.4

Zbyt wiele umiejętności konkurujących o budżet. Więcej umiejętności oznacza więcej opisów konkurujących o 1% budżetu kontekstu. Jeśli zauważa Pan/Pani, że umiejętności się nie aktywują, należy sprawdzić /context w poszukiwaniu wykluczonych. Lepiej priorytetowo traktować mniej, dobrze opisanych umiejętności niż wiele niejasnych.

Krytyczne informacje ukryte w plikach pomocniczych. Claude czyta SKILL.md natychmiast, lecz pliki pomocnicze otwiera dopiero w razie potrzeby. Jeśli krytyczna informacja znajduje się w pliku pomocniczym, Claude może jej nie znaleźć. Niezbędne informacje należy umieszczać bezpośrednio w SKILL.md.4

Powierzchnia umiejętności SDK (8 maja 2026)

Samodzielnie hostowane harness’y na claude-agent-sdk-python w wersji v0.1.77+ powinny używać opcji skills w ClaudeAgentOptions, aby deklarować dostępne umiejętności, a nie starszej wartości "Skill" w allowed_tools.37 Skrót "Skill" jest przestarzały, a dedykowana opcja dostarcza Claude Code bardziej ustrukturyzowanych informacji o tym, które umiejętności są dostępne. Dołączony CLI w wersji v0.1.77 to v2.1.133.


Architektura hooków

Hooki to polecenia powłoki uruchamiane przez zdarzenia cyklu życia Claude Code.3 Działają poza LLM jako zwykłe skrypty, a nie jako prompty interpretowane przez model. Model chce wykonać rm -rf /? 10-liniowy skrypt bash sprawdza polecenie względem listy blokowanych i odrzuca je, zanim powłoka cokolwiek zobaczy. Hook uruchamia się niezależnie od tego, czy model tego chce.

Dostępne zdarzenia

Claude Code udostępnia 29 udokumentowanych zdarzeń cyklu życia w ośmiu kategoriach na moment aktualizacji niniejszego przewodnika. Lista zdarzeń rośnie wraz z kolejnymi wydaniami, więc dokumentację referencyjną należy traktować jako źródło prawdy i przed podłączeniem produkcyjnych hooków warto sprawdzić aktualną pełną tabelę w ściądze:13

Kategoria Zdarzenia Czy może blokować?
Sesja SessionStart, Setup, SessionEnd Nie
Użytkownik / zakończenie UserPromptSubmit, UserPromptExpansion, Stop, StopFailure, TeammateIdle Prompt/expansion/stop/idle mogą blokować; StopFailure nie może
Narzędzia PreToolUse, PermissionRequest, PermissionDenied, PostToolUse, PostToolUseFailure, PostToolBatch Pre/permission/batch mogą blokować; zdarzenia post nie mogą
Subagent / zadanie SubagentStart, SubagentStop, TaskCreated, TaskCompleted Stop/task mogą blokować; start nie może
Kontekst PreCompact, PostCompact, InstructionsLoaded PreCompact może blokować; post/load nie mogą
System plików / przestrzeń robocza CwdChanged, FileChanged, WorktreeCreate, WorktreeRemove Tworzenie worktree może blokować; pozostałe nie
Konfiguracja / powiadomienia ConfigChange, Notification Zmiany konfiguracji mogą blokować z wyjątkiem ustawień zasad; powiadomienia nie mogą
MCP Elicitation, ElicitationResult Tak

Semantyka kodów wyjścia

Kody wyjścia decydują o tym, czy hooki blokują akcje:3

Kod wyjścia Znaczenie Działanie
0 Sukces Operacja jest kontynuowana. Stdout pokazywane w trybie verbose.
2 Błąd blokujący Operacja zostaje zatrzymana. Stderr staje się komunikatem błędu przekazywanym do Claude.
1, 3, itd. Błąd nieblokujący Operacja jest kontynuowana. Stderr pokazywane tylko w trybie verbose (Ctrl+O).

Krytyczna uwaga: Każdy hook bezpieczeństwa musi używać exit 2, a nie exit 1. Exit 1 to nieblokujące ostrzeżenie. Niebezpieczne polecenie i tak zostanie wykonane. Jest to najczęstszy błąd przy hookach w różnych zespołach.14

Konfiguracja hooków

Hooki znajdują się w plikach ustawień. Poziom projektu (.claude/settings.json) dla hooków współdzielonych. Poziom użytkownika (~/.claude/settings.json) dla hooków osobistych:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": ".claude/hooks/validate-bash.sh"
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "bash -c 'if [[ \"$FILE_PATH\" == *.py ]]; then black --quiet \"$FILE_PATH\" 2>/dev/null; fi'"
          }
        ]
      }
    ]
  }
}

Pole matcher filtruje wartość specyficzną dla zdarzenia. Dla zdarzeń narzędziowych dopasowuje wartości tool_name takie jak Bash, Edit, Write, Read, Glob, Grep, nazwy narzędzi MCP w stylu mcp__server__tool lub * dla wszystkich narzędzi. Proste nazwy oraz listy rozdzielone znakiem | to dopasowania dokładne; wartości z innymi znakami są traktowane jako wyrażenia regularne JavaScript. Niektóre zdarzenia nie obsługują matcherów i zawsze uruchamiają się, gdy są skonfigurowane.13

Protokół wejścia/wyjścia hooków

Hooki otrzymują JSON na stdin z pełnym kontekstem:

{
  "tool_name": "Bash",
  "tool_input": {
    "command": "npm test",
    "description": "Run test suite"
  },
  "session_id": "abc-123",
  "agent_id": "main",
  "agent_type": "main"
}

W celu zaawansowanej kontroli hooki PreToolUse mogą zwracać JSON, aby modyfikować dane wejściowe narzędzia, wstrzykiwać kontekst lub podejmować decyzje uprawnień. Należy używać opakowania hookSpecificOutput — starszy format najwyższego poziomu decision/reason jest przestarzały dla PreToolUse:

{
  "hookSpecificOutput": {
    "hookEventName": "PreToolUse",
    "permissionDecision": "allow",
    "permissionDecisionReason": "Command validated and modified",
    "updatedInput": {
      "command": "npm test -- --coverage --ci"
    },
    "additionalContext": "Note: This database has a 5-second query timeout."
  }
}

Trzy rodzaje gwarancji

Przed napisaniem jakiegokolwiek hooka warto zadać pytanie: jakiej gwarancji potrzebuję?14

Gwarancje formatowania zapewniają spójność po fakcie. Hooki PostToolUse na Write/Edit uruchamiają formater po każdej zmianie pliku. Wynik modelu nie ma znaczenia, ponieważ formater normalizuje wszystko.

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "bash -c 'if [[ \"$FILE_PATH\" == *.py ]]; then black --quiet \"$FILE_PATH\" 2>/dev/null; elif [[ \"$FILE_PATH\" == *.js ]] || [[ \"$FILE_PATH\" == *.ts ]]; then npx prettier --write \"$FILE_PATH\" 2>/dev/null; fi'"
          }
        ]
      }
    ]
  }
}

Gwarancje bezpieczeństwa zapobiegają niebezpiecznym akcjom przed ich wykonaniem. Hooki PreToolUse na Bash sprawdzają polecenia i blokują destrukcyjne wzorce z kodem wyjścia 2:

#!/bin/bash
# validate-bash.sh — block dangerous commands
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command')

if echo "$CMD" | grep -qE "rm\s+-rf\s+/|git\s+push\s+(-f|--force)\s+(origin\s+)?main|git\s+reset\s+--hard|DROP\s+TABLE"; then
    echo "BLOCKED: Dangerous command detected: $CMD" >&2
    exit 2
fi

Gwarancje jakości weryfikują stan w punktach decyzyjnych. Hooki PreToolUse na poleceniach git commit uruchamiają linter lub zestaw testów i blokują commit, jeśli kontrole jakości nie przejdą:

#!/bin/bash
# quality-gate.sh — lint before commit
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command')

if echo "$CMD" | grep -qE "^git\s+commit"; then
    if ! LINT_OUTPUT=$(ruff check . --select E,F,W 2>&1); then
        echo "LINT FAILED -- fix before committing:" >&2
        echo "$LINT_OUTPUT" >&2
        exit 2
    fi
fi

Typy hooków poza poleceniami powłoki

Claude Code obsługuje pięć typów hooków:13

Hooki poleceniowe (type: "command") uruchamiają skrypty powłoki. Szybkie, deterministyczne, bez kosztu tokenów.

Hooki narzędzi MCP (type: "mcp_tool") wywołują narzędzie na już połączonym serwerze MCP. Warto z nich korzystać, gdy logika walidacji jest już dostępna za granicą MCP i nie potrzebuje osobnego skryptu powłoki.

Hooki promptowe (type: "prompt") wysyłają jednoturową wiadomość do szybkiego modelu Claude. Model zwraca { "ok": true }, aby zezwolić, lub { "ok": false, "reason": "..." }, aby zablokować. Stosować do zniuansowanej oceny, której nie da się wyrazić wyrażeniami regularnymi.

Hooki agentowe (type: "agent") tworzą subagenta z dostępem do narzędzi (Read, Grep, Glob) w celu wieloturowej weryfikacji. Są eksperymentalne; do produkcyjnych bramek jakościowych lepiej preferować hooki poleceniowe, a hooki agentowe rezerwować dla kontroli, które naprawdę wymagają inspekcji rzeczywistych plików lub wyników testów:

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "agent",
            "prompt": "Verify all unit tests pass. Run the test suite and check results. $ARGUMENTS",
            "timeout": 120
          }
        ]
      }
    ]
  }
}

Hooki HTTP (type: "http") wysyłają JSON wejściowe zdarzenia jako żądanie POST na adres URL i odbierają JSON z powrotem. Stosować do webhooków, zewnętrznych usług powiadomień lub walidacji opartej na API (v2.1.63+). Niewspierane dla zdarzeń SessionStart:

{
  "hooks": {
    "PostToolUse": [
      {
        "hooks": [
          {
            "type": "http",
            "url": "https://your-webhook.example.com/hook",
            "headers": { "Authorization": "Bearer $WEBHOOK_TOKEN" },
            "allowedEnvVars": ["WEBHOOK_TOKEN"],
            "timeout": 10
          }
        ]
      }
    ]
  }
}

Hooki asynchroniczne

Hooki mogą działać w tle bez blokowania wykonywania. Należy dodać async: true dla niekrytycznych operacji, takich jak powiadomienia i logowanie:13

{
  "type": "command",
  "command": ".claude/hooks/notify-slack.sh",
  "async": true
}

Używać async dla powiadomień, telemetrii i kopii zapasowych. Nigdy nie używać async dla formatowania, walidacji ani niczego, co musi się zakończyć przed kolejną akcją.

Dispatchery zamiast niezależnych hooków

Uruchamianie siedmiu hooków jednocześnie wyzwalanych przez to samo zdarzenie, z których każdy odczytuje stdin niezależnie, tworzy sytuacje wyścigu. Dwa hooki zapisujące jednocześnie do tego samego pliku stanu JSON obetną JSON. Każdy kolejny hook parsujący ten plik się popsuje.2

Rozwiązanie: jeden dispatcher na zdarzenie, który uruchamia hooki sekwencyjnie ze stdin zachowanego w pamięci podręcznej:

#!/bin/bash
# dispatcher.sh — run hooks sequentially with cached stdin
INPUT=$(cat)
HOOK_DIR="$HOME/.claude/hooks/pre-tool-use.d"

for hook in "$HOOK_DIR"/*.sh; do
    [ -x "$hook" ] || continue
    echo "$INPUT" | "$hook"
    EXIT_CODE=$?
    if [ "$EXIT_CODE" -eq 2 ]; then
        exit 2  # Propagate block
    fi
done

Debugowanie hooków

Pięć technik debugowania hooków, które po cichu zawodzą:14

  1. Testowanie skryptów niezależnie. Przekazać przykładowy JSON: echo '{"tool_input":{"command":"git commit -m test"}}' | bash your-hook.sh
  2. Używanie stderr do wyjścia debugowego. Stderr przy kodzie wyjścia 2 jest przekazywane z powrotem do Claude jako komunikat błędu. Nieblokujące stderr (exit 1, 3, itp.) pojawia się tylko w trybie verbose (Ctrl+O).
  3. Uważać na błędy jq. Niewłaściwe ścieżki JSON zwracają po cichu null. Wyrażenia jq warto testować na rzeczywistym wejściu narzędzia.
  4. Weryfikowanie kodów wyjścia. Hook PreToolUse używający exit 1 nie zapewnia żadnego egzekwowania, choć z pozoru działa.
  5. Trzymanie hooków szybkimi. Hooki działają synchronicznie. Wszystkie hooki należy utrzymywać poniżej 2 sekund, najlepiej poniżej 500 ms.

Strumieniowanie zdarzeń hooków po stronie SDK

Samodzielnie hostowane harnessy zbudowane na claude-agent-sdk-python (v0.1.74+, 6 maja 2026) mogą subskrybować zdarzenia hooków bezpośrednio ze strumienia wiadomości, zamiast przechodzić przez wywołania zwrotne skryptów powłoki.36 Po ustawieniu include_hook_events=True na ClaudeAgentOptions obiekty HookEventMessage (PreToolUse, PostToolUse, Stop i inne) są emitowane przez ten sam iterator co wiadomości asystenta i wyniki narzędzi. Odpowiada to opcji includeHookEvents w SDK TypeScript; dołączony CLI został podniesiony do v2.1.129 w tym samym wydaniu.

Wzorzec strumienia zdarzeń jest właściwy, gdy harness mieści się już w Python i sygnały hooków mają być w tym samym przepływie sterowania, co wyjście modelu. Kontrakt skryptów powłoki dla hooków (kody wyjścia, stdin JSON, dispatchery) pozostaje właściwą odpowiedzią dla harnessów, które łączą wiele narzędzi, współdzielą hooki między Claude Code i Codex lub potrzebują semantyki kodów wyjścia do blokowania.

Pochodzenie nakładu i sesji (7-8 maja 2026)

Dwa dodatki w Claude Code v2.1.132 i v2.1.133 dają hookom i podprocesom lepszy sygnał o ich kontekście wykonania:3839

  • effort.level w danych wejściowych hooka. Hooki otrzymują teraz pole JSON effort.level w tym samym wejściu, które przenosi tool_input i session_id. Ta sama wartość jest eksportowana jako zmienna środowiskowa $CLAUDE_EFFORT, dzięki czemu polecenia Bash mogą ją odczytać bez parsowania JSON. Można tego użyć do skalowania kosztu hooka według poziomu nakładu: pominąć kosztowną walidację dla low, uruchomić pełną bramkę bezpieczeństwa dla xhigh lub max.
  • Zmienna środowiskowa CLAUDE_CODE_SESSION_ID w podprocesach Bash. Podprocesy narzędzia Bash widzą teraz tę samą wartość session_id, którą widzą hooki, udostępnioną jako CLAUDE_CODE_SESSION_ID. Zamyka to lukę proweniencji dla narzędzi, które logują stan na sesję i wcześniej nie mogły skorelować zdarzeń podprocesów ze zdarzeniami hooków.

Oba sygnały są dostępne bez zmian w kodzie; istniejące hooki ignorujące nowe pola działają nadal.

Pamięć i kontekst

Każda rozmowa z AI działa w ramach skończonego okna kontekstu. W miarę jak rozmowa rośnie, system kompresuje wcześniejsze tury, aby zrobić miejsce dla nowej zawartości. Kompresja jest stratna. Decyzje architektoniczne udokumentowane w turze 3 mogą nie przetrwać do tury 15.9

Trzy mechanizmy załamania w rozmowach wieloturowych

Badanie MSR/Salesforce zidentyfikowało trzy niezależne mechanizmy, z których każdy wymaga innej interwencji:9

Mechanizm Co się dzieje Interwencja
Kompresja kontekstu Wcześniejsze informacje są odrzucane, aby pomieścić nową zawartość Zapisywanie stanu w systemie plików
Utrata spójności rozumowania Model zaprzecza swoim wcześniejszym decyzjom w kolejnych turach Iteracja w świeżym kontekście (pętla Ralph)
Awaria koordynacji Wiele agentów posiada różne migawki stanu Protokoły współdzielonego stanu między agentami

Strategia 1: System plików jako pamięć

Najbardziej niezawodna pamięć przekraczająca granice kontekstu znajduje się w systemie plików. Claude Code czyta CLAUDE.md i pliki pamięci na początku każdej sesji oraz po każdej kompaktacji.6

~/.claude/
├── configs/           # 14 JSON configs (thresholds, rules, budgets)
│   ├── deliberation-config.json
│   ├── recursion-limits.json
│   └── consensus-profiles.json
├── hooks/             # 95 lifecycle event handlers
├── skills/            # 44 reusable knowledge modules
├── state/             # Runtime state (recursion depth, agent lineage)
├── handoffs/          # 49 multi-session context documents
├── docs/              # 40+ system documentation files
└── projects/          # Per-project memory directories
    └── {project}/memory/
        └── MEMORY.md  # Always loaded into context

Plik MEMORY.md rejestruje błędy, decyzje i wzorce we wszystkich sesjach. Gdy odkryje Pan/Pani, że ((VAR++)) zawodzi z set -e w bash, gdy VAR wynosi 0, należy to zapisać. Trzy sesje później, gdy napotka się podobny przypadek brzegowy z liczbami całkowitymi w Python, wpis w MEMORY.md ujawni ten wzorzec.15

Auto Memory (v2.1.32+): Claude Code automatycznie zapisuje i przypomina kontekst projektu. Podczas pracy Claude zapisuje obserwacje w ~/.claude/projects/{project-path}/memory/MEMORY.md. Auto memory ładuje pierwsze 200 linii do podpowiedzi systemowej na początku sesji. Warto utrzymywać ją zwięzłą i odsyłać do osobnych plików tematycznych zawierających szczegółowe notatki.6

Strategia 2: Proaktywna kompaktacja

Polecenie /compact w Claude Code podsumowuje rozmowę i zwalnia przestrzeń kontekstową, zachowując kluczowe decyzje, zawartość plików oraz stan zadań.15

Kiedy stosować kompaktację: - Po ukończeniu odrębnego podzadania (zaimplementowana funkcja, naprawiony błąd) - Przed rozpoczęciem pracy w nowym obszarze bazy kodu - Gdy Claude zaczyna się powtarzać lub zapominać wcześniejszy kontekst - Mniej więcej co 25-30 minut podczas intensywnych sesji

Niestandardowe instrukcje kompaktacji w CLAUDE.md:

# Summary Instructions
When using compact, focus on:
- Recent code changes
- Test results
- Architecture decisions made this session

Strategia 3: Przekazania między sesjami

W przypadku zadań obejmujących wiele sesji warto tworzyć dokumenty przekazania, które rejestrują pełny stan:

## Handoff: Deliberation Infrastructure PRD-7
**Status:** Hook wiring complete, 81 Python unit tests passing
**Files changed:** hooks/post-deliberation.sh, hooks/deliberation-pride-check.sh
**Decision:** Placed post-deliberation in PostToolUse:Task, pride-check in Stop
**Blocked:** Spawn budget model needs inheritance instead of depth increment
**Next:** PRD-8 integration tests in tests/test_deliberation_lib.py

Struktura Status/Files/Decision/Blocked/Next dostarcza kolejnej sesji pełnego kontekstu przy minimalnym koszcie tokenów. Rozpoczęcie nowej sesji za pomocą claude -c (kontynuacja) lub odczytanie dokumentu przekazania prowadzi prosto do implementacji.15

Strategia 4: Iteracja w świeżym kontekście (pętla Ralph)

Dla sesji przekraczających 60-90 minut warto uruchamiać świeżą instancję Claude na każdą iterację. Stan jest zachowywany w systemie plików, a nie w pamięci konwersacyjnej. Każda iteracja otrzymuje pełny budżet kontekstu:16

Iteration 1: [200K tokens] -> writes code, creates files, updates state
Iteration 2: [200K tokens] -> reads state from disk, continues
Iteration 3: [200K tokens] -> reads updated state, continues
...
Iteration N: [200K tokens] -> reads final state, verifies criteria

Dla porównania pojedyncza długa sesja:

Minute 0:   [200K tokens available] -> productive
Minute 30:  [150K tokens available] -> somewhat productive
Minute 60:  [100K tokens available] -> degraded
Minute 90:  [50K tokens available]  -> significantly degraded
Minute 120: [compressed, lossy]     -> errors accumulate

Podejście świeżego kontekstu na iterację wymienia 15-20% narzutu na krok orientacji (czytanie plików stanu, skanowanie historii git) w zamian za pełne zasoby poznawcze w każdej iteracji.16 Kalkulacja kosztów i korzyści: dla sesji poniżej 60 minut pojedyncza rozmowa jest bardziej efektywna. Powyżej 90 minut świeży kontekst daje wyższej jakości wyniki pomimo narzutu.

Strategia 5: Zarządzane kuratorowanie pamięci (Dreaming)

Anthropic’s Claude Managed Agents wprowadziło Dreaming jako Research Preview 6 maja 2026.35 Według Anthropic: „Dreaming to zaplanowany proces, który przegląda sesje agentów oraz magazyny pamięci, wyodrębnia wzorce i kuratoruje pamięć, dzięki czemu agenci doskonalą się w czasie.”35

Dreaming działa w tle pomiędzy sesjami, poza ścieżką krytyczną. Uzupełnia, a nie zastępuje wzorzec systemu plików jako pamięci: plik MEMORY.md pozostaje powierzchnią nośną; Dreaming zapisuje wyselekcjonowane wpisy pamięci do magazynu pamięci Managed Agents, który agent czyta na początku sesji. Oba wzorce współistnieją w przypadku harness’ów łączących stan systemu plików zarządzany samodzielnie z kuratorowaniem po stronie zarządzanej.

Pamięć w systemie plików Dreaming (zarządzane)
Gdzie znajduje się pamięć Pana/Pani repozytorium, pod kontrolą wersji Magazyn pamięci zarządzany przez Anthropic
Kiedy się aktualizuje Wpisy zapisuje się ręcznie lub przez hooki Proces w tle pomiędzy sesjami
Co rejestruje Decyzje, błędy, wzorce, które oznaczy się ręcznie Wzorce wyodrębnione z historii sesji
Najlepsze do Wiedzy instytucjonalnej specyficznej dla projektu Odkrywania międzysesyjnych wzorców, których nie wychwyci się ręcznie

Dreaming jest w fazie Research Preview, więc zachowanie może się zmienić. Wzorce session-handoffs i CLAUDE.md udokumentowane powyżej pozostają autorytatywnym mechanizmem pamięci dla harness’ów hostowanych samodzielnie.

Antywzorce

Czytanie całych plików, gdy potrzeba 10 linii. Pojedyncze odczytanie pliku liczącego 2000 linii zużywa 15 000-20 000 tokenów. Warto stosować przesunięcia linii: Read file.py offset=100 limit=20 oszczędza zdecydowaną większość tego kosztu.15

Trzymanie szczegółowych wyjść błędów w kontekście. Po debugowaniu błędu kontekst zawiera ponad 40 śladów stosu z nieudanych iteracji. Pojedyncze /compact po naprawie błędu uwalnia ten martwy ciężar.

Rozpoczynanie każdej sesji od czytania wszystkich plików. Należy pozwolić narzędziom glob i grep w Claude Code znajdować odpowiednie pliki na żądanie, oszczędzając ponad 100 000 tokenów niepotrzebnego wstępnego ładowania.15


Wzorce subagentów

Subagenty to wyspecjalizowane instancje Claude, które niezależnie obsługują złożone zadania. Rozpoczynają pracę z czystym kontekstem (bez zanieczyszczenia z głównej rozmowy), działają z określonymi narzędziami i zwracają wyniki w formie podsumowań. Wyniki eksploracji nie obciążają głównej rozmowy; zwracane są wyłącznie wnioski.5

Wbudowane typy subagentów

Typ Model Tryb Narzędzia Zastosowanie
Explore Haiku (szybki) Tylko do odczytu Glob, Grep, Read, bezpieczny bash Eksploracja bazy kodu, wyszukiwanie plików
General-purpose Dziedziczony Pełny odczyt/zapis Wszystkie dostępne Złożone badanie + modyfikacja
Plan Dziedziczony (lub Opus) Tylko do odczytu Read, Glob, Grep, Bash Planowanie przed wykonaniem

Tworzenie niestandardowych subagentów

Proszę zdefiniować subagenty w .claude/agents/ (projekt) lub ~/.claude/agents/ (osobiste):

---
name: security-reviewer
description: Expert security code reviewer. Use PROACTIVELY after any code
  changes to authentication, authorization, or data handling.
tools: Read, Grep, Glob, Bash
model: opus
permissionMode: plan
---

You are a senior security engineer reviewing code for vulnerabilities.

When invoked:
1. Identify the files that were recently changed
2. Analyze for OWASP Top 10 vulnerabilities
3. Check for secrets, hardcoded credentials, SQL injection
4. Report findings with severity levels and remediation steps

Focus on actionable security findings, not style issues.

Pola konfiguracyjne subagentów

Pole Wymagane Przeznaczenie
name Tak Unikalny identyfikator (małe litery + myślniki)
description Tak Kiedy wywoływać (proszę uwzględnić „PROACTIVELY”, aby zachęcić do automatycznej delegacji)
tools Nie Rozdzielone przecinkami. Dziedziczy wszystkie narzędzia, jeśli pominięte. Obsługuje Agent(agent_type) w celu ograniczenia możliwych do uruchomienia agentów
disallowedTools Nie Narzędzia do odrzucenia, usuwane z odziedziczonej lub określonej listy
model Nie sonnet, opus, haiku, inherit (domyślnie: inherit)
permissionMode Nie default, acceptEdits, delegate, dontAsk, bypassPermissions, plan
maxTurns Nie Maksymalna liczba tur agentowych, po których subagent się zatrzymuje
memory Nie Zakres pamięci trwałej: user, project, local
skills Nie Automatycznie ładuje zawartość skills do kontekstu subagenta przy starcie. Od v2.1.133 subagenty również wykrywają skills projektu, użytkownika i wtyczek poprzez narzędzie Skill w taki sam sposób jak sesja nadrzędna. Wcześniejsze wersje cicho usuwały je z kontekstu subagenta.39
hooks Nie Hooks cyklu życia ograniczone do wykonania tego subagenta
background Nie Zawsze uruchamiaj jako zadanie w tle
isolation Nie Ustawione na worktree dla izolowanej kopii git worktree

Izolacja worktree

Subagenty mogą działać w tymczasowych git worktrees, zapewniając kompletną, izolowaną kopię repozytorium:5

---
name: experimental-refactor
description: Attempt risky refactoring in isolation
isolation: worktree
tools: Read, Write, Edit, Bash, Grep, Glob
---

You have an isolated copy of the repository. Make changes freely.
If the refactoring succeeds, the changes can be merged back.
If it fails, the worktree is discarded with no impact on the main branch.

Izolacja worktree jest niezbędna w przypadku prac eksperymentalnych, które mogłyby zepsuć bazę kodu.

Równoległe subagenty

Równoległe subagenty warto wykorzystywać do niezależnych zadań badawczych, które nie wymagają wzajemnej koordynacji:5

> Have three explore agents search in parallel:
> 1. Authentication code
> 2. Database models
> 3. API routes

Każdy agent działa we własnym oknie kontekstu, znajduje istotny kod i zwraca podsumowanie. Główny kontekst pozostaje czysty.

Ochrona przed rekursją

Bez limitów uruchamiania agenty delegują pracę do agentów, którzy delegują do kolejnych agentów, a każdy z nich traci kontekst i marnuje tokeny. Wzorzec ochrony przed rekursją wymusza budżety:16

#!/bin/bash
# recursion-guard.sh — enforce spawn budget
CONFIG_FILE="${HOME}/.claude/configs/recursion-limits.json"
STATE_FILE="${HOME}/.claude/state/recursion-depth.json"

MAX_DEPTH=2
MAX_CHILDREN=5
DELIB_SPAWN_BUDGET=2
DELIB_MAX_AGENTS=12

# Read current depth
current_depth=$(jq -r '.depth // 0' "$STATE_FILE" 2>/dev/null)

if [[ "$current_depth" -ge "$MAX_DEPTH" ]]; then
    echo "BLOCKED: Maximum recursion depth ($MAX_DEPTH) reached" >&2
    exit 2
fi

# Increment depth using safe arithmetic (not ((VAR++)) with set -e)
new_depth=$((current_depth + 1))
jq --argjson d "$new_depth" '.depth = $d' "$STATE_FILE" > "${STATE_FILE}.tmp"
mv "${STATE_FILE}.tmp" "$STATE_FILE"

Kluczowa lekcja: Należy stosować budżety uruchamiania, a nie tylko limity głębokości. Limity oparte na głębokości śledzą łańcuchy rodzic-dziecko (blokowane na głębokości 3), ale pomijają szerokość: 23 agentów na głębokości 1 to wciąż „głębokość 1”. Budżet uruchamiania śledzi łączną liczbę aktywnych dzieci na rodzica, ograniczoną do konfigurowalnego maksimum. Model budżetu odpowiada rzeczywistemu trybowi awarii (zbyt wiele agentów łącznie), a nie metryce zastępczej (zbyt wiele poziomów zagnieżdżenia).7

Zespoły agentów (Research Preview)

Agent Teams koordynują wiele instancji Claude Code, które pracują niezależnie, komunikują się poprzez wspólną skrzynkę pocztową i listę zadań oraz mogą wzajemnie kwestionować swoje ustalenia:5

Komponent Rola
Team lead Główna sesja, która tworzy zespół, uruchamia członków zespołu i koordynuje pracę
Teammates Oddzielne instancje Claude Code pracujące nad przydzielonymi zadaniami
Lista zadań Wspólne pozycje pracy, które członkowie zespołu przejmują i realizują (zablokowane plikiem)
Skrzynka pocztowa System wiadomości do komunikacji między agentami

Włączenie poleceniem: export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

Kiedy stosować zespoły agentów, a kiedy subagenty:

Subagenty Zespoły agentów
Komunikacja Wyłącznie raportują wyniki Członkowie zespołu komunikują się ze sobą bezpośrednio
Koordynacja Główny agent zarządza całą pracą Wspólna lista zadań z samokoordynacją
Najlepsze do Skoncentrowanych zadań, w których liczy się tylko rezultat Złożonych prac wymagających dyskusji i współpracy
Koszt tokenów Niższy Wyższy (każdy członek zespołu = osobne okno kontekstu)

Orkiestracja wieloagentowa

Jednoagentowe systemy AI mają strukturalny martwy punkt: nie potrafią kwestionować własnych założeń.7 Wieloagentowa deliberacja wymusza niezależną ocenę z wielu perspektyw, zanim jakakolwiek decyzja zostanie zablokowana.

Orkiestracja międzynarzędziowa (kwiecień 2026): Google udostępnił Scion jako oprogramowanie open source 7 kwietnia — to wieloagentowy hipernadzorca uruchamiający Claude Code, Gemini CLI oraz inne „głębokie agenty” jako równoległe procesy, każdy z izolowanym kontenerem, git worktree i poświadczeniami. Działa lokalnie, w hubie lub na Kubernetes. Wyraźna filozofia: „izolacja zamiast ograniczeń” — agenty działają z wysoką autonomią w obrębie granic egzekwowanych na warstwie infrastruktury, a nie w promptach.25 Rozszerza to bezpośrednio argument o izolacji subagentów na różnych dostawców narzędzi. Jeśli przepływ pracy obejmuje Claude oraz modele OpenAI, Scion jest pierwszą realną referencyjną implementacją międzynarzędziowych subagentów z izolacją worktree i poświadczeń per-agent.

Debata nie jest cudownym lekiem: Klaster badawczy M3MAD-Bench (początek 2026) ustalił, że wieloagentowa debata osiąga plateau i może być podważana przez mylący konsensus — trafne argumenty przegrywają, gdy inne agenty z pewnością siebie twierdzą coś błędnego.26 Tool-MAD poprawia to, dając każdemu agentowi heterogeniczny dostęp do narzędzi i stosując oceny Faithfulness/Relevance na etapie sędziowskim. Przy budowie orkiestracji w stylu debaty warto zainwestować w (a) heterogeniczność narzędzi per agent oraz (b) ilościową punktację sędziowską, zamiast zakładać, że więcej agentów = lepsze odpowiedzi.

Zarządzana orkiestracja wieloagentowa i Outcomes (Public Beta)

Jeśli nie chce się budować infrastruktury deliberacji opisanej poniżej, Multiagent Orchestration weszła w fazę Public Beta w Claude Managed Agents 6 maja 2026.35 Według Anthropic: „Gdy pojedynczy agent ma zbyt dużo pracy do wykonania na wysokim poziomie, orkiestracja wieloagentowa pozwala wiodącemu agentowi podzielić zadanie na części i delegować każdą z nich do specjalisty z własnym modelem, promptem i narzędziami.”35 Specjaliści „pracują równolegle na współdzielonym systemie plików i wnoszą wkład do ogólnego kontekstu wiodącego agenta.”35

Śledzenie jest wbudowane. Według Anthropic: „można również prześledzić każdy krok w Claude Console: który agent co zrobił, w jakiej kolejności i dlaczego, co daje pełną widoczność tego, w jaki sposób zadanie zostało zdelegowane i wykonane.”35

Towarzyszącą funkcją Public Beta jest Outcomes. Według Anthropic: „pisze się rubrykę opisującą, jak wygląda sukces, a agent pracuje nad jej spełnieniem. Oddzielny oceniający (grader) ewaluuje wynik względem podanych kryteriów we własnym oknie kontekstowym, dzięki czemu nie jest pod wpływem rozumowania agenta.”35 To wersja zarządzana usługą wzorca walidacji dwubramkowej udokumentowanego w dalszej części tego rozdziału: rubryka zastępuje ręcznie napisaną bramkę, a oddzielny grader zastępuje walidator konsensusu.

Samodzielnie hostowana deliberacja (ten rozdział) Zarządzana Multiagent + Outcomes
Routing specjalistów Pisze się logikę spawnowania samodzielnie Wiodący agent dzieli zadanie na części
Walidacja Hooki dwubramkowe + punktacja konsensusu Rubryka + grader w oddzielnym kontekście
Śledzenie Trzeba je samodzielnie oprzyrządować Claude Console
Najlepsze do Wzorców wymagających pełnej kontroli lub konkretnej kompozycji narzędzi Standardowych wzorców delegowania, gdzie rubryka walidacyjna jest kontraktem
Cennik Tylko koszt tokenów + harness Standardowe tokeny plus stawka godziny sesyjnej Managed Agents (baza startowa z 8 kwietnia; zob. 23)

Samodzielnie hostowana deliberacja pozostaje właściwą odpowiedzią, gdy walidacja musi integrować się z własną powierzchnią hooków (blokowanie PreToolUse, semantyka kodu wyjścia, niestandardowe dispatchery) lub gdy harness musi działać bez zewnętrznych zależności. Managed Multiagent jest właściwą odpowiedzią, gdy standardowe delegowanie plus ocenianie według rubryki to faktycznie potrzebny kontrakt.

Minimalna sensowna deliberacja

Należy zacząć od 2 agentów i 1 reguły: agenty muszą oceniać niezależnie, zanim zobaczą wzajemną pracę.7

Decision arrives
  |
  v
Confidence check: is this risky, ambiguous, or irreversible?
  |
  +-- NO  -> Single agent decides (normal flow)
  |
  +-- YES -> Spawn 2 agents with different system prompts
             Agent A: "Argue FOR this approach"
             Agent B: "Argue AGAINST this approach"
             |
             v
             Compare findings
             |
             +-- Agreement with different reasoning -> Proceed
             +-- Genuine disagreement -> Investigate the conflict
             +-- Agreement with same reasoning -> Suspect herding

Ten wzorzec pokrywa 80% wartości. Wszystko inne dodaje stopniową poprawę.

Wyzwalacz pewności

Nie każde zadanie wymaga deliberacji. Moduł oceny pewności analizuje cztery wymiary:17

  1. Niejednoznaczność — Czy zapytanie ma wiele prawidłowych interpretacji?
  2. Złożoność dziedziny — Czy wymaga wyspecjalizowanej wiedzy?
  3. Stawka — Czy decyzja jest odwracalna?
  4. Zależność kontekstowa — Czy wymaga zrozumienia szerszego systemu?

Wynik mapuje się na trzy poziomy:

Poziom Próg Działanie
HIGH 0,85+ Kontynuacja bez deliberacji
MEDIUM 0,70–0,84 Kontynuacja z odnotowaną notatką o pewności
LOW Poniżej 0,70 Wyzwolenie pełnej deliberacji wieloagentowej

Próg dostosowuje się do typu zadania. Decyzje dotyczące bezpieczeństwa wymagają konsensusu 0,85. Zmiany w dokumentacji potrzebują jedynie 0,50. Zapobiega to nadmiernemu rozbudowywaniu prostych zadań, jednocześnie zapewniając, że ryzykowne decyzje zostaną dokładnie przeanalizowane.7

Maszyna stanów

Siedem faz, każda otwierana przez poprzednią:7

IDLE -> RESEARCH -> DELIBERATION -> RANKING -> PRD_GENERATION -> COMPLETE
                                                                    |
                                                              (or FAILED)

RESEARCH: Niezależne agenty badają temat. Każdy agent otrzymuje inną personę (Technical Architect, Security Analyst, Performance Engineer i inne). Izolacja kontekstu zapewnia, że agenty nie mogą widzieć wzajemnych ustaleń podczas badania.

DELIBERATION: Agenty widzą wszystkie ustalenia z badań i generują alternatywy. Agent Debate identyfikuje konflikty. Agent Synthesis łączy niesprzeczne ustalenia.

RANKING: Każdy agent ocenia każde proponowane podejście w 5 ważonych wymiarach:

Wymiar Waga
Impact 0,25
Quality 0,25
Feasibility 0,20
Reusability 0,15
Risk 0,15

Architektura walidacji dwubramkowej

Dwie bramki walidacyjne wychwytują problemy na różnych etapach:7

Bramka 1: Walidacja konsensusu (hook PostToolUse). Uruchamia się natychmiast po zakończeniu pracy każdego agenta deliberacji: 1. Faza musi osiągnąć co najmniej RANKING 2. Minimum 2 agenty zakończyły pracę (konfigurowalne) 3. Wynik konsensusu spełnia próg adaptacyjny dla zadania 4. Jeśli jakikolwiek agent zgłosił sprzeciw, obawy muszą być udokumentowane

Bramka 2: Pride Check (hook Stop). Uruchamia się przed zamknięciem sesji: 1. Zróżnicowane metody: reprezentowanych jest wiele unikalnych person 2. Przejrzystość sprzeczności: sprzeciwy mają udokumentowane powody 3. Obsługa złożoności: wygenerowano co najmniej 2 alternatywy 4. Pewność konsensusu: sklasyfikowana jako silna (powyżej 0,85) lub umiarkowana (0,70–0,84) 5. Dowody poprawy: końcowa pewność przewyższa pewność początkową

Dwa hooki w różnych punktach cyklu życia odpowiadają temu, jak rzeczywiście pojawiają się awarie: niektóre są natychmiastowe (zły wynik), a niektóre stopniowe (niska różnorodność, brak dokumentacji sprzeciwu).7

Dlaczego zgoda jest niebezpieczna

Charlan Nemeth badała sprzeciw mniejszości od 1986 roku aż po jej książkę z 2018 r. In Defense of Troublemakers. Grupy z dysydentami podejmują lepsze decyzje niż grupy szybko osiągające zgodę. Dysydent nie musi mieć racji. Sam akt sprzeciwu zmusza większość do zbadania założeń, które w innym przypadku zostałyby pominięte.18

Wu i in. zbadali, czy agenty LLM potrafią naprawdę debatować, i ustalili, że bez strukturalnych zachęt do nieporozumień agenty zbiegają się w kierunku najbardziej pewnie brzmiącej początkowej odpowiedzi, niezależnie od jej poprawności.19 Liang i in. zidentyfikowali źródłową przyczynę jako „Degeneration-of-Thought”: gdy LLM ustabilizuje pewność siebie w danej pozycji, autorefleksja nie potrafi wygenerować nowych kontrargumentów, co czyni wieloagentową ewaluację strukturalnie niezbędną.20

Niezależność jest krytycznym ograniczeniem projektowym. Dwa agenty oceniające tę samą strategię wdrożenia z widocznością wzajemnych ustaleń wygenerowały wyniki 0,45 i 0,48. Te same agenty bez widoczności: 0,45 i 0,72. Różnica między 0,48 a 0,72 to koszt zachowań stadnych.7

Wykrywanie fałszywej zgody

Moduł wykrywania konformizmu śledzi wzorce sugerujące, że agenty zgadzają się bez rzeczywistej oceny:7

Klastrowanie wyników: Każdy agent oceniający w przedziale 0,3 punktu w 10-stopniowej skali sygnalizuje skażenie wspólnym kontekstem, a nie niezależną ocenę. Gdy pięć agentów oceniających refaktoryzację uwierzytelniania ocenia ryzyko bezpieczeństwa w przedziale od 7,1 do 7,4, ponowne uruchomienie ze świeżą izolacją kontekstu rozłożyło wyniki na 5,8–8,9.

Szablonowy sprzeciw: Agenty kopiujące wzajemnie język obaw, zamiast generować niezależne zastrzeżenia.

Brak perspektyw mniejszościowych: Jednomyślna aprobata person o sprzecznych priorytetach (Security Analyst i Performance Engineer rzadko zgadzają się we wszystkim).

Detektor konformizmu wychwytuje oczywiste przypadki (mniej więcej 10–15% deliberacji, w których agenty zbiegają się zbyt szybko). Dla pozostałych 85–90% bramki konsensusu i pride check zapewniają wystarczającą walidację.

Co nie zadziałało w deliberacji

Swobodne rundy debaty. Trzy rundy wymiany tekstu wokół dyskusji o indeksowaniu bazy danych wyprodukowały 7 500 tokenów debaty. Runda 1: prawdziwa różnica zdań. Runda 2: powtórzone pozycje. Runda 3: identyczne argumenty innymi słowami. Strukturyzowana punktacja wymiarów zastąpiła swobodną debatę, obniżając koszt o 60% przy jednoczesnej poprawie jakości rankingu.7

Pojedyncza bramka walidacji. Pierwsza implementacja uruchamiała jeden hook walidacyjny na końcu sesji. Agent zakończył deliberację z wynikiem konsensusu 0,52 (poniżej progu), a następnie kontynuował niezwiązane zadania przez 20 minut, zanim hook końca sesji oznaczył awarię. Podział na dwie bramki (jedna na zakończenie zadania, druga na koniec sesji) wychwytywał te same problemy w różnych punktach cyklu życia.7

Koszt deliberacji

Każdy agent badawczy przetwarza około 5 000 tokenów kontekstu i generuje 2 000–3 000 tokenów ustaleń. Przy 3 agentach to 15 000–24 000 dodatkowych tokenów na decyzję. Przy 10 agentach mniej więcej 50 000–80 000 tokenów.7

Przy obecnych cenach Opusa 3-agentowa deliberacja kosztuje około 0,68–0,90 USD. 10-agentowa deliberacja kosztuje 2,25–3,00 USD. System wyzwala deliberację mniej więcej w 10% decyzji, więc zamortyzowany koszt wszystkich decyzji wynosi 0,23–0,30 USD na sesję. To, czy warto, zależy od tego, ile kosztuje zła decyzja.

Kiedy deliberować

Deliberować Pominąć
Architekturę bezpieczeństwa Literówki w dokumentacji
Projekt schematu bazy danych Zmiany nazw zmiennych
Zmiany kontraktu API Aktualizacje komunikatów logów
Strategie wdrożeniowe Przeformułowanie komentarzy
Aktualizacje zależności Aktualizacje fixture’ów testowych

Projektowanie pliku CLAUDE.md

CLAUDE.md to polityka operacyjna dla agenta AI, a nie README dla ludzi.21 Agent nie musi rozumieć, dlaczego stosuje się konwencjonalne commity. Musi wiedzieć, jakie dokładnie polecenie uruchomić i jak wygląda stan „ukończone”.

Hierarchia pierwszeństwa

Lokalizacja Zakres Współdzielone Zastosowanie
Zarządzane ustawienia korporacyjne Organizacja Wszyscy użytkownicy Standardy firmowe
./CLAUDE.md lub ./.claude/CLAUDE.md Projekt Przez git Kontekst zespołu
~/.claude/CLAUDE.md Użytkownik Wszystkie projekty Preferencje osobiste
./CLAUDE.local.md Lokalny w projekcie Nigdy Osobiste notatki projektowe
.claude/rules/*.md Reguły projektu Przez git Skategoryzowane polityki
~/.claude/rules/*.md Reguły użytkownika Wszystkie projekty Polityki osobiste

Pliki reguł ładują się automatycznie i dostarczają ustrukturyzowanego kontekstu bez zaśmiecania CLAUDE.md.6

Co zostaje zignorowane

Te wzorce niezawodnie nie wywołują żadnej zauważalnej zmiany w zachowaniu agenta:21

Akapity prozy bez poleceń. „Cenimy czysty, dobrze przetestowany kod” to dokumentacja, a nie operacje. Agent czyta to i przystępuje do pisania kodu bez testów, ponieważ brakuje wykonalnej instrukcji.

Niejednoznaczne dyrektywy. „Ostrożnie z migracjami bazy danych” nie stanowi ograniczenia. „Uruchom alembic check przed zastosowaniem migracji. Przerwij, jeśli brakuje ścieżki downgrade.” — owszem.

Sprzeczne priorytety. „Działaj szybko i szybko wdrażaj” plus „Zapewnij kompleksowe pokrycie testami” plus „Utrzymuj czas wykonania poniżej 5 minut” plus „Uruchamiaj pełne testy integracyjne przed każdym commitem.” Agent nie jest w stanie spełnić wszystkich czterech jednocześnie i domyślnie pomija weryfikację.21

Przewodniki stylu bez egzekwowania. „Stosuj Google Python Style Guide” bez ruff check --select D nie daje agentowi żadnego mechanizmu weryfikacji zgodności.

Co działa

Instrukcje zorientowane na polecenia:

## Build and Test Commands
- Install: `pip install -r requirements.txt`
- Lint: `ruff check . --fix`
- Format: `ruff format .`
- Test: `pytest -v --tb=short`
- Type check: `mypy app/ --strict`
- Full verify: `ruff check . && ruff format --check . && pytest -v`

Definicje zamknięcia:

## Definition of Done
A task is complete when ALL of the following pass:
1. `ruff check .` exits 0
2. `pytest -v` exits 0 with no failures
3. `mypy app/ --strict` exits 0
4. Changed files have been staged and committed
5. Commit message follows conventional format: `type(scope): description`

Sekcje uporządkowane według zadań:

## When Writing Code
- Run `ruff check .` after every file change
- Add type hints to all new functions

## When Reviewing Code
- Check for security issues: `bandit -r app/`
- Verify test coverage: `pytest --cov=app --cov-fail-under=80`

## When Releasing
- Update version in `pyproject.toml`
- Run full suite: `pytest -v && ruff check . && mypy app/`

Reguły eskalacji:

## When Blocked
- If tests fail after 3 attempts: stop and report the failing test with full output
- If a dependency is missing: check `requirements.txt` first, then ask
- Never: delete files to resolve errors, force push, or skip tests

Kolejność pisania

Rozpoczynając od zera, należy dodawać sekcje w następującej kolejności priorytetu:21

  1. Polecenia build i test (agent potrzebuje ich, zanim cokolwiek pożytecznego wykona)
  2. Definicja ukończenia (zapobiega fałszywym deklaracjom zakończenia)
  3. Reguły eskalacji (zapobiega destrukcyjnym obejściom)
  4. Sekcje uporządkowane według zadań (ogranicza parsowanie nieistotnych instrukcji)
  5. Określanie zakresu katalogów (monorepo: izoluje instrukcje poszczególnych usług)

Preferencje stylistyczne należy pominąć, dopóki pierwsze cztery elementy nie zaczną działać.

Importy plików

Odwołania do innych plików w obrębie CLAUDE.md:

See @README.md for project overview
Coding standards: @docs/STYLE_GUIDE.md
API documentation: @docs/API.md
Personal preferences: @~/.claude/preferences.md

Składnia importu: względna (@docs/file.md), bezwzględna (@/absolute/path.md) lub katalog domowy (@~/.claude/file.md). Maksymalna głębokość: 5 poziomów importów.6

Zgodność instrukcji między narzędziami

AGENTS.md to otwarty standard rozpoznawany przez każde poważniejsze narzędzie do kodowania AI.21 Jeżeli zespół korzysta z wielu narzędzi, warto pisać AGENTS.md jako kanoniczne źródło i odzwierciedlać odpowiednie sekcje w plikach specyficznych dla danego narzędzia:

Narzędzie Plik natywny Czyta AGENTS.md?
Codex CLI AGENTS.md Tak (natywnie)
Cursor .cursor/rules Tak (natywnie)
GitHub Copilot .github/copilot-instructions.md Tak (natywnie)
Amp AGENTS.md Tak (natywnie)
Windsurf .windsurfrules Tak (natywnie)
Claude Code CLAUDE.md Nie (odrębny format)

Wzorce z AGENTS.md (zorientowane na polecenia, z określoną definicją zamknięcia, uporządkowane wokół zadań) działają w każdym pliku instrukcji niezależnie od narzędzia. Nie należy utrzymywać równoległych zestawów instrukcji, które rozjeżdżają się w czasie. Trzeba pisać jedno autorytatywne źródło i je odzwierciedlać.

Uwagi dotyczące parytetu Codex

Codex dysponuje obecnie odpowiednikami pierwszej klasy dla głównych warstw harness, lecz migracja polega na tłumaczeniu wzorców, a nie na kopiowaniu plików. Codex czyta AGENTS.md przed rozpoczęciem pracy, nakładając wskazówki globalne z ~/.codex na instrukcje projektowe i instrukcje z zagnieżdżonych repozytoriów.31 Skille Codex korzystają z tego samego modelu mentalnego SKILL.md z progresywnym ujawnianiem: Codex zaczyna od nazwy skilla, opisu i ścieżki pliku, a pełen skill ładuje dopiero, gdy zdecyduje się go użyć.32 Codex posiada również natywne hooki, hooki dystrybuowane w pluginach, hooki zarządzane, wsparcie dla MCP oraz jawne przepływy pracy z subagentami.3334

Praktyczne mapowanie:

Warstwa harness Claude Code Odpowiednik w Codex Reguła migracji
CLAUDE.md / .claude/rules/ AGENTS.md / zagnieżdżony AGENTS.override.md Polecenia i reguły zakończenia trzymać kanonicznie; rozdzielać tylko wtedy, gdy zakres katalogu rzeczywiście się różni
.claude/skills/<name>/SKILL.md .agents/skills/<name>/SKILL.md lub skill z pluginu Przenosić wielokrotnie używane przepływy, ale przepisać opisy zgodnie z brzmieniem aktywacji i budżetem Codex
Hooki w .claude/settings.json config.toml Codex, hooki pluginów lub hooki wymagane przez zarządzane środowisko Najpierw przenieść deterministyczne bramki; każdy hook przetestować na rzeczywistych zdarzeniach narzędzi przed szerokim włączeniem
.claude/agents/*.md ~/.codex/agents/*.toml, .codex/agents/*.toml lub wbudowani worker / explorer Przenosić wyłącznie agentów o powtarzalnej wartości; preferować jawną delegację, ponieważ subagenci Codex są jawni
Pluginy Pluginy Codex Pluginy stosować jako jednostkę dystrybucji dopiero wtedy, gdy lokalne hooki i skille zostały sprawdzone

Istotna różnica: subagenci Claude mogą być wybierani automatycznie na podstawie opisów, podczas gdy Codex obecnie dokumentuje przepływy z subagentami jako jawne. Z tego powodu skille i hooki są właściwym domyślnym rozwiązaniem dla stałego zachowania harness w Codex; subagenci służą do celowej pracy równoległej, recenzji i eksploracji.

Testowanie własnych instrukcji

Warto zweryfikować, czy agent rzeczywiście czyta i stosuje się do instrukcji:

# Check active instructions
claude --print "What instructions are you following for this project?"

# Verify specific rules are active
claude --print "What is your definition of done?"

Test ostateczny: należy poprosić agenta o wyjaśnienie poleceń build. Jeżeli nie potrafi ich odtworzyć dosłownie, instrukcje są albo zbyt rozwlekłe (treść została wypchnięta poza kontekst), albo zbyt ogólne (agent nie potrafi z nich wyłuskać wykonalnych poleceń), albo nie zostały odnalezione. Analiza 2 500 repozytoriów wykonana przez GitHub wykazała, że to właśnie ogólnikowość jest przyczyną większości niepowodzeń.21


Wzorce produkcyjne

Wzorce długiego horyzontu Opus 4.7 (kwiecień 2026)

Claude Opus 4.7 (16 kwietnia 2026) został wydany ze specyficznymi możliwościami, które zmieniają to, przed czym musi się bronić harness:29

  • Odporność na awarie narzędzi: Opus 4.7 kontynuuje pracę pomimo awarii narzędzi, które wstrzymywały sesje Opus 4.6. Można ograniczyć — choć nie wyeliminować — defensywne wrappery z mechanizmem ponawiania w kodzie subagentów. Należy zachować zabezpieczenia na poziomie hooków; warto natomiast przyciąć rusztowanie w promptach typu „jeśli narzędzie zawiedzie, spróbuj trzy razy”.
  • Poziom wysiłku xhigh (tylko Opus-4.7): Mieści się pomiędzy high a max. Zalecany domyślny wybór dla kodowania i obciążeń agentowych. W długo działających subagentach xhigh znacząco przewyższa high przy podproporcjonalnym koszcie tokenów. max pozostaje właściwym wyborem dla pojedynczych trudnych zadań rozumowania; xhigh lepiej sprawdza się w zadaniach ciągłych.
  • Pułap budżetu tokenów: Konfigurowalny dla każdego uruchomienia agenta poprzez output_config.task_budget (nagłówek beta task-budgets-2026-03-13). Model widzi odliczanie i elegancko dostosowuje zakres pracy do budżetu, zamiast nagle wyczerpywać zasoby. Warto wykorzystać w pętlach agentowych, gdzie pożądane jest przewidywalne zużycie tokenów bez utraty jakości przy krótkich promptach.
  • Świadomość niejawnych potrzeb: Pierwszy model Claude, który przeszedł testy „niejawnych potrzeb” — rozpoznawanie, kiedy dosłowne żądanie użytkownika nie precyzuje w pełni tego, czego użytkownik faktycznie potrzebuje. Sprawia to, że sekcja „reguł doprecyzowujących” w CLAUDE.md staje się mniej potrzebna. Jeśli plik CLAUDE.md zawiera 200 wierszy zabezpieczeń typu „rozważ także X, gdy użytkownik prosi o Y”, warto wyciąć te, które są teraz obsługiwane natywnie.

Bazowe worktree, ścieżki sandboksa i ustawienia administracyjne (7 maja 2026)

Claude Code v2.1.133 dodaje cztery ustawienia poziomu administratora warte poznania w produkcyjnych harnessach:39

Ustawienie Wartości Co robi
worktree.baseRef fresh (domyślnie) | head Nowe worktree ponownie rozgałęziają się od origin/<default>. Zmiana domyślnego zachowania względem v2.1.128, która używała lokalnego HEAD. Należy ustawić worktree.baseRef: "head", jeśli zespół polega na dostępności niewypchniętych commitów w nowych worktree.
sandbox.bwrapPath ścieżka bezwzględna Przypina lokalizację binarki Bubblewrap na hostach Linux/WSL, gdzie nie znajduje się ona w $PATH lub gdzie dostarczana jest wersja wbudowana.
sandbox.socatPath ścieżka bezwzględna Ta sama idea dla binarki socat używanej przez sieć sandboksa.
parentSettingsBehavior 'first-wins' (domyślnie) | 'merge' Kontrola na poziomie administratora nad tym, jak SDK managedSettings komponują się z nadrzędnymi ustawieniami przedsiębiorstwa/zespołu. 'merge' pozwala sesji potomnej dziedziczyć i rozszerzać; 'first-wins' zachowuje autorytet ustawień nadrzędnych.

Zmiana w worktree.baseRef jest tą, którą warto zasygnalizować użytkownikom: agenci, którzy polegali na zachowaniu z v2.1.128-v2.1.132 (worktree rozgałęziające się od lokalnego HEAD), tracą dostęp do niewypchniętej pracy w świeżych worktree, chyba że ponownie się zdeklarują.

Pętla jakości

Obowiązkowy proces przeglądu dla wszystkich nietrywialnych zmian:

  1. Zaimplementuj - Napisz kod
  2. Zrecenzuj - Przeczytaj ponownie każdy wiersz. Wyłap literówki, błędy logiczne, niejasne fragmenty
  3. Oceń - Uruchom evidence gate. Sprawdź wzorce, przypadki brzegowe, pokrycie testami
  4. Dopracuj - Napraw każdy problem. Nigdy nie odkładaj „na później”
  5. Spojrzenie z dystansu - Sprawdź punkty integracji, importy, sąsiedni kod pod kątem regresji
  6. Powtórz - Jeśli którekolwiek kryterium evidence gate zawiedzie, wróć do kroku 4
  7. Raportuj - Wymień, co się zmieniło, jak zostało zweryfikowane, przytocz konkretne dowody

Evidence gate

„Sądzę” i „powinno” nie są dowodami. Należy przytaczać ścieżki plików, wyniki testów lub konkretny kod.

Kryterium Wymagany dowód
Stosuje wzorce kodu bazowego Wskaż wzorzec i plik, w którym istnieje
Najprostsze działające rozwiązanie Wyjaśnij, jakie prostsze alternatywy zostały odrzucone i dlaczego
Obsłużone przypadki brzegowe Wymień konkretne przypadki brzegowe i sposób obsługi każdego z nich
Testy przechodzą Wklej wynik testów pokazujący 0 niepowodzeń
Brak regresji Wskaż sprawdzone pliki/funkcje
Rozwiązuje rzeczywisty problem Określ potrzebę użytkownika i sposób, w jaki to rozwiązanie ją zaspokaja

Jeśli nie można przedstawić dowodów dla któregokolwiek wiersza, należy wrócić do kroku Dopracuj.22

Wzorce obsługi błędów

Atomowe zapisy plików. Wielu agentów zapisujących równocześnie do tego samego pliku stanu uszkadza JSON. Należy zapisywać do plików .tmp, a następnie wykonywać atomowe mv. System operacyjny gwarantuje, że mv jest atomowe w obrębie tego samego systemu plików.17

# Atomic state update
jq --argjson d "$new_depth" '.depth = $d' "$STATE_FILE" > "${STATE_FILE}.tmp"
mv "${STATE_FILE}.tmp" "$STATE_FILE"

Odzyskiwanie po uszkodzeniu stanu. Jeśli stan ulegnie uszkodzeniu, wzorzec odzyskiwania odtwarza go z bezpiecznych wartości domyślnych zamiast się zawiesić:16

if ! jq -e '.depth' "$RECURSION_STATE_FILE" &>/dev/null; then
    # Corrupted state file, recreate with safe defaults
    echo '{"depth": 0, "agent_id": "root", "parent_id": null}' > "$RECURSION_STATE_FILE"
    echo "- Recursion state recovered (was corrupted)"
fi

Pułapka ((VAR++)) w bashu. ((VAR++)) zwraca kod wyjścia 1, gdy VAR wynosi 0, ponieważ 0++ zostaje obliczone do 0, co bash traktuje jako fałsz. Przy włączonym set -e zabija to skrypt. Zamiast tego należy używać VAR=$((VAR + 1)).16

Klasyfikacja promienia rażenia

Każde działanie agenta należy klasyfikować według promienia rażenia i odpowiednio nakładać bramki:2

Klasyfikacja Przykłady Bramka
Lokalne Zapisy plików, uruchomienia testów, linting Automatyczna akceptacja
Współdzielone Commity git, tworzenie gałęzi Ostrzeż i kontynuuj
Zewnętrzne Git push, wywołania API, wdrożenia Wymagaj zatwierdzenia człowieka

Zdalne sterowanie (łączenie się z lokalnym Claude Code z dowolnej przeglądarki lub aplikacji mobilnej) zmienia bramkę „Zewnętrzne” z blokującego oczekiwania w asynchroniczne powiadomienie. Agent kontynuuje pracę nad następnym zadaniem, podczas gdy poprzednie jest sprawdzane z poziomu telefonu.2

Specyfikacja zadań dla uruchomień autonomicznych

Skuteczne zadania autonomiczne zawierają trzy elementy: cel, kryteria ukończenia oraz wskaźniki kontekstowe:16

OBJECTIVE: Implement multi-agent deliberation with consensus validation.

COMPLETION CRITERIA:
- All tests in tests/test_deliberation_lib.py pass (81 tests)
- post-deliberation.sh validates consensus above 70% threshold
- recursion-guard.sh enforces spawn budget (max 12 agents)
- No Python type errors (mypy clean)

CONTEXT:
- Follow patterns in lib/deliberation/state_machine.py
- Consensus thresholds in configs/deliberation-config.json
- Spawn budget model: agents inherit budget, not increment depth

Kryteria muszą być weryfikowalne maszynowo: zaliczenie/niezaliczenie testów, wynik lintera, kody statusu HTTP, sprawdzenia istnienia plików. Wczesne zadanie, które prosiło agenta o „napisanie testów, które przechodzą”, wyprodukowało assert True i assert 1 == 1. Technicznie poprawne. Praktycznie bezwartościowe.16

Jakość kryteriów Przykład Wynik
Niejasne „Testy przechodzą” Agent pisze trywialne testy
Mierzalne, ale niekompletne „Testy przechodzą I pokrycie >80%” Testy pokrywają wiersze, ale niczego sensownego nie testują
Wszechstronne „Wszystkie testy przechodzą I pokrycie >80% I brak błędów typów I czysty linter I każda klasa testów testuje odrębny moduł” Wynik o jakości produkcyjnej

Tryby awarii, na które należy zwracać uwagę

Tryb awarii Opis Zapobieganie
Spirala skrótów Pomijanie kroków pętli jakości w celu szybszego ukończenia Evidence gate wymaga dowodu dla każdego kryterium
Miraż pewności „Jestem pewien” bez przeprowadzenia weryfikacji Zakaz języka asekuracyjnego w raportach o ukończeniu
Fantomowa weryfikacja Twierdzenie, że testy przechodzą, bez ich uruchomienia w bieżącej sesji Hook Stop uruchamia testy niezależnie
Odroczony dług TODO/FIXME/HACK w zacommitowanym kodzie Hook PreToolUse na git commit skanuje diff
Zaśmiecanie systemu plików Ślepe artefakty z porzuconych iteracji Krok porządkujący w kryteriach ukończenia

Konkretny ślad sesji

Ślad sesji z autonomicznego uruchomienia przetwarzającego PRD z 5 historiami:2

  1. Uruchamia się SessionStart. Dispatcher wstrzykuje: bieżącą datę, wykrywanie projektu, ograniczenia filozoficzne, inicjalizację śledzenia kosztów. Pięć hooków, łącznie 180 ms.

  2. Agent czyta PRD i planuje pierwszą historię. Uruchamia się UserPromptSubmit. Dispatcher wstrzykuje: aktywny kontekst projektu, bazowy poziom dryfu sesji.

  3. Agent wywołuje Bash, aby uruchomić testy. Uruchamia się PreToolUse:Bash. Sprawdzanie poświadczeń, walidacja sandboksa, wykrywanie projektu. 90 ms. Testy się uruchamiają. Uruchamia się PostToolUse:Bash: rejestrowany jest puls aktywności, kontrola dryfu.

  4. Agent wywołuje Write, aby utworzyć plik. Uruchamia się PreToolUse:Write: sprawdzenie zakresu pliku. Uruchamia się PostToolUse:Write: kontrola lintera, śledzenie commitów.

  5. Agent kończy historię. Uruchamia się Stop. Bramka jakości sprawdza: czy agent przytoczył dowody? Język asekuracyjny? Komentarze TODO w diff-ie? Jeśli którakolwiek kontrola zawiedzie, kod wyjścia 2 i agent kontynuuje.

  6. Niezależna weryfikacja: Świeży agent uruchamia zestaw testów, nie ufając autoraportowi poprzedniego agenta.

  7. Trzech agentów przeglądu kodu uruchamia się równolegle. Każdy niezależnie recenzuje diff. Jeśli którykolwiek recenzent oznaczy CRITICAL, historia wraca do kolejki.

  8. Historia zaliczona. Ładuje się następna historia. Cykl powtarza się dla wszystkich 5 historii.

Łączna liczba hooków uruchomionych w 5 historiach: ~340. Łączny czas spędzony w hookach: ~12 sekund. Ten narzut zapobiegł trzem wyciekom poświadczeń, jednemu destrukcyjnemu poleceniu i dwóm niekompletnym implementacjom w jednym całonocnym uruchomieniu.

Studium przypadku: Całonocne przetwarzanie PRD

Produkcyjny harness przetworzył 12 PRD (47 historii) w trakcie 8 całonocnych sesji. Metryki porównują pierwsze 4 PRD (minimalny harness: tylko CLAUDE.md) z ostatnimi 8 (pełny harness: hooki, skille, bramki jakości, wieloagentowy przegląd).

Metryka Minimalny (4 PRD) Pełny harness (8 PRD) Zmiana
Wycieki poświadczeń 2 wyciekły do gita 7 zablokowanych przed commitem Reaktywne na zapobiegawcze
Destrukcyjne polecenia 1 force-push do main 4 zablokowane Egzekwowanie kodu wyjścia 2
Wskaźnik fałszywych ukończeń 35% nieudanych testów 4% Evidence gate + hook Stop
Rundy poprawek/historię 2,1 0,8 Skille + pętla jakości
Degradacja kontekstu 6 incydentów 1 incydent Pamięć systemu plików
Narzut tokenów 0% ~3,2% Pomijalny
Czas hooków/historię 0s ~2,4s Pomijalny

Dwa wycieki poświadczeń wymagały rotacji kluczy API i audytu usług zależnych: około 4 godzin reagowania na incydent. Narzut harnessa, który zapobiegł odpowiednikowi, wynosił 2,4 sekundy basha na historię. Wskaźnik fałszywych ukończeń spadł z 35% do 4%, ponieważ hook Stop niezależnie uruchamiał testy, zanim pozwolił agentowi zaraportować ukończenie.

Kwestie bezpieczeństwa

Pięć zasad godnych zaufania agentów (Anthropic, kwiecień 2026)

Anthropic opublikował 9 kwietnia 2026 roku formalne ramy dotyczące wiarygodności agentów.27 Pięć zasad jest zbieżnych — i rozszerza — koncepcję Evidence Gate przedstawioną w niniejszym przewodniku:

Zasada Co oznacza W jaki sposób ten harness ją spełnia
Kontrola człowieka Sensowna możliwość interwencji człowieka w każdym punkcie decyzyjnym Hooks bramkują wywołania narzędzi; blokowanie PreCompact; klasyfikator Auto Mode jako warstwa kontrolna
Zgodność z wartościami Działania agenta odzwierciedlają intencję użytkownika, a nie cele poboczne CLAUDE.md jako jawna specyfikacja intencji; skills jako mechanizm ograniczania zakresu możliwości
Bezpieczeństwo Odporność na adwersaryjne dane wejściowe oraz prompt injection Sandbox + reguły blokujące + walidacja danych wejściowych w warstwie hooks
Przejrzystość Audytowalne zapisy decyzji i działań Logowanie hooks; transkrypty sesji; ślady wywołań skills
Prywatność Odpowiednie przetwarzanie danych i mechanizmy nadzoru Czyszczenie zmiennych środowiskowych z poświadczeniami; wykrywanie sekretów w warstwie hooks

Anthropic przekazał także MCP na rzecz Agentic AI Foundation działającej w ramach Linux Foundation, dołączając tym samym do AGENTS.md (obecnie współzarządzanego z OpenAI, Google, Cursor, Factory, Sourcegraph). Standardy interoperacyjności agentów są obecnie niezależne od dostawcy.27

Narzędzia sandboxa dla skills: Dla zespołów traktujących skills jako powierzchnię ataku, SandyClaw firmy Permiso (wprowadzony 2 kwietnia 2026) uruchamia skills w dedykowanym sandboxie i dostarcza poparte dowodami werdykty pochodzące z detekcji Sigma/YARA/Nova/Snort. Pierwszy produkt w kategorii sandboxów dla skills.28

Sandbox

Claude Code obsługuje opcjonalny tryb sandbox (włączany za pośrednictwem settings.json lub polecenia /sandbox), który ogranicza dostęp do sieci oraz operacje na systemie plików, wykorzystując izolację na poziomie systemu operacyjnego (seatbelt na macOS, bubblewrap na Linuksie). Po włączeniu sandbox uniemożliwia modelowi wykonywanie dowolnych żądań sieciowych ani uzyskiwanie dostępu do plików spoza katalogu projektu. Bez sandboxingu Claude Code stosuje model oparty na uprawnieniach, w którym można zatwierdzać lub odrzucać poszczególne wywołania narzędzi.13

Granice uprawnień

System uprawnień bramkuje operacje na wielu poziomach:

Poziom Kontroluje Przykład
Uprawnienia narzędzi Które narzędzia mogą być używane Ograniczenie subagenta do Read, Grep, Glob
Uprawnienia plików Które pliki mogą być modyfikowane Blokada zapisu do .env, credentials.json
Uprawnienia poleceń Które polecenia bash mogą być uruchamiane Blokada rm -rf, git push --force
Uprawnienia sieciowe Które domeny są dostępne Lista dozwolonych dla połączeń serwera MCP

Obrona przed prompt injection

Skills i hooks zapewniają wielowarstwową obronę przed prompt injection:

Skills z ograniczeniami narzędzi uniemożliwiają skompromitowanemu promptowi uzyskanie uprawnień do zapisu:

allowed-tools: Read, Grep, Glob

Hooks PreToolUse walidują każde wywołanie narzędzia niezależnie od tego, w jaki sposób model został zachęcony do działania:

# Block credential file access regardless of prompt
if echo "$FILE_PATH" | grep -qE "\.(env|pem|key|credentials)$"; then
    echo "BLOCKED: Sensitive file access" >&2
    exit 2
fi

Izolacja subagentów ogranicza zasięg potencjalnych szkód. Subagent z permissionMode: plan nie może wprowadzać zmian, nawet jeśli jego prompt zostanie skompromitowany.

Bezpieczeństwo hooks

Hooks HTTP, które interpolują zmienne środowiskowe do nagłówków, wymagają jawnej listy allowedEnvVars, aby zapobiec dowolnemu wyciekowi zmiennych środowiskowych:13

{
  "type": "http",
  "url": "https://api.example.com/notify",
  "headers": {
    "Authorization": "Bearer $MY_TOKEN"
  },
  "allowedEnvVars": ["MY_TOKEN"]
}

Podział odpowiedzialności między człowiekiem a agentem

Bezpieczeństwo w architekturach agentowych wymaga jasnego rozgraniczenia odpowiedzialności człowieka i agenta:17

Odpowiedzialność człowieka Odpowiedzialność agenta
Definicja problemu Wykonanie pipeline’u
Progi ufności Wykonanie w ramach progów
Wymogi konsensusu Obliczenie konsensusu
Kryteria bramek jakości Egzekwowanie bramek jakości
Analiza błędów Wykrywanie błędów
Decyzje architektoniczne Opcje architektoniczne
Dostarczanie kontekstu domenowego Generowanie dokumentacji

Wzorzec ten polega na tym, że ludzie są odpowiedzialni za decyzje wymagające kontekstu organizacyjnego, oceny etycznej lub kierunku strategicznego. Agenci natomiast odpowiadają za decyzje wymagające obliczeniowego przeszukiwania dużych przestrzeni możliwości. Hooks egzekwują tę granicę.

Rekursywne egzekwowanie hooks

Hooks uruchamiają się także dla działań subagentów.13 Jeśli Claude uruchomi subagenta za pośrednictwem narzędzia Agent, hooks PreToolUse i PostToolUse zostaną wykonane dla każdego narzędzia, którego użyje subagent. Bez rekursywnego egzekwowania hooks subagent mógłby ominąć bramki bezpieczeństwa. Zdarzenie SubagentStop umożliwia uruchomienie czyszczenia lub walidacji w momencie zakończenia działania subagenta.

Nie jest to opcjonalne. Agent uruchamiający subagenta bez hooks zabezpieczających to agent, który może wykonać force push do main, odczytać pliki z poświadczeniami albo uruchomić destrukcyjne polecenia, podczas gdy bramki obserwują główną konwersację, w której nic się nie dzieje.

Koszt jako architektura

Koszt jest decyzją architektoniczną, a nie operacyjnym dodatkiem.2 Trzy poziomy:

Poziom tokenów. Kompresja system promptu. Należy usunąć przykłady kodu o charakterze instruktażowym (model zna APIs), połączyć zduplikowane reguły z różnych plików oraz zastąpić wyjaśnienia ograniczeniami. „Odrzucaj wywołania narzędzi pasujące do ścieżek wrażliwych” wykonuje tę samą pracę co 15-wierszowe wyjaśnienie, dlaczego nie należy odczytywać poświadczeń.

Poziom agenta. Świeże uruchomienia zamiast długich konwersacji. Każda historia w autonomicznym przebiegu otrzymuje nowego agenta z czystym kontekstem. Kontekst nigdy nie puchnie, ponieważ każdy agent zaczyna od zera. Briefing zamiast pamięci: modele lepiej wykonują jasny briefing niż nawigują przez 30 kroków nagromadzonego kontekstu.

Poziom architektury. Najpierw CLI, a dopiero potem MCP, gdy operacja jest bezstanowa. Wywołanie claude --print na potrzeby jednorazowej oceny jest tańsze i nie generuje narzutu związanego z połączeniem. MCP ma sens wtedy, gdy narzędzie wymaga trwałego stanu lub strumieniowania.


Ramy podejmowania decyzji

Kiedy stosować poszczególne mechanizmy:

Problem Zastosowanie Dlaczego
Formatowanie kodu po każdej edycji Hook PostToolUse Musi nastąpić za każdym razem, deterministycznie
Blokowanie niebezpiecznych poleceń bash Hook PreToolUse Musi blokować przed wykonaniem, kod wyjścia 2
Stosowanie wzorców przeglądu bezpieczeństwa Skill Wiedza domenowa, która aktywuje się automatycznie na podstawie kontekstu
Eksplorowanie bazy kodu bez zaśmiecania kontekstu Subagent Explore Izolowany kontekst, zwraca jedynie podsumowanie
Bezpieczne uruchamianie eksperymentalnego refaktoringu Subagent izolowany w worktree Zmiany można odrzucić, jeśli się nie powiodą
Przegląd kodu z wielu perspektyw Subagenty równoległe lub Agent Team Niezależna ocena pozwala uniknąć martwych punktów
Decydowanie o nieodwracalnej architekturze Wieloagentowa deliberacja Wyzwalacz pewności + walidacja konsensusu
Utrwalanie decyzji między sesjami MEMORY.md System plików przetrwa granice kontekstu
Współdzielenie standardów zespołowych Projektowy CLAUDE.md + .claude/rules/ Dystrybuowane przez git, ładowane automatycznie
Definiowanie poleceń build/test projektu CLAUDE.md Instrukcje zorientowane na polecenia, które agent może zweryfikować
Uruchamianie długich autonomicznych prac deweloperskich Pętla Ralph (iteracja w świeżym kontekście) Pełny budżet kontekstu na iterację, stan w systemie plików
Powiadamianie Slacka o zakończeniu sesji Asynchroniczny hook Stop Nieblokujący, nie spowalnia sesji
Walidacja jakości przed commitem Hook PreToolUse na git commit Blokada commita, jeśli lint/testy zawiodą
Egzekwowanie kryteriów ukończenia Hook Stop Zapobiega zatrzymaniu agenta przed wykonaniem zadania

Skills a hooks a subagenty

Wymiar Skills Hooks Subagenty
Wywołanie Automatyczne (rozumowanie LLM) Deterministyczne (sterowane zdarzeniami) Jawne lub automatycznie delegowane
Gwarancja Probabilistyczna (decyduje model) Deterministyczna (zawsze się uruchamia) Deterministyczna (izolowany kontekst)
Koszt kontekstowy Wstrzykiwane do głównego kontekstu Zerowy (działa poza LLM) Osobne okno kontekstu
Koszt tokenów Budżet opisu (2% okna) Zerowy Pełny kontekst na każdego subagenta
Najlepsze do Wiedza domenowa Egzekwowanie polityk Praca skoncentrowana, eksploracja

FAQ

Ile hooków to za dużo?

Ograniczeniem jest wydajność, nie liczba. Każdy hook działa synchronicznie, więc łączny czas wykonania hooków dolicza się do każdego dopasowanego wywołania narzędzia. 95 hooków rozłożonych pomiędzy ustawienia poziomu użytkownika i poziomu projektu działa bez zauważalnych opóźnień, gdy każdy hook kończy się w czasie poniżej 200 ms. Próg, na który warto zwrócić uwagę: jeśli hook PostToolUse dodaje ponad 500 ms do każdej edycji pliku, sesja sprawia wrażenie ociężałej. Przed wdrożeniem warto sprofilować hooki za pomocą time.14

Czy hooki mogą zablokować uruchomienie polecenia przez Claude Code?

Tak. Hooki PreToolUse blokują dowolną akcję narzędzia, kończąc się kodem wyjścia 2. Claude Code anuluje oczekującą akcję i pokazuje modelowi wyjście stderr hooka. Claude widzi powód odrzucenia i sugeruje bezpieczniejszą alternatywę. Kod wyjścia 1 to nieblokujące ostrzeżenie, w którym akcja i tak jest kontynuowana.3

Gdzie należy umieszczać pliki konfiguracji hooków?

Konfiguracje hooków trafiają do pliku .claude/settings.json w przypadku hooków poziomu projektu (zatwierdzanych w repozytorium, współdzielonych z zespołem) lub do ~/.claude/settings.json w przypadku hooków poziomu użytkownika (osobistych, stosowanych w każdym projekcie). Hooki poziomu projektu mają pierwszeństwo, gdy występują równocześnie. Aby uniknąć problemów z katalogiem roboczym, w plikach skryptów warto stosować ścieżki bezwzględne.14

Czy każda decyzja wymaga deliberacji?

Nie. Moduł oceny pewności punktuje decyzje w czterech wymiarach (niejednoznaczność, złożoność, stawka, zależność od kontekstu). Deliberację uruchamiają wyłącznie decyzje, których łączna pewność wynosi poniżej 0,70 — z grubsza 10% wszystkich decyzji. Poprawki w dokumentacji, zmiany nazw zmiennych i rutynowe edycje całkowicie pomijają deliberację. Architektura bezpieczeństwa, zmiany schematu bazy danych i nieodwracalne wdrożenia uruchamiają ją konsekwentnie.7

W jaki sposób przetestować system zaprojektowany do generowania niezgody?

Należy testować zarówno ścieżki sukcesu, jak i ścieżki niepowodzenia. Sukces: agenci produktywnie się nie zgadzają i osiągają konsensus. Niepowodzenie: agenci osiągają zbieżność zbyt szybko, nigdy jej nie osiągają lub przekraczają budżet uruchomień. Testy end-to-end symulują każdy scenariusz przy deterministycznych odpowiedziach agentów, weryfikując, że obie bramki walidacyjne wychwytują każdy udokumentowany tryb awarii. Produkcyjny system deliberacji uruchamia 141 testów w trzech warstwach: 48 testów integracyjnych w bashu, 81 testów jednostkowych Python oraz 12 symulacji potoku end-to-end.7

Jaki jest wpływ deliberacji na opóźnienia?

Deliberacja z udziałem 3 agentów dokłada 30–60 sekund czasu rzeczywistego (agenci działają sekwencyjnie poprzez Agent tool). Deliberacja z 10 agentami dodaje 2–4 minuty. Hooki konsensusu i pride check kończą się w czasie poniżej 200 ms każdy. Głównym wąskim gardłem jest czas inferencji LLM na agenta, a nie narzut orkiestracji.7

Jak długi powinien być plik CLAUDE.md?

Każdą sekcję warto utrzymać poniżej 50 linii, a cały plik poniżej 150 linii. Długie pliki są obcinane przez okna kontekstowe, dlatego najważniejsze instrukcje należy umieszczać na początku: polecenia i definicje zamknięć przed preferencjami stylistycznymi.21

Czy może to działać z narzędziami innymi niż Claude Code?

Zasady architektoniczne (hooki jako deterministyczne bramki, skills jako wiedza dziedzinowa, subagents jako odizolowane konteksty, system plików jako pamięć) pojęciowo dotyczą każdego systemu agentowego. Konkretna implementacja wykorzystuje zdarzenia cyklu życia, wzorce dopasowań i Agent tool z Claude Code. AGENTS.md przenosi te same wzorce do Codex, Cursor, Copilot, Amp i Windsurf.21 Wzorzec harness jest niezależny od narzędzia, nawet jeśli szczegóły implementacyjne są dla niego specyficzne.


Karta szybkiego odniesienia

Konfiguracja hooków

{
  "hooks": {
    "PreToolUse": [{"matcher": "Bash", "hooks": [{"type": "command", "command": "script.sh"}]}],
    "PostToolUse": [{"matcher": "Write|Edit", "hooks": [{"type": "command", "command": "format.sh"}]}],
    "Stop": [{"matcher": "", "hooks": [{"type": "agent", "prompt": "Verify tests pass. $ARGUMENTS"}]}],
    "SessionStart": [{"matcher": "", "hooks": [{"type": "command", "command": "setup.sh"}]}]
  }
}

Frontmatter skilla

---
name: my-skill
description: What it does and when to use it. Include trigger phrases.
allowed-tools: Read, Grep, Glob
---

Definicja subagenta

---
name: my-agent
description: When to invoke. Include PROACTIVELY for auto-delegation.
tools: Read, Grep, Glob, Bash
model: opus
permissionMode: plan
---

Instructions for the subagent.

Kody wyjścia

Kod Znaczenie Zastosowanie
0 Sukces Zezwolenie na operację
2 Blokada Bramki bezpieczeństwa, bramki jakości
1 Nieblokujące ostrzeżenie Logowanie, komunikaty doradcze

Kluczowe polecenia

Polecenie Przeznaczenie
/compact Kompresuje kontekst, zachowuje decyzje
/context Wyświetla alokację kontekstu i aktywne skills
/agents Zarządza subagentami
claude -c Kontynuuje ostatnią sesję
claude --print Jednorazowe wywołanie CLI (bez konwersacji)
# <note> Dodaje notatkę do pliku pamięci
/memory Wyświetla i zarządza pamięcią automatyczną

Lokalizacje plików

Ścieżka Przeznaczenie
~/.claude/CLAUDE.md Osobiste instrukcje globalne
.claude/CLAUDE.md Instrukcje projektu (współdzielone w git)
.claude/settings.json Hooki i uprawnienia projektu
~/.claude/settings.json Hooki i uprawnienia użytkownika
~/.claude/skills/<name>/SKILL.md Osobiste skills
.claude/skills/<name>/SKILL.md Skills projektu (współdzielone w git)
~/.claude/agents/<name>.md Osobiste definicje subagents
.claude/agents/<name>.md Definicje subagents projektu
.claude/rules/*.md Pliki reguł projektu
~/.claude/rules/*.md Pliki reguł użytkownika
~/.claude/projects/{path}/memory/MEMORY.md Pamięć automatyczna

Changelog

Data Zmiana
2026-05-08 Przewodnik v1.6: Kontynuacja Day-2 dotycząca Claude Code v2.1.132/v2.1.133 + SDK v0.1.77. Dodano podsekcję SDK Skill Surface w System Skills, omawiającą opcję skills w ClaudeAgentOptions oraz wycofanie "Skill" z allowed_tools.37 Dodano podsekcję Effort and Session Provenance w Hook Architecture, omawiającą nowe pole JSON effort.level + zmienną środowiskową $CLAUDE_EFFORT w danych wejściowych hooków oraz zmienną środowiskową CLAUDE_CODE_SESSION_ID w podprocesach Bash.3839 Dodano poprawkę wykrywania skills przez subagenty do tabeli Subagent Configuration Fields (subagenty wykrywają teraz skills na poziomie projektu, użytkownika i pluginów za pomocą narzędzia Skill, wcześniej milcząco pomijane przed v2.1.133).39 Dodano podsekcję Worktree Base, Sandbox Paths, and Admin Settings w Production Patterns, omawiającą worktree.baseRef (zmiana łamiąca domyślne ustawienie z powrotem do origin/<default> z lokalnego HEAD), sandbox.bwrapPath, sandbox.socatPath oraz parentSettingsBehavior.39
2026-05-07 Przewodnik v1.5: Claude Managed Agents, rozszerzenie SF z 6 maja. Dodano Strategię 5 (Managed Memory Curation: Dreaming, Research Preview) w Memory and Context z tabelą porównującą filesystem-as-memory ze strategią Dreaming.35 Dodano Managed Multiagent Orchestration (Public Beta) oraz Outcomes (Public Beta) na początku sekcji Multi-Agent Orchestration z dosłownymi cytatami Anthropic na temat specjalistów współdzielących system plików oraz śledzenia w Claude Console, wraz z tabelą porównawczą wobec self-hosted deliberation. Dodano podsekcję dotyczącą strumieniowania zdarzeń hooków po stronie SDK, omawiającą include_hook_events i HookEventMessage w claude-agent-sdk-python v0.1.74.36 Tylko changelog: Claude Code v2.1.124-v2.1.131 (claude project purge, --dangerously-skip-permissions dla katalogów projektu, invocation_trigger dla skill_activated, poprawka format-on-save w PostToolUse, poprawka blokowania PreToolUse JSON+exit-2, ustawienia skillOverrides); claude-agent-sdk-python v0.1.72 (CLI 2.1.126), v0.1.73 (session_store_flush), v0.1.75 (CLI 2.1.131), v0.1.76 (api_error_status); openai-agents-python v0.15.0-v0.16.1 z v0.16.0 (7 maja) ustawiającym domyślnie gpt-5.4-mini, usuwającym niejawny limit max_turns oraz dodającym współbieżność wykonywania narzędzi po stronie SDK.
2026-05-07 Przewodnik v1.4: Odświeżono mechanikę hooków i skills w Claude Code na podstawie aktualnej oficjalnej dokumentacji oraz lokalnych dowodów runtime (claude --version 2.1.132, codex --version zwróciło codex-cli 0.128.0). Zaktualizowano powierzchnię hooków z 22/26+ do 29 udokumentowanych zdarzeń, poprawiono budżet opisu skills z 2%/16 000 na 1%/8 000, zmieniono liczbę typów hooków z czterech na pięć z dodaniem mcp_tool, usunięto nieobsługiwane sztywne stwierdzenie o „10 równoległych subagentach” oraz dodano publicznie bezpieczną sekcję parytetu Codex obejmującą AGENTS.md, skills, hooki, pluginy i jawne workflow subagentów.
2026-04-29 Przewodnik v1.3: Rozszerzono pokrycie OpenAI Agents SDK w sekcji Managed vs. Self-Hosted Harnesses o nazwaną powierzchnię SDK z openai-agents Python v0.14.0 (15 kwietnia) — SandboxAgent, Manifest, SandboxRunConfig, sandbox memory z progressive disclosure, workspace mounts (S3/R2/GCS/Azure), portable snapshots oraz backendy klienckie local/Docker/hosted (Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, Vercel). Zastąpiono pomocniczy cytat z Help Net Security podstawowym cytatem z release notes v0.14.0. Dodano krótką notkę o claude-agent-sdk-python v0.1.69-v0.1.71 (28-29 kwietnia) jako trzeciej opcji self-hosted (osadzenie runtime Claude Code jako biblioteki Python): wbudowany Claude CLI podniesiono do v2.1.123, podniesiono dolny próg zależności mcp do >=1.19.0 (starsze wersje milcząco pomijały CallToolResult z narzędzi MCP in-process), poprawka anulowania nursery w Trio oraz parytet pola allowlist SandboxNetworkConfig z TS SDK. Udoskonalenia v0.14.7-v0.14.8 SDK udokumentowane w [^58].
2026-04-25 Przewodnik v1.2: Google Cloud Next 2026 (22-24 kwietnia) — Vertex AI zmieniono nazwę na Gemini Enterprise Agent Platform; Agentspace wchłonięto do ujednoliconego Gemini Enterprise; Workspace Studio (no-code agent builder); ponad 200 modeli w Model Garden, w tym Anthropic Claude; agenty partnerskie od Box, Workday, Salesforce, ServiceNow; stabilna ADK v1.0 w czterech językach; Project Mariner (agent przeglądający sieć); zarządzane serwery MCP z Apigee jako mostem API-to-agent; protokół A2A v1.0 w produkcji w 150 organizacjach. Microsoft Agent Framework 1.0 (kwiecień 2026): stabilne APIs, zobowiązanie LTS, pełne wsparcie MCP, .NET + Python. Przeglądarkowy DevUI, który wizualizuje wykonanie agenta i wywołania narzędzi w czasie rzeczywistym, dostępny jest jako preview obok stabilnej powierzchni 1.0. Salesforce Headless 360 (15 kwietnia, TDX): każda funkcjonalność Salesforce (CRM, obsługa, marketing, e-commerce) udostępniona jako narzędzie/CLI command API/MCP, dzięki czemu agenty takie jak Claude Code, Cursor i Codex mogą budować na platformie bez przeglądarki. (TDX 2026 odbyło się 15-16 kwietnia; ogłoszenie Headless 360 datowane jest na 15 kwietnia.) MetaComp StableX KYA (21 kwietnia): framework governance Know Your Agent dla regulowanych usług finansowych (płatności, compliance, zarządzanie majątkiem) — pierwszy tego typu od licencjonowanej instytucji finansowej; dostępny w Claude, Claude Code, OpenClaw oraz innych kompatybilnych platformach AI. Cennik Claude Managed Agents: 0,08 USD za godzinę sesji w trakcie jej trwania, bez opłat runtime w stanie bezczynności — niezależnie od standardowych stawek tokenowych modeli Claude. (Według strony cennika Claude od Anthropic; publiczna beta wystartowała 8 kwietnia 2026.) Memory for Managed Agents weszło w publiczną betę 23 kwietnia 2026 pod nagłówkiem beta managed-agents-2026-04-01. Wszystkie endpointy Managed Agents wymagają teraz tego nagłówka beta.
2026-04-16 Przewodnik v1.1: Dodano sekcję Managed vs. Self-Hosted Harnesses obejmującą Claude Managed Agents (beta z 8 kwietnia) oraz separację harness/compute w OpenAI Agents SDK (16 kwietnia). Dodano hipernadzorcę multi-agent cross-tool Scion (7 kwietnia, Google). Udokumentowano ustalenie M3MAD-Bench dotyczące plateau debaty. Dodano The Five Principles of Trustworthy Agents (Anthropic, 9 kwietnia) + governance MCP/AGENTS.md w Linux Foundation. Odniesienie do skill-sandbox Permiso SandyClaw. Nowe wzorce długoterminowe Opus 4.7: odporność na awarie narzędzi, poziom wysiłku xhigh, pułap budżetu tokenów (beta task_budget), świadomość niejawnych potrzeb redukująca rusztowanie CLAUDE.md.
2026-03-24 Pierwsza publikacja

Bibliografia


  1. Andrej Karpathy o „pazurach” jako nowej warstwie nad agentami LLM. Dyskusja na HN (406 punktów, 917 komentarzy). 

  2. Implementacja autora. 84 hooks, 48 skills, 19 agents, ~15 000 linii orkiestracji. Udokumentowane w Claude Code as Infrastructure

  3. Anthropic, „Claude Code Hooks: Exit Codes.” code.claude.com/docs/en/hooks. Kod wyjścia 0 zezwala, kod 2 blokuje, kod 1 ostrzega dla większości zdarzeń; WorktreeCreate jest bardziej restrykcyjny. 

  4. Anthropic, „Extend Claude with Skills.” code.claude.com/docs/en/skills. Struktura skills, pola frontmatter, dopasowywanie oparte na LLM oraz budżet 1% / 8000 znaków na opis. 

  5. Anthropic, „Claude Code Sub-agents.” code.claude.com/docs/en/sub-agents. Izolowany kontekst, obsługa worktree, zespoły agentów. 

  6. Anthropic, „Claude Code Documentation.” docs.anthropic.com/en/docs/claude-code. Pliki pamięci, CLAUDE.md, auto-memory. 

  7. System wieloagentowej deliberacji autora. 10 person badawczych, 7-fazowa maszyna stanów, 141 testów. Udokumentowane w Multi-Agent Deliberation

  8. Simon Willison, „Writing code is cheap now.” Agentic Engineering Patterns

  9. Laban, Philippe, et al., „LLMs Get Lost In Multi-Turn Conversation,” arXiv:2505.06120, maj 2025. Microsoft Research i Salesforce. 15 LLM, ponad 200 000 konwersacji, średni spadek wydajności o 39%. 

  10. Mikhail Shilkov, „Inside Claude Code Skills: Structure, Prompts, Invocation.” mikhail.io. Niezależna analiza wykrywania skills, wstrzykiwania kontekstu i sekcji promptu available_skills

  11. Kod źródłowy Claude Code, SLASH_COMMAND_TOOL_CHAR_BUDGET. github.com/anthropics/claude-code

  12. Anthropic, „Skill Authoring Best Practices.” platform.claude.com. Limit 500 linii, pliki pomocnicze, konwencje nazewnictwa. 

  13. Anthropic, „Claude Code Hooks: Lifecycle Events.” code.claude.com/docs/en/hooks. 29 udokumentowanych zdarzeń cyklu życia, typy hooks, zachowanie matcherów, asynchroniczne hooks, HTTP hooks, prompt hooks, agent hooks oraz hooks narzędzi MCP. 

  14. Tutorial autora dotyczący Claude Code hooks. 5 produkcyjnych hooks od podstaw. Udokumentowane w Claude Code Hooks Tutorial

  15. Zarządzanie oknem kontekstu autora w 50 sesjach. Udokumentowane w Context Window Management

  16. Implementacja Ralph Loop autora. Iteracja w świeżym kontekście ze stanem w systemie plików, budżety spawnowania. Udokumentowane w The Ralph Loop

  17. Architektura systemu deliberacji autora. 3500 linii Python, 12 modułów, wyzwalacz pewności, walidacja konsensusu. Udokumentowane w Building AI Systems: From RAG to Agents

  18. Nemeth, Charlan, In Defense of Troublemakers: The Power of Dissent in Life and Business, Basic Books, 2018. 

  19. Wu, H., Li, Z., and Li, L., „Can LLM Agents Really Debate?” arXiv:2511.07784, 2025. 

  20. Liang, T. et al., „Encouraging Divergent Thinking in Large Language Models through Multi-Agent Debate,” EMNLP 2024

  21. Analiza autora plików AGENTS.md w rzeczywistych repozytoriach. Udokumentowana w AGENTS.md Patterns. Zobacz także: Blog GitHub, „How to Write a Great agents.md: Lessons from Over 2,500 Repositories.” 

  22. Metodyka quality loop i evidence gate autora. Część systemu Jiro Craftsmanship. 

  23. Anthropic, „Claude Managed Agents Overview”. Publiczna wersja beta uruchomiona 8 kwietnia 2026. Harness-as-a-service z checkpointowaniem sesji, wbudowanym sandboxem, REST API. Cennik: standardowe tokeny + 0,08 USD/godzinę sesji. Nagłówek beta managed-agents-2026-04-01

  24. OpenAI, „Notatki o wydaniu openai-agents Python v0.14.0”. Wydane 15 kwietnia 2026; ogłoszenie ukazało się 16 kwietnia. Wprowadza powierzchnię SDK Sandbox Agents jako warstwę beta nad istniejącym przepływem Agent / Runner: SandboxAgent, Manifest (kontrakt obszaru roboczego), SandboxRunConfig, capabilities (shell, edycja systemu plików, inspekcja obrazów, skills, sandbox memory, kompakcja), montowanie obszarów roboczych (lokalne, Git, zdalne: S3, R2, GCS, Azure Blob, S3 Files), przenośne migawki z normalizacją ścieżek i zachowaniem dowiązań symbolicznych oraz serializację stanu uruchomienia umożliwiającą wznowienie. Backendy: UnixLocalSandboxClient, DockerSandboxClient oraz hostowani klienci dla Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, Vercel za pośrednictwem opcjonalnych dodatków. Ogłoszenie z 16 kwietnia podsumowane w Help Net Security

  25. Google Cloud, „Scion: Multi-Agent Hypervisor”. Otwarte źródło 7 kwietnia 2026. Orkiestruje Claude Code, Gemini CLI i innych deep agents jako izolowane procesy z dedykowanym kontenerem, git worktree i poświadczeniami na agenta. Tryby wdrożenia: lokalny/hub/Kubernetes. Relacja InfoQ

  26. Klaster badawczy debat wieloagentowych, Q1–Q2 2026. Wu et al., „Can LLM Agents Really Debate?” (arXiv 2511.07784); M3MAD-Bench — benchmark debat wielomodelowych i wieloagentowych pokazujący plateau wydajności i podatność na mylący konsensus; Tool-MAD — heterogeniczne przypisanie narzędzi na agenta + oceny sędziego Faithfulness/Relevance. 

  27. Anthropic, „Our framework for developing safe and trustworthy agents”. 9 kwietnia 2026. Pięć zasad: kontrola człowieka, zgodność z wartościami, bezpieczeństwo, przejrzystość, prywatność. Darowizna MCP na rzecz Agentic AI Foundation Linux Foundation. 

  28. Permiso Security, „SandyClaw: First Dynamic Sandbox for AI Agent Skills”. 2 kwietnia 2026. Sandbox wykonawczy skills z detekcją Sigma/YARA/Nova/Snort i werdyktami popartymi dowodami. 

  29. Anthropic, „Introducing Claude Opus 4.7”. 16 kwietnia 2026. Usprawnienia agentów dla zadań długoterminowych: 3-krotna poprawa rozwiązywania zadań produkcyjnych SWE-Bench w stosunku do Opus 4.6, odporność na awarie narzędzi, poziom intensywności xhigh, budżety zadań (beta), świadomość ukrytych potrzeb. Zobacz także What’s new in Opus 4.7 dla zmian łamiących kompatybilność w Messages API. 

  30. Złożone odniesienie — OpenAI openai-agents-python v0.14.7 (28 kwietnia 2026) i v0.14.8 (29 kwietnia 2026); Anthropic claude-agent-sdk-python v0.1.69 (28 kwietnia), v0.1.70 (28 kwietnia) oraz v0.1.71 (29 kwietnia). Najważniejsze elementy v0.14.7: właściwości pomocnicze tool_name/call_id w elementach narzędzi, podniesiony limit tur konsolidacji pamięci Phase 2, aliasy GPT-5.5 dla kompakcji w sandboxie, zaostrzona walidacja członków tar/zip, odrzucanie dowiązań symbolicznych w źródłach LocalFile, usuwanie nieustawionych pól z wywołań Responses API. Najważniejsze elementy v0.14.8: zachowywanie błędów importu re-exportów MCP, rozdzielanie sekcji instrukcji promptu sandboxa. claude-agent-sdk-python v0.1.69 dodało docstringi do pól ClaudeAgentOptions i podniosło wbudowany CLI do v2.1.121; v0.1.70 podniosło dolną granicę zależności mcp do >=1.19.0 (starsze wersje cicho odrzucały zwroty CallToolResult z procesowych handlerów narzędzi MCP), naprawiło uszkodzenie nursery Trio przy wczesnym anulowaniu podczas iteracji query() z ustawionym options.stderr (spawn_detached() jest teraz używane dla czytnika stderr) oraz podniosło wbudowany CLI do v2.1.122; v0.1.71 dodało pola allowlisty domen (allowedDomains, deniedDomains, allowManagedDomainsOnly, allowMachLookup) do SandboxNetworkConfig w celu zachowania parytetu ze schematem TypeScript oraz podniosło wbudowany CLI do v2.1.123. 

  31. OpenAI, „Custom instructions with AGENTS.md”. Codex odczytuje globalne i projektowe pliki AGENTS.md / AGENTS.override.md przed pracą, łączy wskazówki od katalogu głównego do bieżącego oraz ogranicza dokumenty projektowe parametrem project_doc_max_bytes

  32. OpenAI, „Agent Skills”. Codex skills używają SKILL.md, progresywnego ujawniania, jawnego wywołania $skill oraz domyślnej aktywacji na podstawie opisów. 

  33. OpenAI, „Codex Hooks”. Codex hooks obsługują command hooks w konfiguracji, plugin hooks, managed hooks, matchery dla wspieranych zdarzeń, wejście stdin JSON oraz pola wyjściowe JSON. 

  34. OpenAI, „Codex Subagents” i „Changelog Codex CLI 0.128.0”. Codex obsługuje jawne równoległe przepływy subagentów, wbudowanych agentów default, worker i explorer, niestandardowych agentów TOML, dziedziczoną politykę sandboxa, hooks dołączane do pluginów, stan włączenia hooks oraz utrwalone przepływy /goal w wersji 0.128.0. 

  35. Anthropic, „New in Claude Managed Agents”. 6 maja 2026. Dreaming (Research Preview): zaplanowany proces w tle, który przegląda sesje agentów i magazyny pamięci, wyodrębnia wzorce i kuratoruje wspomnienia. Outcomes (Public Beta): ocena oparta na rubryce, w której odrębny grader ocenia wynik względem rubryki we własnym oknie kontekstu, dzięki czemu nie podlega wpływowi rozumowania agenta. Multiagent Orchestration (Public Beta): agent prowadzący deleguje fragmenty zadania specjalistom, z których każdy ma własny model, prompt i narzędzia; specjaliści pracują równolegle na współdzielonym systemie plików i wnoszą wkład w ogólny kontekst agenta prowadzącego, z pełnym śledzeniem każdego kroku w Claude Console. 

  36. Anthropic, claude-agent-sdk-python v0.1.74. 6 maja 2026. Dodaje include_hook_events do ClaudeAgentOptions; gdy ustawione, zdarzenia hooks (PreToolUse, PostToolUse, Stop, inne) są emitowane przez CLI i zwracane ze strumienia wiadomości jako HookEventMessage, odzwierciedlając includeHookEvents z SDK TypeScript. Wbudowany Claude CLI podniesiony do v2.1.129. 

  37. Anthropic, claude-agent-sdk-python v0.1.77. 8 maja 2026. Wycofuje wartość "Skill" w allowed_tools na rzecz dedykowanej opcji skills w ClaudeAgentOptions, dostarcza Claude Code bardziej ustrukturyzowany sygnał o dostępnych skills, ulepsza komunikaty błędów dla wyjątków Command failed oraz dołącza Claude CLI v2.1.133. 

  38. Anthropic, Claude Code v2.1.132. 6 maja 2026. Dodaje zmienną środowiskową CLAUDE_CODE_SESSION_ID w podprocesach narzędzia Bash (zgodną z session_id widzianym już przez hooks), CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN aby zachować konwersację w natywnym scrollbacku, odświeżony banner startowy /tui fullscreen (mniejsze zużycie pamięci, obsługa myszy, automatyczne kopiowanie przy zaznaczeniu) oraz około dwadzieścia poprawek błędów obejmujących łagodne zamykanie SIGINT, uszkodzenie --resume przez surogatne emoji, flagę --permission-mode w trybie planowania, obsługę kursora dla pisma indyjskiego i ZWJ, operacje vim w NFD, połykanie wklejenia rozpoczynającego się od /, nieograniczone zużycie pamięci MCP, ponawianie tools/list MCP, błąd 400 ENABLE_PROMPT_CACHING_1H w Bedrock + Vertex oraz wyświetlanie skumulowanej liczby tokenów w context_window w statusline. 

  39. Anthropic, Claude Code v2.1.133. 7 maja 2026. Hooks otrzymują teraz effort.level jako wejście JSON + zmienną środowiskową $CLAUDE_EFFORT (czytelną także z poleceń Bash). Subagenty wykrywają projektowe, użytkownika i pluginowe skills za pośrednictwem narzędzia Skill (poprawka regresji). Nowe ustawienia administracyjne: worktree.baseRef (fresh | head) przywraca bazę worktree z powrotem do origin/<default> po przejściu z v2.1.128 na lokalny HEAD; sandbox.bwrapPath i sandbox.socatPath przypinają binaria sandboxa na Linux/WSL; parentSettingsBehavior ('first-wins' | 'merge') kontroluje sposób, w jaki SDK managedSettings komponuje się z ustawieniami nadrzędnymi. Inne poprawki: wyścig 401-po-odświeżeniu-tokenu w sesjach równoległych, zakres reguły zezwoleń dla katalogu głównego dysku, obsługa proxy/mTLS dla MCP OAuth, dokończenie cancel przy stop/interrupt w Remote Control, wyciekanie /effort między sesjami, wymienienie --remote-control w --help

NORMAL agent-architecture.md EOF