
Jak nagrać sesję Claude Code i każdego innego agenta, który nie chce współpracować: praktyczny przewodnik terenowy
- openaiNOWOŚĆOpenAI: GPT-6 Astra2026-09-0455Inteligencja77Kod
- googleNOWOŚĆGoogle: Gemini 3.8 Flash2026-09-0247Inteligencja76Kod
- qwenNOWOŚĆQwen: Qwen3.8 Max (0902)2026-09-0247Inteligencja72Kod
- anthropicNOWOŚĆAnthropic: Claude Fable 5.12026-09-0157Inteligencja82Kod
- AlibabaNOWOŚĆQwen: Qwen3.8 Flash2026-08-26$0.15 / $0.47 za 1 mln tokenów
- z-aiNOWOŚĆZ.ai: GLM 5.3 Flash2026-08-2646Inteligencja72Kod
- DeepSeekDeepSeek: DeepSeek V4 Flash Vision (Exp)2026-08-21$0.15 / $0.29 za 1 mln tokenów
- z-aiZ.ai: GLM 5.32026-08-1849Inteligencja75Kod
- obsidianQwen3.8 27B2026-08-1541Inteligencja68Kod
- qwenQwen: Qwen3.8 27B (free)2026-08-13qwen/qwen3.8-27b-free
- deepseekDeepSeek: DeepSeek V4 Pro 08132026-08-1242Inteligencja69Kod
- grokSpaceXAI: Grok 4.62026-08-1251Inteligencja77Kod
- metaMeta: Muse Spark 1.22026-08-0547Inteligencja72Kod
- qwenQwen: Qwen3.8 Max2026-08-0347Inteligencja72Kod
- deepseekDeepSeek: DeepSeek V4 Flash 07312026-07-3141Inteligencja69Kod
- minimaxMiniMax: MiniMax-H32026-07-31minimax/minimax-h3
- qwenQwen: Qwen3.7 Flash2026-07-27$0.03 / $0.13 za 1 mln tokenów
- orcaOrcaDub: OrcaDub 1.02026-07-27orca/dub
- anthropicAnthropic: Claude Opus 52026-07-2454Inteligencja78Kod
- googleGoogle: Gemini 3.6 Flash2026-07-2140Inteligencja69Kod
Tak: możesz nagrać sesję Claude Code już dziś, a to, co otrzymujesz, to całość (każda odpowiedź modelu, każde wywołanie narzędzia, każdy plik, którego dotknął agent) w formie, którą możesz odtworzyć. To jest skrócona wersja i jest prawdziwa już dziś. Dłuższa wersja jest taka, że możliwość nagrywania jest rozstrzygana osobno dla każdego klienta przez dwa pytania: czy klient może zostać skierowany na proxy i czy format jego transmisji jest rozumiany, gdy ruch już dotrze. Claude Code spełnia oba warunki, podobnie jak Codex CLI zalogowany za pomocą klucza API. Agent z adresem URL dostawcy wpisanym na sztywno w kodzie źródłowym, agent działający w kontenerze lub na VPS oraz klient zalogowany w ramach subskrypcji — każdy z nich wybiera inną ścieżkę, a jeden z nich, dziś, nie dociera.
Zmiana polega na tym, że te agenty przestały być wersjami demonstracyjnymi. Siedzą w twoim repozytorium z dostępem do powłoki, edytują pliki, uruchamiają zestaw testów, otwierają pull requesty. Gdy któryś z nich zrobi coś, czego się nie spodziewałeś — czy to usunie niewłaściwy plik, zapętli się na tym samym nieudanym teście, czy spali całe popołudnie na obliczenia — przewijanie terminala nie jest dowodem. To tylko renderowanie, i to niekompletne.
Potrzebujesz surowego zapisu: tego, co faktycznie wysłano do modelu, co faktycznie wróciło i co agent robił między krokami. Taki zapis to również zalążek zestawu ewaluacyjnego, bo przechwycona sesja to test regresyjny, który możesz odtworzyć na następnym modelu lub przy kolejnym prompcie. Haczyk polega na tym, że każdy harness zakłada, iż rozmawia bezpośrednio ze swoim dostawcą, a prawie żaden nie ułatwia zmiany tego ustawienia.
Co decyduje o tym, czy harness może zostać nagrany?
Każde pytanie typu „czy możesz to nagrać” sprowadza się do tych samych dwóch pytań.
Po pierwsze: czy uprząż może być skierowana na proxy? Można to zrobić na cztery sposoby, w kolejności od najwygodniejszego do najmniej wygodnego.
• Zmienna base-URL. Trasa zbudowana w tym celu: harness odczytuje zmienną środowiskową base-URL, a ty ją ustawiasz.
• Samodzielne uruchamianie uprzęży. Proces potomny dziedziczy środowisko procesu nadrzędnego, więc brama, która uruchamia agenta kodującego, również zostaje przechwycona, bez współpracy agenta.
• Przechwytywanie TLS. W przypadku harnessów, które w ogóle nie czytają żadnej konfiguracji, rejestrator uruchamia agenta, a Ty wyrażasz zgodę na przechwytywanie.
• Dołączanie. Gdy agent działa w miejscu, w którym rejestrator nie może go uruchomić, pozostaje dołączenie.
Jeśli żadne z nich nie ma zastosowania, ruch nigdy nie dociera do rejestratora i nie ma o czym dyskutować.
Po drugie: gdy ruch już dotrze, czy jego format sieciowy jest zrozumiały? Przechwytywanie bajtów to nie produkt. Rejestrator musi rozpoznać konwersację, którą przechwytuje – w tym kształty wywołań narzędzi, ramki strumieniowe i ponowienia – w przeciwnym razie nagranie to pcap, a nie replay. Format, który rejestrator rozumie, daje sesję, którą można odtworzyć; prywatny dialekt daje przechwyt, na który można się tylko gapić.
Odpowiedź różni się w zależności od harnessu, a różnice dotyczą szczegółów, które łatwo pomylić: to ta sama lekcja, która wyniknęła z porównania tego, jak się różni harness DeepSeek od Claude Code. Reszta tego artykułu pokazuje, jak wyglądają te dwa pytania, gdy faktycznie uruchamia się harnessy.

Claude Code, Codex CLI oraz Agents SDK
Claude Code to przypadek testowy, względem którego mierzy się wszystko inne, ponieważ odczytuje zmienną środowiskową ANTHROPIC_BASE_URL. Ustaw tę zmienną na adres rejestratora, uruchom agenta, a sesja będzie przychodzić tura po turze: prompty, wywołania narzędzi, edycje plików i odpowiedzi modelu między nimi. Zweryfikowaliśmy to od początku do końca na prawdziwym usuwaniu błędu (prawdziwe repozytorium, prawdziwy defekt, sesja od pierwszego promptu do działającej poprawki), a ten pierwszy prawdziwy agent zepsuł cztery rzeczy, których nie wygenerował żaden fixture. Wszystkie cztery zostały od tamtej pory naprawione, co jest uczciwym sposobem powiedzenia, że syntetyczny ruch nie przygotowuje cię na to, co prawdziwy agent robi, gdy zostaje sam na sam z bazą kodu.
Codex CLI zalogowany za pomocą klucza API to ta sama historia przy użyciu OPENAI_BASE_URL. Skieruj go na recorder, a otrzymasz sesję; poza tym nic nie zmienia się w sposobie korzystania z harnessu.
Agenci programistyczni dziedziczą najłatwiejszą ścieżkę ze wszystkich. Proces potomny dziedziczy środowisko swojego rodzica, więc brama, która uruchamia agenta kodującego, również zostaje przechwycona, bez współpracy agenta. Ustaw zmienną base-URL raz w procesie, który dokonuje uruchomienia, a każdy agent, którego uruchomi, sam trafi do rejestratora. Jeśli uruchamiasz agentów z CI, z orkiestratora lub przez Agents SDK, to jest ścieżka, na której już jesteś.
We wszystkich tych przypadkach rejestratorem jest OrcaReplay. Można go zainstalować za pomocą polecenia npm i -g orcareplay. Rejestrator wymaga Node w wersji 20 lub nowszej i nie ma natywnych zależności: niczego nie trzeba kompilować ani budować. Przechwytuje ten sam ruch agentów, który OrcaRouter przekazuje przez katalog modeli OrcaRouter.

Agent, który nie czyta żadnej zmiennej base-URL.
Niektóre harnessy mają na sztywno wpisany URL dostawcy w kodzie źródłowym. Nie ma zmiennej środowiskowej, pliku konfiguracyjnego ani flagi. Ustawienie ANTHROPIC_BASE_URL nic nie robi, bo nic tego nie odczytuje. Jeśli rejestrator może uruchomić agenta, wciąż istnieje droga, która budzi największe obawy: przechwytywanie TLS.
Włączenie tej opcji to właśnie opt-in; domyślnie jest wyłączona. Gdy włączysz ją dla danego uruchomienia, rejestrator tworzy urząd certyfikacji unikalny dla tego uruchomienia, a urząd ten jest zaufany tylko przez agenta, którego rejestrator uruchamia: jest przekazywany tylko temu jednemu procesowi, nie jest instalowany w systemowym pęku kluczy ani nie pozostaje na następne uruchomienie. Gdy uruchomienie się kończy, urząd jest usuwany. Agent łączy się ze swoim na stałe zapisanym hostem dokładnie tak jak zawsze; rejestrator odpowiada, a sesja dociera tak, jakby adres URL był konfigurowalny od początku.
To, czego trasa celowo odmawia, jest równie ważne jak to, co robi. Czyta hosty ze swojej listy dozwolonych i nic poza tym. Hosty spoza listy dozwolonych są tunelowane bez odczytu i rejestrowane jako adres i liczba bajtów: dowód, że agent skontaktował się z czymś, i nie zawierający ani jednego bajtu tego, co powiedziano. Ta granica to decyzja projektowa, a nie ograniczenie, do którego jeszcze nie doszliśmy; ta sama dyscyplina przenika przez agentową zaporę ogniową OrcaRouter, w której lista dozwolonych jest produktem, a nie efektem ubocznym rejestrowania.

Sedno jest takie samo jak w pierwszym pytaniu: przechwytywanie działa, gdy rejestrator uruchamia agenta. Agent działający już w kontenerze nigdy nie otrzymał urzędu certyfikacji dla tego uruchomienia i nie zaufa odpowiedzi rejestratora.
Agent, którego nie ma na tej maszynie
Kontener ma własne środowisko. Zmienna base-URL ustawiona w Twojej powłoce nie dociera do jego wnętrza, a rejestrator na hoście nie może uruchomić procesu, który już działa gdzie indziej: na VPS-ie, w CI, w piaskownicy zbudowanej przez platformę bez pytania Cię o zgodę. Przechwytywanie oparte na uruchamianiu zawodzi tutaj nie dlatego, że agent sprawia kłopoty, lecz dlatego, że rejestrator nigdy nie ma do niego dostępu.
Dokładnie dla tego przypadku istnieje orca attach: rejestruje agenta, którego rejestrator nie może uruchomić, na przykład takiego działającego w kontenerze lub na VPS-ie. Kierunek ulega odwróceniu: zamiast uruchamiać agenta i przekazywać mu środowisko, rejestrator dołącza do już działającego agenta i rejestruje go.
To, czego funkcja attach nie robi, to nie odpowiada za ciebie na drugie pytanie. Rozwiązuje kwestię dostarczenia ruchu do rejestratora; to, czy ten ruch stanie się sesją, którą można odtworzyć, nadal zależy od zrozumienia formatu transmisji. Podepnij agenta, który mówi formatem znanym rejestratorowi, a otrzymasz sesję możliwą do odtworzenia. Podepnij takiego, który tego nie robi, i trafisz na ścianę — którą taniej jest znaleźć celowo niż w trakcie incydentu.
Co zmienia logowanie do subskrypcji?
Ten sam binarny plik może być rejestrowany lub nie, w zależności od tego, jak został zalogowany. Aplikacja Codex CLI zalogowana przy użyciu klucza API jest przechwytywana przez OPENAI_BASE_URL: ustaw tę zmienną na rejestrator i gotowe. Zaloguj tę samą aplikację CLI przy użyciu subskrypcji ChatGPT, a ta całkowicie przestaje komunikować się z tym punktem końcowym; rozmawia z własnym backendem, uwierzytelniona jako Ty, i nie ma żadnego adresu źródłowego do przepisania. Zmienna base-URL nadal istnieje, ale niezależnie od tego, na co ją ustawisz, nie stanie się usługą, z której faktycznie korzysta harness.
To jest drugie pytanie, które zawodzi, a nie pierwsze. Bajty można wprawić w ruch; rejestrator może je nawet zobaczyć. Ale rozmowa jest skierowana do backendu, którego rejestrator nie może zastąpić, w przepływie, który nie jest API, którym posługuje się rejestrator. Nie ma nic do odtworzenia, ponieważ nie ma źródła, którym rejestrator może się stać.
Szczera odpowiedź w przypadku harnessu z logowaniem przez subskrypcję brzmi dziś: nie da się go nagrywać, a cenna lekcja jest taka, że sposób logowania to jeden z czynników decydujących o możliwości nagrywania. Jeśli potrzebujesz nagrań do ewaluacji albo do celów audytowych, sesje przeznaczone do nagrania uruchamiaj na kluczu API, a subskrypcję zostaw do pracy interaktywnej — jak zamienić nagraną sesję w ewaluację regresyjną — ten materiał opisuje całą pętlę od początku do końca. A zanim przyjmiesz jakikolwiek harness jako standard, najpierw zadaj mu te dwa pytania; my robimy dokładnie to samo z każdym harnessem, ostatnio z harnessem Prime Agent.
Przesłanie
Możesz dziś nagrać sesję Claude Code za pomocą jednego polecenia i jednej zmiennej środowiskowej:
• npm i -g orcareplay
• Skieruj ANTHROPIC_BASE_URL na nagrywarkę
• Uruchom agenta
Codex CLI z kluczem API znajduje się w tej samej odległości. Zahardkodowany adres URL wymaga od Ciebie wyrażenia zgody na przechwytywanie TLS, które czyta wyłącznie swoją listę dozwolonych (ta sama dyscyplina, jaką egzekwuje agentowy firewall OrcaRouter) i zapomina o własnych certyfikatach po zakończeniu działania. Kontener lub VPS wymaga wykonania polecenia orca attach. Logowanie przez subskrypcję kosztuje Cię samo nagranie: ten harness nie zostanie nagrany, a żadna konfiguracja tego dziś nie zmieni.
Cała decyzja w skrócie:
• Claude Code — klucz API do logowania vs przekierowanie do rejestratoraANTHROPIC_BASE_URL vs rejestrowalne dziś: Tak
• Codex CLI — klucz API do logowania vs trasa do rejestratora OPENAI_BASE_URL vs możliwość rejestracji dziś: Tak
• Harness z adresem URL dostawcy zaszytym na stałe — Dowolne logowanie vs Trasa do rejestratora Opcjonalne przechwytywanie TLS, uruchamiane przez rejestrator vs Dziś rejestrowalne: Tak
• Agent w kontenerze lub na VPS — logowanie z dowolnego miejsca vs przekierowanie do rejestratora orca attach vs rejestrowalne dziś: tak, jeśli znany jest format komunikacji
• Codex CLI — Logowanie: subskrypcja ChatGPT vs Trasa do rejestratora: brak vs Możliwość nagrania dzisiaj: nie
Ostatni wiersz to jedyna kombinacja, która w ogóle nie ma trasy do rejestratora.
Zadaj te dwa pytania, zanim przyjmiesz uprząż, a nie po swoim pierwszym incydencie; odpowiedzi są łatwe do zdobycia, a to one decydują, czy sesja, której pewnego dnia będziesz rozpaczliwie potrzebować, w ogóle istnieje.
Nota o źródłach: wszystkie zachowania i wartości liczbowe w tym artykule (ścieżki przechwytywania `ANTHROPIC_BASE_URL` i `OPENAI_BASE_URL`, cztery usterki po przygotowaniu środowiska testowego i ich poprawki, cykl życia certyfikatów TLS, zachowanie listy dozwolonych i tunelu, `orca attach` oraz wymagania instalacyjne) pochodzą z naszych własnych przebiegów walidacyjnych na wymienionych środowiskach testowych, ostatnio w dniu 2026-09-04. Nie cytujemy żadnych zewnętrznych testów porównawczych, ponieważ żadnych nie uruchomiliśmy.
