Kitaru LangGraph adapter
Record and replay LangGraph agent runs with Kitaru.
Install
uv add kitaru-langgraph
Install kitaru-langgraph[deepagents] to also record agents built with deepagents.create_deep_agent through KitaruGraphRunner.from_agent_factory. The langchain.agents.create_agent factory and direct graph wrapping work without the extra.
Model providers
This distribution does not install any model-provider packages. Model strings passed to init_chat_model, such as "openai:gpt-5-nano", require the matching LangChain provider package (for example langchain-openai) in the agent environment. Install the provider package for each model your agent uses.
Use
import uuid
from langchain.agents import create_agent
from kitaru_langgraph import KitaruGraphRunner
runner = KitaruGraphRunner.from_agent_factory(
create_agent,
factory_kwargs={"model": "openai:gpt-5-nano", "tools": []},
agent_id=uuid.UUID("018f0000-0000-7000-8000-000000000100"),
)
result = runner.invoke({"messages": [{"role": "user", "content": "Hello"}]})
print(result)
Wrap an existing compiled graph directly with KitaruGraphRunner(graph) when you build the graph yourself. The runner accepts the same invocation arguments as the wrapped runnable. Kitaru workers provide task, replay, and authentication context through the standard task environment.
Replay support depends on how the graph was constructed. See the LangGraph adapter guide and capability matrix for supported invocation methods, overrides, tool policies, interrupts, and failure behavior.
LangGraph trace policies can omit middleware span inputs before callbacks receive them. With Deep Agents 0.7.9 and later, some built-in middleware spans therefore record inputs: {}; this does not prove that the hook received empty state. Model and tool call inputs remain recorded. See the adapter guide for details.
Deep Agents runs its built-in middleware before custom middleware, including Kitaru's. A built-in rejection, such as a parallel write to the same file, therefore takes precedence over Kitaru's static or history tool policy. Keeping the same Deep Agents version when replaying avoids changes to these built-in rules across versions.
Tool attempts that return a native result without executing a tool are recorded with execution: short_circuited. An error ToolMessage remains a completed result with its native error status, so history replay can return it to the model rather than turn it into a raised exception.
Links
Licensed under Apache-2.0.
Metadata
Release files for kitaru-langgraph 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| kitaru_langgraph-0.3.0.tar.gz | 26.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kitaru_langgraph-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 55.6 kB
Release files / kitaru_langgraph-0.3.0.tar.gz
| Download URL | kitaru_langgraph-0.3.0.tar.gz |
|---|---|
| Size | 26.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3edbf9e57aa569d099c7785a3ea2579d1ae74a6ae7caffda55ac8467a9780124
|
|
BLAKE2b-256 checksum How to use checksums |
b940f72699d24dbee6a7d5df8e22ef2b804c3faa00486ffda1374a63a9f30095
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency logRelease files / kitaru_langgraph-0.3.0-py3-none-any.whl
| Download URL | kitaru_langgraph-0.3.0-py3-none-any.whl |
|---|---|
| Size | 29.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f60ff9f7c04e274171d0430b2ea8da183d1885a2ba8604b00e43289086dbf3ef
|
|
BLAKE2b-256 checksum How to use checksums |
5ba58d92e2fcb4a786b0e12dca0c1e49d5bd6b33c22357114d66df7af5bc16df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency log