Add runtime controls
without re-platforming your stack
Start by governing the workflow you already run. KLA supports govern-in-place instrumentation for existing frameworks and a more managed run-through-KLA pattern when you want tighter operational control.
SDK-first telemetry
Govern existing frameworks with SDKs and OpenTelemetry.
Execution API
Insert approval checkpoints and intercept risky actions at runtime.
Evidence export
Generate execution lineage that trust and compliance teams can reuse later.
Deployment patterns
Technical evaluators need to know whether KLA forces a rewrite. It does not. Pick the control pattern that matches your stack and governance maturity.
Govern in place
Instrument the agents, APIs, and orchestration frameworks you already operate, then add checkpoints at the moments that matter.
- Best for existing LangChain, custom orchestration, and internal workflow stacks
- Low-friction path for platform teams avoiding re-platform fear
- KLA focuses on controls, approvals, and proof rather than replacing your app
Run through KLA
Route execution through a managed KLA surface when you want tighter standardisation and a faster path to controlled production.
- Best for greenfield governed workflows or fragmented estates
- Reduces local integration work when teams want one control surface
- Uses the same approval, policy, and lineage model as govern in place
Quickstart
From zero instrumentation to governed execution and evidence export.
1. Install a telemetry SDK
Use our OpenTelemetry SDKs to emit GenAI spans automatically. Pick your runtime:
# Node.js pnpm add @kla-digital/otel-node # Python pip install kla-otel-python
The SDK auto-discovers common frameworks (Express, FastAPI, LangChain, OpenAI).
2. Point OTLP to KLA
Configure your OTLP exporter to send traces to your tenant's collector. You'll get the endpoint and API token in the Console.
OTEL_SERVICE_NAME=claims-service OTEL_EXPORTER_OTLP_ENDPOINT=https://<your-collector-endpoint> KLA_TENANT_ID=<your-tenant-id> KLA_PII_MASK=true
Set `KLA_PII_MASK` to avoid sensitive values in traces by default.
3. Register an agent
Agents are declared as manifests. Create one via the Execution API:
curl -X POST https://api.kla.local/execution/v1/agents \
-H "Authorization: Bearer $KLA_TOKEN" \
-H "x-tenant-id: $KLA_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"name": "claims-bot",
"description": "Triages inbound claims with human gates",
"model": "gpt-4o-mini",
"temperature": 0.2,
"tools": ["search_claims_db"]
}'The response includes a stable `agentId` and immutable `manifestHash`.
4. Start an execution
Executions are durable workflows with budgets and policy checks.
curl -X POST https://api.kla.local/execution/v1/executions \
-H "Authorization: Bearer $KLA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"agentId": "<agentId from step 3>",
"input": { "prompt": "Summarise today\u0027s high-risk claims." },
"budgets": { "maxSteps": 50, "maxTokens": 20000, "maxCostUsd": 5 },
"flags": { "euOnly": true }
}'Stream progress over WebSocket at `wss://api.kla.local/execution/ws`.
5. Export evidence (Annex IV, SOC 2)
The CLI pulls tamper-proof audit logs and generates signed bundles ready for regulators and auditors.
# Last 30 days as PDF kla export evidence --tenant $KLA_TENANT_ID --days 30 --format pdf # Filter by framework or controls kla export evidence --tenant $KLA_TENANT_ID --frameworks "SOC 2 Type II" --format csv
Official SDKs
Language-native OpenTelemetry with GenAI semantic conventions.
Node.js
Zero-config auto-instrumentation for Express, tRPC, LangChain, OpenAI, and more.
import '@kla-digital/otel-node';
Python
Drop-in FastAPI middleware and LangChain auto-instrumentation, with built-in PII masking and cost tracking.
import kla_otel_python
