INTEGRATIONS
Govern supported execution routes. Know the exact boundary.
Connect supported providers, frameworks, and MCP routes with explicit coverage grades.
2
Released SDKs
15+
Documented integrations
App actions
Governed before owned side effects
RELEASED INTEGRATION PATHS
Pick Your Integration
Start at a boundary the SDK can actually intercept. Provider wrappers, model-start handlers, MCP governance, and framework tool gates each publish the exact route they own.
The Node preload hook covers supported provider modules loaded through its documented boundary. Use an explicit wrapper when you want the governed client reference and per-request context to be unmistakable.
// Zero-code: node --import @obsvr/sdk/register app.jsimport OpenAI from 'openai'import { obsvr } from '@obsvr/sdk'obsvr.init({ apiKey: process.env.OBSVR_API_KEY, environment: 'production',})const client = new OpenAI() // already governed// Or wrap explicitly for user-facing appsconst guardedClient = obsvr.wrap(client, { user_id: req.user.id,})SUPPORTED FRAMEWORKS
One policy model, different enforcement surfaces
A checkmark is not a universal enforcement promise. The SDK states whether each route owns provider dispatch, local tool invocation, or observation only, and tests enforcing routes at the side-effect boundary.
Chain-based LLM orchestration with tool use, retrieval, and multi-step reasoning pipelines.
+ obsvr Model-start callbacks run pre-call policy in both SDKs. Redaction fails closed when the callback cannot safely rewrite provider-bound input; installed tool callbacks govern supported local execution.
Stateful graph-based workflows with conditional branching, cycles, and persistent agent state.
+ obsvr LangChain model-start enforcement applies where LangGraph dispatches through that callback path. Tool and step gates still need to be installed at the framework boundary the application uses.
Data connectors, indexes, and query engines for connecting private data sources to language models.
+ obsvr Python startup installs the enforcing model-start boundary. TypeScript startup governs compatible models assigned through the intercepted root Settings.llm; tracing still observes, and agent tools remain explicit. govern_agent() and governed tools enforce before supported tool invocation.
OpenAI's agent runtime with hosted tools, handoffs, and multi-step tool-calling loops.
+ obsvr Startup interception governs supported concrete models, local function tools, handoffs, and later supported mutations. Tracing still observes; governModel / govern_model owns provider dispatch when installed explicitly, and hosted tools remain provider-side.
Role-based multi-agent coordination with delegated tasks, shared memory, and goal decomposition.
+ obsvr Python startup installs CrewAI's supported process-global pre-tool hook on compatible versions. That hook or a governed tool blocks supported local execution; run callbacks record the surrounding task, and earlier CrewAI versions require an explicit governed tool.
Microsoft's conversational multi-agent framework with message-passing and collaborative problem solving.
+ obsvr Python startup installs the supported AutoGen/ag2 execution gate. The explicit send hook and executor gate cover different message and function-map routes before invocation, with separate observation for model and agent activity.
TypeScript toolkit for streaming chat, tool calls, and generative UI in web applications.
+ obsvr Wrapped generateText and streamText calls enforce provider-bound policy. Govern individual tools separately for a pre-invocation tool gate.
Typed Python agent framework with function tools and composable toolsets.
+ obsvr govern_agent() binds where the agent assembles its toolsets, including tools added later. A denied supported tool executes zero times on the tested routes.
Pipeline and agent framework for retrieval, generation, and tool-driven workflows.
+ obsvr Pipeline guards withhold blocked prompts from downstream generators, while the Agent before-tool hook removes denied calls before local execution on supported versions.
FAQ
Integration Questions
No. obsvr doesn't orchestrate agents, manage memory, or route tool calls. It evaluates whether an action should be permitted, signs the decision, and commits it to a tamper-evident audit trail. You keep your framework; obsvr adds the governance layer.
Use an explicit provider wrapper for the clearest per-client boundary, zero-code Node interception for supported provider modules, and obsvrGovernMCP / govern_mcp at an MCP client boundary. The released public surface does not include a standalone MCP server or generic policy REST gateway.
On an enforcing route, the governed provider request or local tool body does not run. The caller receives that route's structured refusal or framework-native error result, and obsvr emits the signed decision. Shadow mode is separate: it records what policy would have decided and never labels the continued action as blocked.
Yes. governFn / govern_fn wraps an application-owned function such as sending a contract, issuing a refund, or writing a record. Policy runs before that function body, and the binding appears in the signed deployment coverage statement. Calls that bypass the governed function remain outside that claim.
For selected unary OpenAI, Anthropic, and Gemini methods, the opt-in strict profile requires a device-signed decision receipt to be admitted and durably committed before the provider is called. Unsupported streams, runners, and helper surfaces fail closed instead of silently dropping to ordinary execution.
The 0.11.2 local benchmark measured 24.7–25.1µs TypeScript and 97.6–100.0µs Python for sign-and-enqueue; the full local stack measured 63.2–64.1µs and 524.3–525.1µs respectively. A 10KB full-policy payload measured about 1.75ms TypeScript and 12.3–12.6ms Python. See BENCHMARKS.md for the exact environment and limitations.
Policy evaluation and SDK signing run inside the application process. Obsvr also ships a customer-VPC data plane through Docker Compose and Helm; fully air-gapped operation additionally requires the self-hosted policy/key store and dashboard.
Startup hooks can govern documented future provider, MCP, OpenAI Agents, Python CrewAI/AutoGen/LlamaIndex, and TypeScript LlamaIndex Settings routes. Exact required bindings can fail startup when an expected boundary does not attach. LangChain callbacks, hosted tools, pre-startup objects, saved raw aliases, custom transports, and unlisted paths remain explicit; startup is interception, not process-wide discovery.