skillfed

trustcall

Tenacious & trustworthy tool calling built on LangGraph.

trustcall v0.0.39 1.0M downloads/30d#4,522 on PyPI
Permissive license MIT AGING released

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 trustcall

uv

uv add trustcall

poetry

poetry add trustcall

Installing 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

llm json schema extractionstructured output generationjson patch tool callinglanggraph structured extractionllm validation error recovery
llm-tool-callingjson-extractionstructured-output

More Artificial Intelligence packages

Further reading