Claude Code: 7 warstw zabezpieczeń i architektura, która automatyzuje pracę programisty

Lead: Claude Code redefiniuje tworzenie oprogramowania, przechodząc od prostego uzupełniania kodu do w pełni agentycznej pętli sterowania zintegrowanej z terminalem. Implementacja sześciowarstwowej architektury opartej na protokole MCP i rygorystycznym systemie uprawnień pozwala na bezpieczną automatyzację edycji plików oraz testów, co bezpośrednio przekłada się na redukcję długu technicznego i przyspieszenie cyklu wydawniczego.

Architektura Claude Code: model versus harness

Claude Code to terminalowe narzędzie agentyczne oparte na sześciowarstwowej architekturze, gdzie model Claude pełni rolę „mózgu”, a lokalny harness zbudowany na środowisku Bun odpowiada za egzekucję narzędzi. System oddziela rozumowanie od wykonania poprzez protokół tool_use, co zapobiega bezpośredniemu dostępowi AI do systemu operacyjnego bez pośrednictwa bezpiecznych warstw kontrolnych, takich jak system uprawnień i filtry wejściowe.

  • Warstwy systemu: Architektura składa się z warstw: wejściowej (Input), wiedzy (Knowledge), wykonawczej (Execution), integracyjnej (Integration), multi-agentycznej oraz warstwy obserwacyjnej (Observability).
  • Separacja logiczna: Zaledwie 1,6% kodu Claude Code to logika decyzyjna AI; pozostałe 98,4% stanowi deterministyczna infrastruktura operacyjna zarządzająca wywołaniami narzędzi.
  • Środowisko uruchomieniowe: Narzędzie działa jako binarny plik CLI wykorzystujący Bun, co zapewnia natywne wsparcie dla TypeScript i szybkie przetwarzanie potoków danych.
  • Model komunikacji: Claude Code komunikuje się z modelem w chmurze (Claude 3.5 Sonnet lub Claude 3.7 Sonnet), przekazując opisy dostępnych narzędzi lokalnych jako ustrukturyzowane schematy JSON.

Pętla agentyczna w praktyce: od promptu do weryfikacji

Pętla agentyczna Claude Code opiera się na iteracyjnym procesie zbierania kontekstu, podejmowania akcji przez narzędzia (Tools) i weryfikacji wyników przed zakończeniem zadania. Każda tura to cykl ReAct, w którym model analizuje stan środowiska, generuje wywołania narzędzi (np. Bash, Read, Edit), a następnie otrzymuje wynik ich działania z powrotem do kontekstu, co pozwala na automatyczną korektę błędów.

  • Fazy pętli: System pracuje w trzech fazach: zbieranie kontekstu, podjęcie akcji (np. edycja kodu lub uruchomienie komendy) oraz weryfikacja wyników (np. testy jednostkowe).
  • Mechanizm turn-based: Każda interakcja modelu wymagająca użycia narzędzia jest traktowana jako jedna tura; pętla trwa do momentu, gdy model wygeneruje odpowiedź tekstową bez żądań tool_use.
  • Weryfikacja autonomiczna: Claude Code potrafi samodzielnie analizować błędy kompilacji lub testów, decydując o kolejnych poprawkach bez ingerencji człowieka, aż do osiągnięcia celu.
  • Interwencja ludzka: Użytkownik może w dowolnym momencie przerwać pętlę, skorygować kierunek działania modelu lub dostarczyć dodatkowy kontekst.

Bezpieczeństwo i autoryzacja: protokół deny-first

Bezpieczeństwo Claude Code realizowane jest przez model „deny-first”, w którym każda operacja domyślnie wymaga zgody użytkownika lub przejścia przez siedem niezależnych warstw autoryzacji. System obsługuje siedem trybów uprawnień, w tym plan, acceptEdits oraz auto, wykorzystując klasyfikator ML (YOLO) do oceny bezpieczeństwa wywołań powłoki Bash oraz izolację w piaskownicach systemowych dla komend o wysokim ryzyku.

  • Tryby uprawnień: Najważniejsze to `plan` (tylko odczyt), `default` (pytanie o każdą edycję/komendę), `acceptEdits` (auto-akceptacja edycji plików) oraz `bypassPermissions` (pełna autonomia, zalecana tylko w kontenerach).
  • Warstwy ochronne: Proces autoryzacji obejmuje pre-filtrowanie narzędzi, reguły deny (zawsze nadrzędne wobec allow), klasyfikator ML oraz opcjonalny sandbox dla Bash/PowerShell.
  • Trwałość sesji: Uprawnienia nadane w danej sesji nie są przenoszone przy wznowieniu sesji (`–resume`), co wymusza ponowną weryfikację zaufania w nowym kontekście.
  • Ochrona przed Windows PATH hijacking: Plik `main.tsx` inicjuje zabezpieczenia zapobiegające przejęciu ścieżek systemowych w systemie Windows.

Zarządzanie pamięcią i oknem kontekstowym

Zarządzanie oknem kontekstowym w Claude Code wykorzystuje pięciostopniowy potok kompresji (Compaction Pipeline), aby utrzymać wydajność przy limitach tokenów sięgających 200k lub więcej. Proces obejmuje redukcję budżetu wyników narzędzi, trimowanie historii (Snip), mikrokompresję świadomą pamięci podręcznej, wirtualną projekcję historii (Context Collapse) oraz generowanie automatycznych podsumowań przez model, co pozwala na zachowanie istotnych faktów przy jednoczesnym zwalnianiu miejsca.

  • Hierarchia instrukcji: System ładuje instrukcje z plików `CLAUDE.md` na czterech poziomach: zarządzanym (OS), użytkownika, projektu oraz lokalnym (gitignore), co pozwala na precyzyjne definiowanie konwencji kodowania.
  • Auto-pamięć: Narzędzie automatycznie zapisuje kluczowe wzorce i preferencje użytkownika w pliku `MEMORY.md`, który jest ładowany na początku każdej sesji.
  • Strategie oszczędności: Schematy narzędzi MCP są ładowane leniwie (na żądanie), a subagenci zwracają jedynie krótkie streszczenia swojej pracy, co drastycznie redukuje zużycie tokenów w głównej sesji.
  • Prompt caching: Stabilne fragmenty kontekstu (system prompt, definicje narzędzi, `CLAUDE.md`) są automatycznie keszowane, co redukuje koszty API o około 90%.

Rozszerzalność: MCP, pluginy i subagenci

Możliwości Claude Code można rozszerzać za pomocą Model Context Protocol (MCP), który pozwala na integrację z zewnętrznymi bazami danych, API czy systemami plików w sposób ustandaryzowany. System wspiera również pluginy, umiejętności (Skills) oraz haki (Hooks), które pozwalają na przechwytywanie zdarzeń w pętli agentycznej i modyfikowanie zachowania narzędzia bez ingerencji w jego rdzeń.

  • Model Context Protocol (MCP): Umożliwia bezpieczne połączenie Claude z lokalnymi zasobami (np. Postgres, system plików) poprzez piaskownicę i ustandaryzowane API (read_file, list_directory).
  • Subagenci: Za pomocą narzędzia `Agent` (lub `Task`) Claude może sprawnie delegować zadania do wyspecjalizowanych procesów potomnych (np. Explore, Plan), które działają w izolacji i nie obciążają głównego okna kontekstowego.
  • Haki (Hooks): System definiuje 27 typów zdarzeń (np. `PreToolUse`, `PostToolUse`), które mogą blokować, modyfikować lub logować akcje agenta w czasie rzeczywistym.
  • Zapis sesji: Transkrypcje rozmów są przechowywane lokalnie w formacie JSONL, co umożliwia operacje takie jak `rewind` (cofnięcie zmian), `fork` (rozgałęzienie sesji) czy `resume`.

Wnioski praktyczne

  • Konfiguracja bezpieczeństwa: W środowiskach produkcyjnych należy unikać trybu `bypassPermissions`, preferując `acceptEdits` w połączeniu z jawną listą dozwolonych komend w `settings.json` (np. `npm test`).
  • Optymalizacja kontekstu: Kluczowe reguły projektowe należy umieszczać w `CLAUDE.md`, a nie w promptach, ponieważ pliki te są ponownie wstrzykiwane po każdej operacji kompresji (compaction).
  • Zarządzanie kosztami: Korzystanie z subagentów do eksploracji dużej bazy kodu jest tańsze niż praca w jednej sesji, dzięki mechanizmowi zwracania wyłącznie streszczeń (summaries).
  • Monitoring i audyt: Każda operacja narzędzia jest logowana w formacie JSONL, co pozwala na pełny audyt działań AI i odtworzenie ścieżki decyzyjnej w przypadku awarii.
Przemysław Majdak

Przemysław Majdak · AI Automation Engineer

Założyciel Baluarte i wydawca BitBiz.pl. Członek ISSA Polska. Ekspert z 18-letnim stażem w branży IT — wdraża bezpieczne automatyzacje AI, systemy full-stack i zaawansowane procedury cyberbezpieczeństwa dla firm. Wszystkie artykuły autora →

Jedna odpowiedź

💬 Kliknij tutaj, aby dodać komentarz

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

  1. Awatar KasiaZpodlasia
    KasiaZpodlasia

    Implementacja sześciowarstwowej architektury z protokołem MCP to krok w stronę rzeczywistej agentyczności w DevOps — szczególnie ciekawi mnie, jak rygorystyczny system uprawnień wpływa na faktyczne tempo redukcji długu technicznego w porównaniu do tradycyjnych narzędzi CI/CD. Czy w Waszym zespole widzicie realną wartość w przesunięciu odpowiedzialności za testy i edycję plików na warstwę agentów, czy to tylko kolejna obietnica automatyzacji bez pokrycia w codziennej pracy?