For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

Framework
Install
Entry point
Records
Replays

PydanticAI

kitaru-pydantic-ai

kitaru_pydantic_ai.KitaruAgent

Yes

Yes

LangGraph

kitaru-langgraph

kitaru_langgraph.KitaruGraphRunner

Yes

Depends on construction

OpenAI Agents SDK

kitaru-openai-agents

kitaru_openai_agents.KitaruRunner

Yes

Yes

Claude Agent SDK

kitaru-claude-agent-sdk

kitaru_claude_agent_sdk.KitaruClaudeRunner

Yes

SDK MCP tools only

Importer-backed

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

Framework
Install
Entry point

Vercel AI SDK

@zenml-io/kitaru-vercel-ai

createKitaruToolLoopAgent, createKitaruGenerateText

Mastra

@zenml-io/kitaru-mastra

KitaruAgent

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-builder agent 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?