course
To nie jest zupełnie nowy pomysł. Programiści od lat budowali wrappery, szkielety i środowiska wykonawcze wokół modeli. Termin spopularyzował się po tym, jak Mitchell Hashimoto, współzałożyciel HashiCorp, użył w lutym 2026 w poście na blogu określenia „harness engineering”, opisując swój przepływ pracy z AI. Jego teza była prosta: kiedy agent popełni błąd, zmień środowisko tak, by ten błąd nie mógł się powtórzyć. OpenAI przyjęło ten termin w tym samym tygodniu dla swojej pracy nad Codex, a LangChain poszedł w ślad za tym sposobem ramowania.
W tym artykule wyjaśnię, czym jest agent harness, dlaczego agenci AI go potrzebują, czym różni się od frameworków i runtime’ów oraz jakich narzędzi używają programiści do budowy systemów tego typu.
Czym jest agent harness?
Jedna z definicji pochodzi z LangChain: „Jeśli nie jesteś modelem, jesteś uprzężą (harness)”. W praktyce agent harness to oprogramowanie wokół modelu językowego: narzędzia, pamięć, stan, wykonywanie, zabezpieczenia i obserwowalność.
Agent = Model + Harness
Model rozumuje. Harness daje temu rozumowaniu miejsce do działania, zapamiętywania, sprawdzania wyników i przestrzegania reguł.

Model wewnątrz działającego agent harness. Ilustracja autora.
To przydatny wzorzec myślowy, ale nie standard branżowy. Niektórzy dostawcy wciąż używają „harness”, „framework” i „scaffold” mniej więcej zamiennie.
Dlaczego agenci AI potrzebują harnessu
Surowy model językowy ma ograniczenia przy zadaniach wieloetapowych. Sam z siebie nie utrzymuje trwałego stanu, nie uruchamia narzędzi, nie zarządza rosnącym kontekstem ani nie odzyskuje sprawności po nieudanych wywołaniach narzędzi bez wsparcia.

Wyobraź sobie agenta poproszonego o naprawę padającego testu w projekcie Pythona. Bez harnessu model może napisać coś, co wygląda na poprawkę, ale nie przeczyta faktycznego pliku testu, nie uruchomi pytesta, nie zobaczy prawdziwego błędu, nie edytuje psującej funkcji ani nie potwierdzi, że poprawka przechodzi. Z harness’em cała ta pętla staje się kilkuminutową pracą, którą agent wykonuje sam, a każdy krok jest zapisany do wglądu człowieka.
Wskazówki Anthropic wciąż obowiązują: zacznij od najprostszego podejścia i dodawaj elementy tylko wtedy, gdy zadanie ich potrzebuje.
Z czego składa się agent harness
Elementy się różnią, ale większość dzieli kilka wspólnych klocków. Traktuj je jak listę kontrolną, nie sztywną specyfikację produktu. Mały agent może potrzebować tylko kilku części, produkcyjny — więcej.
Wskazówki systemowe i reguły zachowania
Harness zwykle kontroluje bazowe instrukcje modelu. Obejmuje to prompt systemowy, ale też reguły projektu, standardy kodowania, ograniczenia ról i polityki bezpieczeństwa. W Deep Agents LangChain na przykład plik AGENTS.md może ustalać zasady gry przed startem zadania.
Niektóre harnessy w 2026 stosują też progresywne ujawnianie instrukcji. Zamiast ładować na starcie pełne opisy narzędzi, harness dodaje tylko podsumowanie dostępnych opcji. Pełne instrukcje narzędzia ładowane są dopiero, gdy model go potrzebuje.
Narzędzia: jak agenci wchodzą w interakcję ze światem
Narzędzia pozwalają agentowi robić więcej niż tylko generować tekst. Typowe przykłady to wyszukiwanie w sieci, odczyt i zapis plików, zapytania do baz danych, wywołania API, akcje w przeglądarce, wykonywanie kodu i komendy terminala. Harness kontroluje, które narzędzia są dostępne, kiedy model może je wywołać oraz jak formatowane i zwracane są wyniki do kontekstu agenta.
Model Context Protocol (MCP) stał się w 2026 standardowym interfejsem w tym obszarze. Wiele harnessów, w tym Anthropic Agent SDK, LangChain Deep Agents i OpenAI Agents SDK, używa MCP do łączenia zewnętrznych serwerów narzędzi bez pisania niestandardowych integracji dla każdego z nich.
Pamięć i stan
Agenci muszą wiedzieć, co stało się wcześniej w zadaniu. Harness może utrzymywać stan krótkoterminowy w aktywnej rozmowie, a długoterminowy w plikach, logach, podsumowaniach lub zapisanych preferencjach. Niektóre harnessy kompresują też długie historie do krótszych streszczeń, by model nie musiał nosić w kontekście każdego szczegółu.
Środowisko wykonawcze: gdzie agent działa i wykonuje zadania
Wielu użytecznych agentów potrzebuje miejsca do realnej pracy. Może to być system plików, kontener, izolowany terminal, instancja przeglądarki lub chmurowy runtime. Bez środowiska wykonawczego zarządzanego przez harness wywołania narzędzi nie mają gdzie „wylądować”.
Wiele harnessów korzysta dziś z izolowanych kontenerów-sandboxów: krótkotrwałych środowisk przypisanych do jednej sesji, czyszczonych po zakończeniu zadania, tak aby zapisy plików, instalacje pakietów i wywołania sieciowe z jednego zadania nie wpływały na inne.
Orkiestracja i planowanie
Niektóre zadania nie mieszczą się w jednej prostej ścieżce kroków. Harness może dostarczyć narzędzie planujące, które rozbija cel na podzadania i śledzi ich status. Może też uruchamiać subagentów odpowiedzialnych za pojedyncze części pracy i zwracających głównemu agentowi tylko podsumowanie.
LangChain Deep Agents, na przykład, śledzi kroki planu w pliku w systemie plików, aktualizując każdy etap z „oczekuje” na „ukończony” w trakcie realizacji.
Zabezpieczenia i uprawnienia
To w harnessie umieszczasz reguły: zatwierdzanie przez człowieka, blokowane wywołania narzędzi, uprawnienia oparte na rolach i kontrole wyjścia. OpenAI Agents SDK, LangChain Deep Agents i Microsoft Agent Framework wspierają ten rodzaj kontroli. Bezpieczniejszy wzorzec to osobna walidacja wejścia, wyjścia i uprawnień do narzędzi.
Obserwowalność i śledzenie
Gdy pięćdziesięcioetapowe zadanie agenta zawiedzie na kroku trzydziestym siódmym, trace pokaże, co się stało. Śledzenie zapisuje wywołania modelu, wywołania narzędzi, przekazania, błędy, opóźnienia i koszty dla całego przebiegu. OpenAI Agents SDK domyślnie włącza tracing. LangSmith dodaje panele do debugowania i ewaluacji. OpenTelemetry stało się standardem eksportu trace’ów w formacie neutralnym względem dostawcy, by nie wiązać cię z jednym narzędziem obserwowalności.
Agent harness vs. framework vs. runtime: czym to się różni?
To pytanie wraca często, a odpowiedź jest bardziej zawiła, niż sugerują większość wyjaśnień. Taksonomia jest przydatna, ale nie jest stała.

Trzy warstwy, rosnąca abstrakcja od dołu. Ilustracja autora.
Zacznę od frameworku, bo wielu programistów już jakiś używało.
Czym jest framework agenta?
Framework agenta daje programistom klocki do tworzenia agentów. Obejmuje wywołania modelu, definicje narzędzi, wzorce pamięci i strukturę pętli agenta. Przykłady to wczesny LangChain, CrewAI i Google ADK. Framework mówi ci, jak zbudować agenta, ale nie zawsze jak niezawodnie uruchomić go w produkcji.
Czym jest runtime agenta?
Runtime agenta to warstwa, która pomaga agentowi działać niezawodnie w czasie. Obsługuje trwałe wykonywanie, utrzymanie stanu, ponowne próby, kroki z udziałem człowieka i streaming. LangGraph, Temporal i Inngest są przykładami. Harrison Chase zaproponował taką analogię: jeśli Node.js jest runtime’em, a Express frameworkiem, to harness jest jak Next.js.
Co wyróżnia harness?
Harness jest na wyższym poziomie niż framework. Tam, gdzie framework daje komponenty, harness zwykle dostarcza więcej decyzji „z pudełka”: narzędzia, planowanie, dostęp do systemu plików i zarządzanie kontekstem.
Zastosowania agent harness: kod, research, dane i enterprise
Te same klocki pojawiają się w bardzo różnych pracach, ale zmienia się proporcja. Agent do kodowania i agent do przepływów enterprise obaj potrzebują harnessu, ale kładą nacisk na inne części. Te kategorie nie są formalnymi standardami. To praktyczny sposób, by zobaczyć, jak ta sama idea dopasowuje się do pracy pod ręką.
Harnessy agentów kodujących
Agenci kodujący to dobry aktualny przykład, bo harness jest widoczny. Aby zrobić pożyteczną pracę, agent potrzebuje dostępu do plików, kontekstu gita, wykonania w terminalu, uruchamiania testów, instalacji zależności i reguł projektu. Claude Code i Codex to przykłady tego wzorca: oba opierają się na dużej ilości kodu harnessu, nie na gołym API modelu.
Różnica między dobrym a przeciętnym harness’em do kodu zwykle wychodzi w drobiazgach: jak odzyskuje się po nieudanym teście, czy potrafi wycofać złą edycję, jak czysto eksponuje historię gita modelowi. To w tych detalach ląduje większość wysiłku inżynieryjnego.
Harnessy agentów badawczych
Agenci do researchu potrzebują innego zestawu narzędzi: wyszukiwania w sieci, śledzenia źródeł, notowania, zarządzania cytowaniami i streszczania. Harness zarządza tym, jak przechowywane są wyniki wyszukiwania, jak przypisywane są źródła i jak długie dokumenty są dzielone oraz odkładane, by nie zająć całego okna kontekstu naraz.
Harnessy agentów do analizy danych
Agenci danych potrzebują dostępu do zbiorów danych, baz SQL, środowisk wykonawczych Pythona i kontekstu schematów, aby wiedzieć, jakie tabele i kolumny są dostępne, zanim zaczną pisać zapytania. Harness egzekwuje też granice uprawnień, co ma znaczenie, gdy agent może dotykać danych produkcyjnych.
Enterprise workflow harnessy
Wdrożenia enterprise dodają kolejną warstwę wymagań: uwierzytelnianie, dzienniki audytowe, przepływy zatwierdzeń, kontrolę dostępu opartą na rolach i integracje z systemami wewnętrznymi. AWS AgentCore to jeden z zarządzanych przykładów w tej kategorii — z tożsamością, siecią VPC i obserwowalnością w zestawie. Microsoft Agent Framework pokrywa podobny obszar dla zespołów w środowiskach Azure lub .NET.
Narzędzia do budowy systemów agent harness w 2026
W połowie 2026 najczęściej przewija się kilka produktów. Siedzą w różnych miejscach na osi framework–runtime–harness, a granice wciąż się przesuwają.
LangChain Deep Agents
LangChain Deep Agents to open-source’owy harness LangChain, zbudowany na LangGraph jako runtime. Dostarcza narzędzie do planowania, wirtualny system plików, uruchamianie subagentów, automatyczną kompaktację kontekstu oraz middleware do zatwierdzania przez człowieka i wykrywania Danych Osobowych (PII). Jest agnostyczny względem modeli, wspiera endpointy kompatybilne z OpenAI i łączy się z dostawcami sandboxów, w tym Modal, Runloop i Daytona, do wykonywania kodu.
Anthropic Agent SDK
Anthropic Agent SDK (nazwa pakietu: claude-agent-sdk) został wydzielony z Claude Code i udostępniony jako samodzielna opcja. Zawiera wbudowaną pętlę agenta, narzędzia do wykonywania poleceń bash, odczytu i zapisu plików, wyszukiwania w sieci, integrację z MCP i kompaktację kontekstu. Działa tylko z modelami Claude — przez API Anthropic, Amazon Bedrock, Vertex AI i Azure.
OpenAI Agents SDK
Jak wspomniałem wcześniej, OpenAI Agents SDK wraz z rozbudową funkcji przeszedł z roli frameworku w stronę harnessu. Wydanie z kwietnia 2026 dodało natywne uruchamianie w sandboxie, kompaktację pamięci i narzędzia systemu plików. Dostępny w Pythonie i TypeScripcie, SDK wspiera użycie narzędzi, przekazywanie między agentami i zabezpieczenia.
Google Agent Development Kit
Google ADK wspiera orkiestrację multi-agentową z wbudowanymi klasami dla struktur sekwencyjnych, równoległych i pętlowych. Zawiera narzędzia ewaluacyjne, współpracuje z Vertex AI przy zarządzanych wdrożeniach i wspiera MCP do łączenia narzędzi. Dostępny w Pythonie, Javie, TypeScripcie i Go, dostrojony do modeli Gemini, ale określany jako agnostyczny względem modeli.
Microsoft Agent Framework
Microsoft Agent Framework to obecna ścieżka migracji dla projektów AutoGen. Wspiera Pythona i .NET, działa z usługami Azure AI i zawiera wsparcie MCP do łączenia narzędzi.
CrewAI
CrewAI przyjmuje podejście oparte na rolach w systemach wieloagentowych. Definiujesz agentów o konkretnych rolach, przypisujesz zadania, tworzysz zespoły i deklaratywnie konfigurujesz pamięć oraz zabezpieczenia. Pasuje do problemów, które naturalnie mapują się na zespół specjalistów.
Temporal i Inngest
Same w sobie nie są agent harnessami. To platformy trwałego wykonywania, które obsługują sytuacje, gdy zadanie agenta musi działać godzinami lub dniami, nie tracąc stanu. W razie błędu silnik odtwarza od ostatniego udanego punktu kontrolnego zamiast zaczynać od zera.
Wyzwania i kompromisy przy agent harness
Dodanie harnessu zwiększa możliwości systemu, ale każde nowe narzędzie, uprawnienie i agent to kolejna potencjalna awaria. Wraz z wydłużaniem zadań zabezpieczenia, śledzenie i trwały stan przestają być opcjonalne i stają się kluczowe dla odzyskiwania długich przebiegów.
Istnieje też ryzyko sprzężenia, które zaskakuje zespoły. LangChain odnotował wzrost o 10–20 punktów na podzbiorze tau2-bench po dodaniu profili harnessu specyficznych dla modeli. Artificial Analysis zwróciło uwagę na to samo w swoim Coding Agent Index: wyniki agentów kodujących zależą jednocześnie od modelu i harnessu, a koszt, zużycie tokenów i czas na zadanie bardzo się różnią w zależności od kombinacji. Model się nie zmienił. Zmieniły się otaczające prompty, narzędzia i middleware. Sam ten profil to praca nad harnessem.
Czy naprawdę potrzebujesz agent harness?
Oto prosty sposób, by rozważyć, czy jest ci potrzebny.
Prawdopodobnie go potrzebujesz, jeśli twój system spełnia jeden lub więcej z tych warunków:
- Musi korzystać z narzędzi zewnętrznych
- Musi pamiętać postęp między sesjami
- Musi uruchamiać kod w prawdziwym środowisku
- Koordynuje więcej niż jednego agenta
- Musi odzyskiwać sprawność po częściowych awariach bez utraty pracy
- Wymaga zatwierdzenia przez człowieka
Prawdopodobnie nie potrzebujesz harnessu, jeśli zadanie to przewidywalny workflow, w którym każdy krok jest z góry ustalony.
Praktyczny test: jeśli zadanie da się obsłużyć jednym wywołaniem modelu lub małym deterministycznym skryptem z kilkoma warunkami, harness to prawdopodobnie przesada. W momencie, gdy zadanie wymaga, by agent podejmował decyzje, używał narzędzi i reagował na wyniki w czasie, harness zaczyna wykonywać realną pracę.
Wzorzec, który często widzę, to zespoły sięgające po harness zbyt wcześnie — budujące tracing i sandboxing dla zadania, które w istocie jest jednorazową generacją tekstu. Odwrotny błąd jest bardziej bolesny: wystawienie modelu bezpośrednio, a potem uświadomienie sobie przy drugim nieudanym teście, trzecim wywołaniu narzędzia czy piątym restarcie, że nie ma infrastruktury, na którą można się oprzeć.
Na koniec
Jak wspomniałem wcześniej, dostawcy nie używają tych samych słów w ten sam sposób, a granica między frameworkiem, runtime’em i agent harness wciąż się przesuwa.
Dla jednorazowej generacji wrapper to przerost formy nad treścią. Dla agentów, którzy muszą działać, pamiętać i odzyskiwać sprawność w długich sesjach, agent harness staje się kluczową częścią systemu. Wybór odpowiedniego coraz częściej jest osobną decyzją od wyboru modelu. Jestem ciekaw, ile z tej warstwy wchłonie następna generacja modeli, bo ruchy OpenAI i Anthropic sugerują, że granica nadal będzie się przesuwać. Zasada pozostaje ta sama: agent to model plus agent harness.
Jeśli chcesz dowiedzieć się więcej o budowie systemów agentowych, nasz kurs Building Scalable Agentic Systems omawia wzorce stojące za użyciem narzędzi, orkiestracją i długotrwałymi workflowami agentów.
Agent Harness — FAQ
Jaka jest różnica między agent harness a promptem systemowym?
Prompt systemowy to jedno z wejść, które agent czyta na starcie. Agent harness to szersza warstwa, która zarządza narzędziami, stanem, uprawnieniami i obsługą błędów. Najprostsze ujęcie, jakie znalazłem: prompt systemowy mówi modelowi, co ma robić, a agent harness kontroluje, co może robić. Możesz mieć dopracowany prompt systemowy i zero harnessu — i nadal kończysz ze statelessowym wywołaniem API. Agent harness to to, co zamienia prompt w system.
Czy mogę zbudować własny agent harness od zera?
W teorii tak. W najprostszym ujęciu harness to pętla: wywołaj model, sparsuj odpowiedź, wykonaj wywołania narzędzi, które zasugerował, zwróć wyniki, powtórz. Tę pętlę można napisać w kilkudziesięciu linijkach Pythona w jedno popołudnie. Trudność zaczyna się po pętli: przepełnienie kontekstu, nieudane wywołania narzędzi, utrata stanu przy restartach, egzekwowanie uprawnień i śledzenie. W praktyce ta „popętlowa” praca zawsze trwa dłużej, niż zespoły zakładają — dlatego open-source’owe harnessy rosną, a nie maleją.
Czy model wie, że działa wewnątrz harnessu?
Nie wprost. Niektóre harnessy informują model o dostępnych narzędziach przez prompt systemowy, ale model nie ma pojęcia o harnessie jako systemie wokół niego. Widzi tylko dostarczony kontekst, generuje odpowiedź i czasem produkuje wywołanie narzędzia. Skutek uboczny: gdy coś się psuje, model często nie powie ci dlaczego, bo nie wie, że harness istnieje. Debugowanie agenta to w dużej mierze debugowanie harnessu, nie modelu.
Jak wybór modelu wpływa na wybór harnessu?
Bardziej, niż się spodziewasz. Czołowe modele do kodowania są czasem douczane z własnym harness’em w pętli, więc podmiana na inny harness może zostawić część wydajności na stole. Praktyczna heurystyka: jeśli twój zespół wiąże się z jedną rodziną modeli, krótka lista harnessów zwykle wyłania się sama. Trudniejszy przypadek to późniejsza zmiana modelu — to zazwyczaj oznacza przepisywanie logiki harnessu, a nie tylko zmianę wartości w konfiguracji.
Czy to różni się od tego, co kiedyś nazywano „LLM scaffolding”?
Niezbyt. To ta sama idea pod nowszą nazwą. „LLM scaffolding”, „agent wrapper” i „execution environment” wskazują w tym samym kierunku. Drobna zmiana w 2026 polega na tym, że „scaffolding” sugeruje konstrukcję tymczasową, zdejmowaną, gdy model jest już wystarczająco dobry, podczas gdy „agent harness” sugeruje coś, co model utrzymuje wokół siebie. To zmienia budżetowanie: scaffolding się usuwa, agent harness staje się częścią systemu.