The Sentinel SDK runs in-process inside your agent framework. It captures every tool call, sub-agent spawn, and internal prompt via OpenTelemetry, before execution. It signs every agent session with a verifiable identity. And it enforces Kill Switch isolation at the call boundary, before any tool call leaves the process. Integration is one decorator and a config block.
The SDK hooks the agent framework's tool-call dispatch. Every call is captured as an OpenTelemetry span with full parameter context, then routed to Time Machine and Overseer in parallel with execution. If a policy decision is required (rare; most policy runs at the Gateway), the call is held until the verdict returns.
from bladerun import Sentinel
# one decorator on your agent factory
@Sentinel.govern(agent_id="payment-orch")
def build_agent():
return AgentExecutor(
agent=agent,
tools=tools,
verbose=True,
)
# every tool call now flows through
# Sentinel before execution.
When an agent session starts, the SDK requests a signed session credential from the local identity provider, your existing AP2, Okta, Ping, or Entra installation; X.509 fallback if needed. Every outbound call carries the signed identity. The Gateway rejects unsigned traffic at L1. The audit trail is signed end-to-end.
# 1. agent session starts
session = Sentinel.begin_session(
principal="jane.doe@bank",
agent_id="payment-orch",
tools=["read_account", "summarize"],
)
# 2. signed credential issued
session.credential
# > ed25519:sess_8a91d2c1f4...
# 3. every outbound call carries it
# Gateway L1 verifies. Unsigned = reject.
Every Sentinel SDK in the agent fleet maintains a Redis pub/sub subscription. When Overseer fires the Kill Switch on a session, the targeted SDK denies any further tool call within milliseconds, at the SDK boundary, before the call leaves the process. Median time from anomaly detection to total isolation: under 50ms.
# overseer detects anomaly · score 0.91
# > KillSwitch.fire(session_id="sess_8a91")
# every Sentinel SDK sees it within ms
# via redis pub/sub fan-out
# next tool call inside that session:
agent.invoke("transfer 50k to...")
# > SentinelIsolatedError(
# > session_id="sess_8a91",
# > isolated_at="2026-04-18T14:22:13Z",
# > reason="overseer.anomaly_score_threshold")
If your agent framework emits OpenTelemetry spans, Sentinel SDK integrates via configuration. For frameworks without native OTel support, we maintain instrumentation libraries that ship and update independently of the framework's release cycle.
Python · TypeScript
Python · TypeScript
Python
Python
Python
Python · .NET
Python · TypeScript
Python · TypeScript
Python · Java
Python · TypeScript
Java
Any language · OTel SDK
The SDK is a library, not a service. It runs in your agent's process, in your container, on your infrastructure. The three downstream connections, Gateway (outbound calls), Time Machine (logging), Kill Switch (isolation), are configurable per environment and fail closed by default.
In-process. Hooks the framework's tool-call dispatch. Captures, signs, enforces.
Every signed outbound call routes through the Gateway for inspection.
OTel spans land in Time Machine. Redis pub/sub feeds isolation events.
Receives signed calls from Sentinel. Verifies identity, inspects content, redacts NPI, blocks injection.
Explore Gateway →Consumes the OTel spans the SDK emits. Per-agent baseline scoring; fires Kill Switch on anomaly.
Explore Overseer →The SDK is the enforcement boundary. Subscribed Sentinels deny any further tool call within ms.
Explore Kill Switch →A single decorator on the agent factory and a config block in your environment. The SDK hooks the framework's existing tool-call dispatch. Your agent code does not change. For frameworks with strong OpenTelemetry support (LangGraph, LlamaIndex, OpenAI Agents SDK), the integration is configuration-only.
Under 1ms for capture and signing. The SDK runs in-process and uses an in-memory ring buffer for span emission; OTel export happens asynchronously. Kill Switch checking is a hot-path Redis call against a local-region replica, sub-millisecond at p95.
No. Sentinel verifies whatever identity your organization already uses, AP2, Okta, Ping, Entra, and falls back to X.509 only if needed. We do not introduce a parallel identity system. The session credential is signed by your existing identity infrastructure; Sentinel produces and propagates it.
The SDK falls back to a local cache of recent isolation events refreshed on a 1-second cadence. In a worst-case scenario, the maximum window during which an isolated agent could complete additional calls is approximately the cache refresh interval. The configuration of this cache is exposed; tighter intervals are supported for the highest-stakes agent classes.
Yes. In air-gapped deployments, the Kill Switch backplane runs locally and the SDK subscribes to it the same way. Federation participation is the only feature that requires connectivity, and it is opt-in. The SDK and the rest of the platform are fully functional offline.
When an orchestrator spawns a sub-agent, Sentinel propagates a child-session credential that links back to the parent. Tool-call permissions on the child are scoped down by the parent at spawn time. The child cannot exceed the parent's tool certificate. Time Machine reconstructs the full lineage, and Overseer scores the orchestrator and each child independently.
Pilot the SDK in one agent. OTel spans flow to your existing observability stack alongside Time Machine. Visible results without any blocking enforcement until your team is ready.