> For the complete documentation index, see [llms.txt](https://docs.zenml.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zenml.io/kitaru/adapters/adapters.md).

# Overview

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](/kitaru/import-your-traces/import-your-traces.md), 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](/kitaru/core-concepts/replay.md) work: it applies supported overrides at the model boundary and answers tool calls per the [tool policy](/kitaru/guides/tool-policies.md). Capabilities differ by integration. The current TypeScript adapters record non-streaming calls only; the Vercel adapter also 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/adapters/pydantic-ai.md)          | `kitaru-pydantic-ai`   | `kitaru_pydantic_ai.KitaruAgent`     | Yes     | Yes                     |
| [LangGraph](/kitaru/adapters/langgraph.md)             | `kitaru-langgraph`     | `kitaru_langgraph.KitaruGraphRunner` | Yes     | Depends on construction |
| [OpenAI Agents SDK](/kitaru/adapters/openai-agents.md) | `kitaru-openai-agents` | `kitaru_openai_agents.KitaruRunner`  | Yes     | Yes                     |

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](/kitaru/adapters/langgraph.md) is the reference.

### TypeScript

| Framework                                      | Install                      | Entry point                                             |
| ---------------------------------------------- | ---------------------------- | ------------------------------------------------------- |
| [Vercel AI SDK](/kitaru/adapters/vercel-ai.md) | `@zenml-io/kitaru-vercel-ai` | `createKitaruToolLoopAgent`, `createKitaruGenerateText` |
| [Mastra](/kitaru/adapters/mastra.md)           | `@zenml-io/kitaru-mastra`    | `KitaruAgent`                                           |

Both build on [`@zenml-io/kitaru`](/kitaru/get-help/sdks.md), 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](/kitaru/adapters/custom.md) for three options available today:

* **Import.** Your framework already emits traces to Langfuse, LangSmith, Braintrust, Logfire, or Arize Phoenix? [Import them](/kitaru/import-your-traces/import-your-traces.md); sessions from imports can be replayed and evaluated like any other. Convert any other format to [Kitaru JSONL](/kitaru/import-your-traces/importing-sessions.md).
* **Record directly.** Create a session and ingest its nodes with the Python or TypeScript client. The `kitaru-adapter-builder` [agent skill](/kitaru/getting-started/setup.md) 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(...)`; the Vercel AI SDK adapter returns either a public AI SDK Agent or a native-signature `generateText(...)` function. Under a [worker](/kitaru/core-concepts/workers.md), the same 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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.zenml.io/kitaru/adapters/adapters.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
