{"adoption": {"forks": 89, "observed_at": "2026-08-28T04:03:32.638190+00:00", "stars": 1089}, "canonical_url": "https://ross.abutalabs.com/products/trustcall", "card": {"archived": false, "artifact_type": "library", "description": "Tenacious tool calling built on LangGraph", "domain": ["large-language-models", "artificial-intelligence", "developer-tools"], "enriched": true, "function": ["llm-inference", "agent-framework", "serialization", "machine-learning"], "health_score": 39, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["hinthornw/trustcall"], "name": "hinthornw/trustcall", "platform": ["python"], "pushed_at": "2025-07-17T20:57:10+00:00", "repo": "hinthornw/trustcall", "stars": 1089, "tags": ["tool-calling", "structured-output", "-patch", "pydantic", "langgraph", "extraction", "ai-agents"], "topics": [], "urls": [], "use_cases": ["extract structured data from text with llms", "populate complex nested pydantic schemas reliably", "update existing  schemas without losing data", "retry llm validation errors automatically", "build multi-step agent tool use pipelines", "route llm outputs to tools"], "what_it_is": "A Python library that improves LLM tool calling reliability by having models generate JSON patch operations instead of full JSON blobs. It provides resilient validation retries and accurate schema updates for complex, nested schemas built on LangGraph.", "when_to_avoid": ["you need a language other than Python", "you don't use LLM tool calling or structured extraction", "you want a provider-agnostic solution without LangGraph dependencies"], "when_to_choose": ["you need reliable structured output from llms for complex nested schemas", "you want to update existing extraction results without information loss", "your stack already uses LangChain or LangGraph"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/trustcall", "repo": "hinthornw/trustcall", "role": "main", "score": 38}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.638190+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:49:17.920208+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7c8b01e796abcf7f25b06b988a1d8075dc3afdaa816d26dc1cc2db606e6f484c", "fetched_at": "2026-08-28T04:03:32.638190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hinthornw/trustcall"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.638190+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:49:17.920208+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7c8b01e796abcf7f25b06b988a1d8075dc3afdaa816d26dc1cc2db606e6f484c", "fetched_at": "2026-08-28T04:03:32.638190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hinthornw/trustcall"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:49:17.920208+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7c8b01e796abcf7f25b06b988a1d8075dc3afdaa816d26dc1cc2db606e6f484c", "fetched_at": "2026-08-28T04:03:32.638190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hinthornw/trustcall"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.638190+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.638190+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.638190+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:49:17.920208+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7c8b01e796abcf7f25b06b988a1d8075dc3afdaa816d26dc1cc2db606e6f484c", "fetched_at": "2026-08-28T04:03:32.638190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hinthornw/trustcall"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.638190+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.638190+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:49:17.920208+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7c8b01e796abcf7f25b06b988a1d8075dc3afdaa816d26dc1cc2db606e6f484c", "fetched_at": "2026-08-28T04:03:32.638190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hinthornw/trustcall"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.638190+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.638190+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.638190+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:49:17.920208+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7c8b01e796abcf7f25b06b988a1d8075dc3afdaa816d26dc1cc2db606e6f484c", "fetched_at": "2026-08-28T04:03:32.638190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hinthornw/trustcall"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.638190+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.638190+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:49:17.920208+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7c8b01e796abcf7f25b06b988a1d8075dc3afdaa816d26dc1cc2db606e6f484c", "fetched_at": "2026-08-28T04:03:32.638190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hinthornw/trustcall"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:49:17.920208+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7c8b01e796abcf7f25b06b988a1d8075dc3afdaa816d26dc1cc2db606e6f484c", "fetched_at": "2026-08-28T04:03:32.638190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hinthornw/trustcall"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:49:17.920208+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7c8b01e796abcf7f25b06b988a1d8075dc3afdaa816d26dc1cc2db606e6f484c", "fetched_at": "2026-08-28T04:03:32.638190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hinthornw/trustcall"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:49:17.920208+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7c8b01e796abcf7f25b06b988a1d8075dc3afdaa816d26dc1cc2db606e6f484c", "fetched_at": "2026-08-28T04:03:32.638190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hinthornw/trustcall"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 32, "longevity": 57, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 799, "days_push": 412, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 38, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}