Overview
One wrapper, no rewrite. Adapters record your existing agent's runs as replayable sessions.
Adapters are the first of two ways into Kitaru: wrap the agent you already have, and every run is recorded natively. (The second, importing the traces you already collect, needs no adapter at all.)
An adapter leaves your framework in charge of the agent loop while recording the model and tool activity that the integration exposes. The same adapter makes replay work: it applies supported overrides at the model boundary and answers tool calls per the tool policy. Capabilities differ by integration. The Mastra adapter records generate() and supported 1.67.x streams, while streaming replay remains unsupported. The Vercel adapter preserves Agent stream() outside replay as a native, recording-free passthrough. Each adapter page states its exact boundary.
Available adapters
Each adapter ships as its own distribution, installed alongside Kitaru in the agent's environment.
Python
kitaru-claude-agent-sdk
kitaru_claude_agent_sdk.KitaruClaudeRunner
Yes
SDK MCP tools only
kitaru-<provider>-importer[adapter]
<Provider>Adapter in the package's adapter module
Yes, through the provider trace
Passthrough only
LangChain agents and Deep Agents use the LangGraph adapter, since their public factories return LangGraph runnables. What the LangGraph adapter can replay depends on how the graph was constructed; its capability matrix is the reference.
TypeScript
Both build on @zenml-io/kitaru, the framework-neutral TypeScript client and adapter foundation. Its resource namespaces cover the record-review-evaluate-experiment workflow; it deliberately does not provide a framework-neutral agent, CLI, or streaming abstraction.
If your framework isn't covered, see No adapter for your framework for three options available today:
Import. Your framework already emits traces to Langfuse, LangSmith, Braintrust, Logfire, Arize Phoenix, or MLflow? Import them; sessions from imports can be replayed and evaluated like any other. Convert any other format to Kitaru JSONL.
Record directly. Create a session and ingest its nodes with the Python or TypeScript client. The
kitaru-adapter-builderagent skill will write that integration with you.
Why the wrapper is enough
"One wrapper, no rewrite" means you keep the framework's agent loop and native result types. The Python adapters expose framework-shaped runner or agent objects. Mastra adds a KitaruAgent(existingAgent, options) with generate(...) and a native-typed stream(...) on supported agents; the Vercel AI SDK adapter returns either a public AI SDK Agent or a native-signature generateText(...) function. Under a worker, the same generate entrypoint reads the replay task environment, substitutes the recorded inputs, and applies the supported replay configuration. Your application does not need a separate replay branch.
Last updated
Was this helpful?