trustcall
Tenacious & trustworthy tool calling built on LangGraph.
What it is and what it does
Trustcall is a LangGraph-based tool for making LLM-driven structured data extraction and updates more reliable and cost-effective. It works by asking LLMs to generate JSON patch operations (RFC 6902) instead of full JSON blobs, which simplifies the generation task and enables iterative, resilient error recovery. The package handles complex, nested Pydantic schemas, schema dictionaries, and Python functions as validation targets, and automatically retries failed extractions by prompting the LLM to generate only the patches needed to fix validation errors.
The core use case is tool calling workflows—extraction, routing, and multi-step agent tasks—where naive LLM JSON generation often fails on complex nested structures or when updating existing objects. By using patches, trustcall reduces both failure rates and token costs: only the parts that failed are regenerated, not the entire output. It depends on langgraph, dydantic, and jsonpatch.
Use it for:
- Extract complex nested user preferences or configuration objects from conversational input without validation errors.
- Update existing JSON documents (e.g., user profiles, memory records) when an LLM receives new information, avoiding unintended deletions.
- Build multi-step LLM agent workflows that route between tools or call multiple tools in sequence with reliable structured output.
- Reduce token costs in extraction tasks by retrying only the failed portions of a schema rather than regenerating the entire output.
- Handle LLM tool calling where the schema is too complex for strict mode or standard JSON schema parsers.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Trustcall helps LLMs reliably generate and update complex JSON structures by using JSON patch operations instead of full regeneration, with built-in retry logic for validation errors.
Yes, if you're building LLM-driven extraction or tool-calling workflows with complex nested schemas. The patch-based approach genuinely solves real problems (validation failures on nested structures, information loss on updates) that naive regeneration doesn't handle well. Install friction is low and there are no known vulnerabilities. Monitor the aging maintenance status, but the last release is recent enough that the package is not abandoned.
Install
trustcall on PyPI
pip
pip install trustcalluv
uv add trustcallpoetry
poetry add trustcallInstalling trustcall
Before you install
Low install friction with a pure-Python wheel. Maintenance status is aging—last release was 2025-04-14 and the package is 487 days old—so monitor for updates, but no critical signals present.
License in practice
MIT license is permissive; you can use, modify, and distribute trustcall freely in commercial and private projects with minimal restrictions.
Quickstart
pip install trustcall
from trustcall import create_extractor
extractor = create_extractor(llm, tools=[YourSchema])
result = extractor.invoke("Extract data from: ...")
Requires Python 3.10 or later and a configured LLM provider with API credentials.
Verify before relying
- Whether the aging maintenance status (487 days since first release) signals active maintenance or dormancy.
- Performance characteristics when handling deeply nested schemas or very large JSON structures.
- Compatibility with LLM providers other than those shown in documentation examples.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (<4.0,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — langgraph, dydantic, jsonpatch |
| Maintenance | aging — 487 days since the last release |
| First released | |
| Downloads | 1,007,549/month — #4,522 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: trustcall-0.0.39-py3-none-any.whl
Tags
More Artificial Intelligence packages
LiteLLM provides a unified Python interface to…
permissive · top 100 on PyPI
huggingface-hubClient library and CLI tool for downloading,…
permissive · top 100 on PyPI
langchainLangChain provides a framework for building…
permissive · top 1,000 on PyPI
hf-xethf-xet provides chunk-based deduplication and…
permissive · top 1,000 on PyPI
tokenizersTokenizers converts raw text into token…
permissive · top 1,000 on PyPI
transformersTransformers provides a unified framework for…
permissive · top 1,000 on PyPI
instructorInstructor wraps LLM APIs to extract validated,…
permissive · top 5,000 on PyPI
outlinesOutlines constrains LLM generation to produce…
permissive · top 5,000 on PyPI
langextractLangExtract uses LLMs to extract and ground…
permissive · top 15,000 on PyPI
lm-format-enforcerConstrains language model token generation to…
permissive · top 5,000 on PyPI
voluptuous-serializeConverts Voluptuous schema objects into…
permissive · top 15,000 on PyPI
jsonquerylangExecutes queries against JSON data using a…
permissive · top 15,000 on PyPI
jamboConverts JSON Schema definitions into Pydantic…
permissive · top 15,000 on PyPI
langchain-togetherConnects LangChain applications to Together…
permissive · top 15,000 on PyPI
cleanlab-tlmCleanlab TLM scores the trustworthiness of LLM…
permissive · top 15,000 on PyPI
agentevalsProvides evaluators and utilities to assess…
permissive · top 15,000 on PyPI