Skip to main content
Sakshi witnesses the AI agents you already run. You do not rewrite the agent. You wrap the client it calls, and every model call is recorded on the chain, with the served model identity, tokenized inputs, and outcome. Sakshi never sees a raw identifier: PII is tokenized at ingest, before anything is stored or hashed.
OpenAIAnthropicGoogle GeminiAWS BedrockLangChainLangGraphGoogle ADKCrewAIAWS StrandsAutoGenMCP

Product names and marks are trademarks of their respective owners, shown to indicate compatibility, not endorsement.

The integration doctrine

There are three ways in, and every one lands on the same chain.

SDK

A few lines. You open a witness session and record the steps of a decision yourself. Full control over what becomes evidence.

Middleware

One line. Wrap the provider client once and every model call inside a witness session is recorded automatically, with no rewrite of the agent.

MCP

Govern any agent that speaks the Model Context Protocol, including agents you cannot instrument, through a client session wrapper or a proxy.
The middlewares are the shortest path. They are duck-typed, so the Sakshi SDK carries no dependency on any provider SDK: a middleware wraps any object with the right shape, attaches to the active witness session, and auto-fills the served model identity from the provider’s response (the RBI draft para-56 evidence, per decision).

Supported providers

OpenAI and OpenAI-compatible

The OpenAI client, plus Ollama, vLLM, TGI, and LM Studio through a base URL. The sovereign, self-hosted path.

Anthropic

The Anthropic Messages API shape.

Google Gemini

The google-genai SDK shape.

AWS Bedrock

The bedrock-runtime Converse API. Residency-compliant in AWS Mumbai.

LangChain

The same provider middlewares underneath, plus the LangGraph path for graph apps.

LangGraph

Bracket a compiled graph and witness individual nodes.

Google ADK

Register one plugin on the Runner to witness the whole agent tree, and optionally enforce in the tool path.

CrewAI

Register one event listener to witness a crew’s model and tool calls.

AWS Strands

One hook provider to witness tool and model calls, and cancel a tool through the envelope.

AutoGen

Govern at the tool boundary and the model client. The honest paths that work.
Every function lives in sakshi.middleware:

The shared shape

Every integration follows the same four steps: point the SDK at your deployment, register the agent, wrap the provider client once, then make calls inside a witness session.
You do not pass the model to witness when a middleware is in play. The middleware fills the served model identity from the provider’s response, so the record reflects what actually answered, not what you intended to call.
Evidence belongs to decisions. A model call made outside a witness session passes through untouched and is not recorded. Recording is also fail-open: a problem writing evidence never breaks or delays the host agent’s call.

Where to go next

Python SDK

The client, the witness session, enforcement, and the exception model.

MCP governance

The MCP server and the interception proxy for zero-code governance.

The decision chain

How steps become a tamper-evident record anyone can recompute.

Quickstart

Register, witness, and verify the chain in a few minutes.