Claude Code is de canonieke coöperatieve bron voor Olivares AI. Het platform doet twee verschillende dingen ermee, op twee oppervlakken met tegengestelde houdingen: houd ze uit elkaar, want het ene is lezen-eerst en het andere zit bewust in het pad.
Voor het algemene bronmodel zie Een bron aansluiten; voor de handhavingsworkflow zie Besturen en goedkeuren.
Wat wordt waargenomen versus wat wordt gehandhaafd
- Observatie (lezen-eerst). Claude Code exporteert OpenTelemetry; de connector draait een OTLP-ontvanger die die telemetrie omzet naar toegangskaart-verbindingen, kosten- monsters en identiteit. Dit pad zit nooit in het verzoekpad van de agent — het neemt out-of-band op. Zie de toegangskaart.
- Handhaving (deny-closed). De native
PreToolUse/PostToolUsehooks van Claude Code kunnen een beleidhandhavingspunt (PEP) aanroepen dat allow / deny / ask retourneert voordat de tool draait. Dit is het bewust tussengevoegde pad dat je inschakelt wanneer het control plane de agent moet besturen, niet alleen observeren.
Je kunt observatie alleen draaien. Handhaving is opt-in en additief.
Observatie: OTel-telemetrie-inname
De connector stelt een standaard OTLP-ontvanger bloot (gRPC en HTTP, op de conventionele OpenTelemetry-poorten). Het mapt twee vocabulaires naar dezelfde pipeline:
- Claude Code’s eigen
claude_code.*telemetrie — tool-calls, sessies, per-verzoek modelgebruik, en (onder de tracing-bèta) de subagent-hiërarchie. - De leverancieronafhankelijke OpenTelemetry GenAI semantische conventies (
gen_ai.*), zodat elke OTel-geïnstrumenteerde agent dezelfde toegangskaart en FinOps voedt, niet alleen Claude Code.
Van die telemetrie leidt de connector sessie-geattribueerde toegangsverbindingen af
(welke sessie welke resource heeft bereikt, lezen of schrijven), een topologieverbinding voor elke
MCP-server waarmee een sessie verbindt, en een per-verzoek kostenmonster. MCP-servers
stellen readOnlyHint / destructiveHint-introspectie bloot; dat zijn een R/RW-
signaal dat de MCP-specificatie als onbetrouwbaar markeert, dus de connector behandelt ze als
bevestigend bewijs en upgradet nooit een verbinding op basis van alleen een hint.
OLIVARES_SOURCES_CONFIG is een JSON-document (gelezen voordat de engine start);
kind: "claude" selecteert deze connector. http_addr bindt standaard loopback —
zie de waarschuwing hieronder.
{
"sources": [
{
"name": "claude",
"kind": "claude",
"tenant": "<tenant-ref>",
"config": {
"enable_http": "true",
"http_addr": "127.0.0.1:4318"
}
}
]
}
Het GenAI-profiel is opt-in
De gen_ai.* semantische conventies hebben nog de status Development, dus het mappen ervan
naar kosten en verbindingen is een expliciete opt-in. Stel de semconv_opt_in van de connector in op
het eigen token van de specificatie (spiegelt OTEL_SEMCONV_STABILITY_OPT_IN); wanneer het uit staat,
voedt een gen_ai.*-record nog steeds de liveness-watchdog maar wordt niet berekend. Het profiel
leest zowel de huidige als de verouderde attribuutnamen die echte frameworks
nog steeds uitzenden, accepteert de data op traces of logs, en dedupliceert een operatie
die op beide binnenkomt zodat FinOps niet dubbel wordt gefactureerd. Bericht-inhoud wordt nooit
gelezen — inhoudssleutels worden alleen gebruikt om te detecteren welk dialect een emitter spreekt.
Minimale data als standaard
De connector bewaart alleen structurele telemetrie — sessies, identiteiten, tool- namen, R/RW-modus, timing — zelfs als de client is geconfigureerd om prompttekst of tool-body’s uit te zenden. Een ruwe tool-input wordt gereduceerd tot een geredacteerde resourcereferentie voordat het een observatie wordt. Het bewaren van elke inhoudscategorie is een afzonderlijke, geauditeerde opt-in. Zie toegestaan versus waargenomen en betrouwbaarheid voor hoe dekking en attributie zijn gelaagd.
:::caution De coöperatieve ontvanger is niet-geauthenticeerd en bindt standaard loopback. Iedereen die de socket kan bereiken kan telemetrie vervalsen, dus stel het niet bloot op een gedeeld netwerk. Off-host agents horen op de niet-coöperatieve kernel-backstop, niet op een publieke OTLP-poort. :::
Handhaving: het hook-PEP
Om te besturen — niet alleen observeren — sluit je Claude Code’s hooks aan op het PEP. De
PreToolUse-hook van de agent stuurt elke tool-call naar een beheerd hook-commando, dat het doorstuurt
naar het PEP en het oordeel teruggeeft. De connector bezit alleen het hook-draad-
protocol en de deny-closed standaarden; de daadwerkelijke beslissing wordt gedelegeerd via een
naad die het control plane implementeert tegen een live PDP (Cedar/ABAC), het firm-identity-
plane, human-in-the-loop-goedkeuringen en het manipulatiebestendig logboek.
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
Wat het PEP kan retourneren, geverifieerd tegen Claude Code’s hook-contract:
PreToolUse—allow,denyofask, met een optionele bestuurdeupdatedInput-herschrijving (vernauw een pad, voeg--dry-runtoe, stuur een fetch om). Prioriteit is deny boven ask boven allow.PostToolUse— Claude Code heeft geen output-herschrijfveld, dus een PostToolUse- hook kan alleen verdere verwerking blokkeren bij een beleid-gemarkeerd resultaat. De connector doet niet alsof het een resultaat herschrijft dat het model al heeft gezien; wat het redigeert is wat het bewaart en auditeert.
Deny-closed is totaal
Tussenvoegen in het datapad is asymmetrisch risico, dus elke faalmodus faalt
closed, nooit open: een ontbrekende beslisser, een beslissingsfout (PDP onbereikbaar,
identiteit niet opgelost, een goedkeuring die niet kon openen), of een verkeerde hook-payload
retourneren allemaal een schone deny. De nulwaarde van het oordeel is zelf een deny. Een ask routeert
naar een bestuurde goedkeuring; de goedkeuring is gebonden aan een plan-hash van de exacte tool-call,
dus het kan niet worden hergebruikt om een andere call te autoriseren (anti-TOCTOU).
In productie wordt de hook geleverd in Claude Code’s enterprise managed-settings-tier met managed-hooks-only ingeschakeld, zodat een ontwikkelaar het niet kan uitschakelen of vervangen vanuit een lager-precedentie instellingenbestand. Identiteitshints die op het verzoek worden gestempeld verfijnen attributie; de gezaghebbende principal is de drager die de beslisser resolvet, en een beleid dat firm identiteit vereist weigert alles wat het alleen approximate kan attribueren.
Een lichtere, lokale modus
De connector ondersteunt ook een lokaal, in-process handhavingsbeleid geëvalueerd op het hot-pad van de hook met geen engine-roundtrip — zodat een traag of onbereikbaar control plane nooit een tool-call van een ontwikkelaar vastloopt. Het is opt-in: zonder regels geconfigureerd worden hooks waargenomen en nooit gegated. Dit is de coöperatief-standaard- houding; het bestuurde PEP hierboven is de tegengestelde houding waar je naar overschakelt wanneer het control plane de beslisser moet zijn.
Anti-ontwijking
Omdat het observatiepad coöperatief is, let de connector op een sessie die stopt met OTel-uitzending terwijl de hooks nog vuren — de signatuur van een agent die zijn exporter mid-sessie heeft uitgeschakeld terwijl het blijft handelen. Merk op wat het niet doet: een afgeronde agent wordt stil, en stilte alleen wordt nooit gemarkeerd. Ground truth voor echt niet-coöperatieve activiteit is de kernel/eBPF-backstop, niet deze heuristiek.
Air-gap: wat thuisblijft en wat niet
Het control plane draait binnen je eigen infrastructuur en kan air-gapped draaien — de bestuurs- en observatiedata (toegangsverbindingen, beslissingen, audit, kostenmonsters) verlaat nooit je perimeter. De OTLP-ontvanger en het hook-PEP zijn lokale sockets; de engine belt niet naar huis.
Een eerlijke kanttekening: Claude-inferentie is nooit air-gapped. Claude Code stuurt nog steeds zijn prompts naar Anthropic’s API (direct of via Bedrock, Vertex of Foundry) om een antwoord te krijgen. Het air-gappen van het control plane houdt de bestuursdata van je domein thuis; het verplaatst het model niet on-prem. Alleen echt zelf te hosten modellen (bijvoorbeeld via vLLM/Ollama) draaien volledig offline. Zie wat is Olivares AI en eerlijkheid en beperkingen.
Volgende stappen
- Besturen en goedkeuren — schrijf het beleid en de ask → menselijke-goedkeuringsloop die het PEP handhaaft.
- De toegangskaart — waar de waargenomen verbindingen naartoe voeden.
- Claude Code-bestuur — het productoverzicht van dit pad.