Claude Code jest kanonicznym zrodlem kooperacyjnym dla Olivares AI. Platforma robi z nim dwie odrębne rzeczy, na dwoch powierzchniach z przeciwnymi posturami: trzymaj je prosto, poniewaz jedna jest odczyt-jako-priorytet a druga celowo siedzi na sciezce.
Dla ogolnego modelu zrodel zobacz Podlacz zrodlo; dla przeplywu egzekucji zobacz Zarzadzaj i zatwierdzaj.
Co jest obserwowane vs co jest egzekwowane
- Obserwacja (odczyt jako priorytet). Claude Code eksportuje OpenTelemetry; konektor uruchamia odbiornik OTLP, ktory zamienia te telemetrie w krawedzie mapy dostepu, probki kosztow i tozsamosc. Ta sciezka nigdy nie siedzi na sciezce zadan agenta — pochlanial poza pasmem. Zobacz mapa dostepu.
- Egzekucja (domyslnie odrzucajaca). Natywne hooki
PreToolUse/PostToolUseClaude Code moga wywolyac punkt egzekucji polityki (PEP), ktory zwraca allow / deny / ask zanim narzedzie sie uruchomi. To celowo wstawiona sciezka, ktora wlaczasz gdy plaszczyzna kontrolna musi zarzadzac agentem, nie tylko go obserwowac.
Mozesz uruchomic sama obserwacje. Egzekucja jest opcjonalna i addytywna.
Obserwacja: pochlaniane telemetrii OTel
Konektor udostepnia standardowy odbiornik OTLP (gRPC i HTTP, na konwencjonalnych portach OpenTelemetry). Mapuje dwa slowniki do tego samego potoku:
- Wlasna telemetria
claude_code.*Claude Code — wywolania narzedzi, sesje, uzycie modelu per-zapytanie i (w ramach bety tracingu) hierarchie subagentow. - Neutralne producentowo konwencje semantyczne OpenTelemetry GenAI (
gen_ai.*), wiec kazdy agent instrumentowany OTel karmi te sama mape dostepu i FinOps, nie tylko Claude Code.
Z tej telemetrii konektor wyprowadza krawedzie dostepu przypisane do sesji
(ktora sesja dotknela ktorego zasobu, odczyt lub zapis), krawedz topologii dla
kazdego serwera MCP, do ktorego sesja sie laczy, i probke kosztu per-zapytanie.
Serwery MCP udostepniaja introspekcje readOnlyHint / destructiveHint; to
sygnal R/RW, ktory specyfikacja MCP oznacza jako niezaufany, wiec konektor
traktuje je jako dowod potwierdzajacy i nigdy nie podnosi krawedzi na samej
podstawie wskazowki.
OLIVARES_SOURCES_CONFIG to dokument JSON (czytany zanim silnik sie uruchomi);
kind: "claude" wybiera ten konektor. http_addr domyslnie wiaze loopback —
zobacz ostrzezenie ponizej.
{
"sources": [
{
"name": "claude",
"kind": "claude",
"tenant": "<tenant-ref>",
"config": {
"enable_http": "true",
"http_addr": "127.0.0.1:4318"
}
}
]
}
Profil GenAI jest opcjonalny
Konwencje semantyczne gen_ai.* sa nadal w statusie Development, wiec mapowanie
ich na koszty i krawedzie jest jawnym opt-in. Ustaw semconv_opt_in konektora
na wlasny token specyfikacji (odzwierciedlajac
OTEL_SEMCONV_STABILITY_OPT_IN); gdy jest wylaczony, rekord gen_ai.* nadal
karmi watchdoga zywotnosci, ale nie jest kosztowany. Profil czyta zarowno biezace
jak i przestarzale nazwy atrybutow, ktore prawdziwe frameworki nadal emituja,
akceptuje dane na trasach lub logach i deduplikuje operacje, ktora dociera na
obu, wiec FinOps nie jest podwojnie rozliczany. Tresc wiadomosci nigdy nie
jest czytana — klucze tresci sa uzywane tylko do wykrywania, ktorym dialektem mowi
emiter.
Minimalne dane domyslnie
Konektor zachowuje tylko strukturalna telemetrie — sesje, tozsamosci, nazwy narzedzi, tryb R/RW, timing — nawet jesli klient jest skonfigurowany do emitowania tekstu promptu lub cial narzedzi. Surowe wejscie narzedzia jest redukowane do zredagowanej referencji zasobu zanim stanie sie obserwacja. Zachowywanie jakiejkolwiek kategorii tresci to oddzielny, audytowany opt-in. Zobacz dozwolone vs obserwowane i wiernosc jak pokrycie i atrybucja sa warstwowane.
:::caution Kooperacyjny odbiornik jest nieuwierzytelniony i domyslnie wiaze loopback. Kazdy, kto moze siegnac do gniazda, moze sfabrykowac telemetrie, wiec nie udostepniaj go w sieci wspoldzielonej. Agenci poza hostem naleza na niekooperacyjny backstop jadra, nie na publiczny port OTLP. :::
Egzekucja: hook PEP
Aby zarzadzac — nie tylko obserwowac — podlacz hooki Claude Code do PEP. Hook
PreToolUse agenta przekazuje kazde wywolanie narzedzia do zarzadzanej komendy
hookowej, ktora przekazuje je do PEP i przekazuje werdykt z powrotem. Konektor
posiada tylko protokol przewodowy hooka i domyslne ustawienia odrzucajace;
faktyczna decyzja jest delegowana przez szew, ktory plaszczyzna kontrolna
implementuje wobec aktywnego PDP (Cedar/ABAC), plaszczyzny pewnej tozsamosci,
zatwierdzen czlowiek-w-petli i rejestru odpornego na manipulacje.
Claude Code ──PreToolUse hook──▶ managed hook command ──HTTP──▶ governed PEP
(agent) (stdin JSON) (loopback)
│
allow │ deny │ ask ◀──── governed decision ──────────┘
(+ updatedInput rewrite) deny-closed on any failure
Co PEP moze zwrocic, zweryfikowane wobec kontraktu hookow Claude Code:
PreToolUse—allow,denylubask, z opcjonalnym zarzadzanymupdatedInputrewrite (zawez sciezke, dodaj--dry-run, przekieruj fetch). Pierwszenstwo to deny nad ask nad allow.PostToolUse— Claude Code nie ma pola rewrite wyjscia, wiec hook PostToolUse moze tylko zablokowac dalsze przetwarzanie na wyniku oflagowanym przez polityke. Konektor nie udaje, ze przepisuje wynik, ktory model juz widzial; to, co redaguje, to to, co sam zachowuje i audytuje.
Domyslne odrzucanie jest totalne
Wstawianie sie na sciezke danych to asymetryczne ryzyko, wiec kazdy tryb awarii
zamyka sie odrzucajac, nigdy nie otwierajac: brakujacy decydent, blad decyzji
(PDP nieosiagalny, tozsamosc nierozwiazana, zatwierdzenie, ktore nie moglo sie
otworzyc) lub znieksztalcony ladunek hookowy — wszystko zwraca czyste deny.
Wartosc zerowa werdyktu sama jest deny. ask trasuje do zarzadzanego zatwierdzenia;
zatwierdzenie jest powiazane z hashem planu dokladnego wywolania narzedzia, wiec
nie moze byc ponownie uzyte do autoryzacji innego wywolania (anty-TOCTOU).
W produkcji hook dostarczany jest w korporacyjnym poziomie managed-settings Claude Code z wlaczonymi managed-hooks-only, wiec developer nie moze go wylaczyc ani zastapic z pliku ustawien o nizszym pierwszenstwie. Wskazowki tozsamosci stemplowane na zadaniu poprawiaja atrybucje; autorytatywny podmiot to bearer, ktorego decydent rozwiazuje, a polityka wymagajaca pewnej tozsamosci odrzuca cokolwiek, co moze przypisac tylko przyblizonie.
Lzejszy tryb lokalny
Konektor obsluguje rowniez lokalna, wewnatrz-procesowa polityke egzekucji ewaluowana na goracej sciezce hooka bez round-tripu do silnika — wiec wolna lub nieosiagalna plaszczyzna kontrolna nigdy nie blokuje wywolania narzedzia developera. Jest opcjonalny: bez skonfigurowanych regul, hooki sa obserwowane i nigdy nie bramkowane. To kooperacyjna-domyslnie postawa; zarzadzany PEP powyzej to przeciwna postawa, na ktora przelaczasz, gdy plaszczyzna kontrolna musi byc decydentem.
Anty-unikanie
Poniewaz sciezka obserwacji jest kooperacyjna, konektor obserwuje sesje, ktora przestaje emitowac OTel podczas gdy jej hooki nadal strzelaja — sygnatura agenta, ktory wylaczy swoj eksporter w trakcie sesji kontynuujac dzialanie. Zauwaz co nie robi: zakonczony agent milknie, a samo milczenie nigdy nie jest flagowane. Prawda bazowa dla prawdziwie niekooperacyjnej aktywnosci to backstop jadra/eBPF, nie ta heurystyka.
Air-gap: co zostaje w domu a co nie
Plaszczyzna kontrolna dziala wewnatrz twojej wlasnej infrastruktury i moze dzialac izolowana sieciowo — dane zarzadzania i obserwacji (krawedzie dostepu, decyzje, audyt, probki kosztow) nigdy nie opuszczaja twojego perymetru. Odbiornik OTLP i hook PEP sa lokalnymi gniazdami; silnik nie dzwoni do domu.
Jedno uczciwe zastrzezenie: inferencja Claude nigdy nie jest izolowana sieciowo. Claude Code nadal wysyla swoje prompty do API Anthropic (bezposrednio lub przez Bedrock, Vertex lub Foundry) aby uzyskac odpowiedz. Izolacja sieciowa plaszczyzny kontrolnej utrzymuje dane zarzadzania twojej infrastruktury w domu; nie przenosi modelu on-prem. Tylko prawdziwie self-hostowalne modele (na przyklad przez vLLM/Ollama) dzialaja w pelni offline. Zobacz czym jest Olivares AI i uczciwosci i ograniczenia.
Nastepne kroki
- Zarzadzaj i zatwierdzaj — napisz polityke i petle ask → ludzkie zatwierdzenie, ktora PEP egzekwuje.
- Mapa dostepu — co zaobserwowane krawedzie karmi.
- Zarzadzanie Claude Code — przeglad produktowy tej sciezki.