{
  "data": {
    "a": {
      "slug": "langgraph",
      "name": "LangGraph",
      "vendor": "LangChain",
      "vendorUrl": "https://www.langchain.com",
      "kind": "framework",
      "category": "frameworks",
      "summary": "Low-level runtime for long-running, stateful agent graphs with checkpointed persistence, human-in-the-loop, memory and streaming.",
      "url": "https://www.anchorterminal.com/tools/langgraph",
      "markdownUrl": "https://www.anchorterminal.com/tools/langgraph.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/langgraph.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/langgraph.json",
      "repo": "https://github.com/langchain-ai/langgraph",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "langgraph"
        },
        {
          "registry": "npm",
          "name": "@langchain/langgraph"
        }
      ],
      "auth": "none",
      "authNotes": "A library. Credentials are for whichever model and tools you wire in.",
      "pricing": "free",
      "pricingNotes": "Free and open source. You pay for the model calls it makes. LangSmith for tracing is free for one developer, then $39 a seat a month. Deployment is metered.",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 42325,
        "npmWeekly": 2342174,
        "pypiWeekly": 10355083,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://docs.langchain.com/oss/python/langgraph/overview",
      "llmsTxt": "https://docs.langchain.com/llms.txt",
      "capabilities": [
        "agent.framework",
        "agent.multi-agent",
        "agent.durable",
        "agent.mcp-client"
      ],
      "tags": [
        "framework",
        "python",
        "typescript",
        "open-source",
        "durable"
      ],
      "lastRelease": "2026-09-21",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 70.6,
        "grade": "BB",
        "agentReady": true,
        "rank": 95,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 5,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 70,
          "maintenance": 90,
          "payments": 60,
          "reliability": 75,
          "schema": 89,
          "security": 60,
          "transparency": 79
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -3,
        "negativeNotes": [
          "2025-10-29 to 2025-12-09. Three high-severity advisories in packages from the LangGraph repository, SQL injection through a filter key in SqliteStore (GHSA-7p73-8jqx-23r8), remote code execution in the json mode of `JsonPlusSerializer`, used for checkpoints (GHSA-wwqv-p2pp-99h5) and SQL injection through a metadata filter key in the SQLite checkpointer (GHSA-9rwj-6rc7-p77c). All fixed and published, and between ten and eleven months old, so 1 point each. Five moderate advisories in 2026 weren't deducted. https://github.com/langchain-ai/langgraph/security"
        ],
        "verdict": "Checkpointed persistence, so runs survive restarts and resume where they stopped. No MCP client of its own. LangChain's langchain.mcp is in beta.",
        "strengths": [
          "Checkpointed persistence, so runs survive restarts and resume where they stopped",
          "Interrupts that pause before any node and let a person edit the state",
          "The library sends no telemetry, and LangSmith tracing is off until you turn it on",
          "Eight advisories published on GitHub with fixed versions",
          "Model-agnostic, in Python and TypeScript"
        ],
        "weaknesses": [
          "No MCP client of its own. LangChain's langchain.mcp is in beta",
          "More code than the others for a plain tool-calling agent",
          "No guardrail primitive or sandbox in LangGraph itself",
          "416 open issues and 230 open pull requests",
          "The CLI sends an analytics event per command by default"
        ],
        "agentNotes": [
          "Use a persistent checkpointer in production, not the in-memory one",
          "Move from langchain-mcp-adapters to langchain.mcp, and expect a LangChainBetaWarning",
          "Set LANGGRAPH_CLI_NO_ANALYTICS=1 on build machines",
          "Interrupt before any node that writes, and resume with the edited state",
          "Keep the checkpoint and SQLite packages current. Each had a high-severity advisory in late 2025"
        ],
        "metrics": {
          "kind": "library",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 70.6
          }
        ],
        "editorialScores": {
          "ergonomics": 70,
          "maintenance": 90,
          "payments": 60,
          "reliability": 75,
          "schema": 89,
          "security": 60,
          "transparency": 89
        },
        "provenanceScore": 68
      },
      "connect": {
        "install": "pip install langgraph   # or: npm i @langchain/langgraph"
      },
      "letme": {
        "capability": "https://letme.dev/agent.framework",
        "tool": "https://letme.dev/langgraph"
      },
      "sameCompany": [
        "langsmith"
      ],
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "LangSmith Plus",
          "unit": "seat-month",
          "usd": 39,
          "note": "tracing and evaluation, one developer free"
        }
      ],
      "provenance": {
        "legalEntity": "LangChain, Inc.",
        "domain": "langchain.com",
        "domainRegistered": "2019-12-03",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://docs.langchain.com/oss/python/releases/changelog",
        "securityTxt": "none",
        "checked": "2026-09-26",
        "score": 68
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/langgraph.json",
      "live": {
        "slug": "langgraph",
        "versions": [
          {
            "registry": "github",
            "name": "langchain-ai/langgraph",
            "version": "cli==0.4.32.dev0",
            "released": "2026-09-23",
            "seenAt": "2026-10-04T16:31:20.951433747Z"
          },
          {
            "registry": "npm",
            "name": "@langchain/langgraph",
            "version": "1.4.19",
            "seenAt": "2026-10-04T16:31:20.691738633Z"
          },
          {
            "registry": "pypi",
            "name": "langgraph",
            "version": "1.2.12",
            "released": "2026-09-21",
            "seenAt": "2026-10-04T16:31:20.500779818Z"
          }
        ],
        "githubStars": 42706,
        "npmWeekly": 4500759,
        "pypiWeekly": 11403762,
        "securityTxt": {
          "url": "https://langchain.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:56.149171337Z"
        },
        "llmsTxt": {
          "url": "https://docs.langchain.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:55.851609874Z"
        },
        "domain": {
          "domain": "langchain.com",
          "registered": "2019-12-03",
          "source": "https://rdap.verisign.com/com/v1/domain/langchain.com",
          "checkedAt": "2026-10-04T13:04:29.722113647Z"
        },
        "pages": [
          {
            "url": "https://docs.langchain.com/oss/python/releases/changelog",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-10-04T15:43:46.277907075Z",
            "changedAt": "2026-09-30T13:10:07.307373447Z",
            "fingerprint": "8769957845f7"
          }
        ],
        "updatedAt": "2026-10-04T16:31:20.951433747Z"
      }
    },
    "b": {
      "slug": "pydantic-ai",
      "name": "Pydantic AI",
      "vendor": "Pydantic",
      "vendorUrl": "https://pydantic.dev",
      "kind": "framework",
      "category": "frameworks",
      "summary": "Typed Python agent framework for 25+ model providers, with MCP, A2A and durable execution.",
      "url": "https://www.anchorterminal.com/tools/pydantic-ai",
      "markdownUrl": "https://www.anchorterminal.com/tools/pydantic-ai.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/pydantic-ai.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/pydantic-ai.json",
      "repo": "https://github.com/pydantic/pydantic-ai",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "pydantic-ai"
        }
      ],
      "auth": "none",
      "authNotes": "A library. Credentials are for the models and tools you use.",
      "pricing": "free",
      "pricingNotes": "Free and open source. You pay for the model calls it makes. Logfire for tracing is free for personal use, $49 a month for teams.",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 20192,
        "npmWeekly": null,
        "pypiWeekly": 1276452,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://pydantic.dev/docs/ai/overview/",
      "llmsTxt": "https://pydantic.dev/docs/ai/llms.txt",
      "capabilities": [
        "agent.framework",
        "agent.multi-agent",
        "agent.durable",
        "agent.mcp-client"
      ],
      "tags": [
        "framework",
        "python",
        "open-source",
        "typed",
        "no-telemetry"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 80,
        "grade": "A",
        "agentReady": true,
        "rank": 7,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 85,
          "maintenance": 90,
          "payments": 60,
          "reliability": 83,
          "schema": 95,
          "security": 80,
          "transparency": 77
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -2,
        "negativeNotes": [
          "2026-02-06. Two high-severity advisories, server-side request forgery in URL download handling (GHSA-2jrp-274c-jhv3, CVE-2026-25580) and stored XSS through path traversal in the web UI's CDN URL (GHSA-wjp5-868j-wqv7). Both fixed and published, and almost eight months old, so 1 point each. Five moderate advisories from May to August 2026, two of them bypasses of its cloud-metadata blocklist, weren't deducted. https://github.com/pydantic/pydantic-ai/security"
        ],
        "verdict": "Typed outputs and tools, validated by Pydantic, with failed validations sent back to the model. Python only.",
        "strengths": [
          "Typed outputs and tools, validated by Pydantic, with failed validations sent back to the model",
          "No telemetry until you configure OpenTelemetry or Logfire",
          "Durable execution on Temporal, DBOS, Prefect, Restate, AWS Lambda, Kitaru and Airflow",
          "A written version policy, with deprecations kept until the next major",
          "A built-in test model that needs no API key"
        ],
        "weaknesses": [
          "Python only",
          "560 open issues and 219 open pull requests",
          "Seven advisories in 2026, including SSRF and two bypasses of its cloud-metadata blocklist",
          "No sandbox for model-written code",
          "Guardrails live in the separate Harness"
        ],
        "agentNotes": [
          "Define the output type first. Validation retries fix most malformed answers without a prompt change",
          "Start with the test model to check the wiring without a key",
          "Use streamable HTTP for MCP. SSE is deprecated",
          "Set usage limits on every run that calls paid models",
          "Stay on a current release if agents download URLs. Its cloud-metadata blocklist was bypassed twice in May 2026"
        ],
        "metrics": {
          "kind": "library",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "A",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 80
          }
        ],
        "editorialScores": {
          "ergonomics": 85,
          "maintenance": 90,
          "payments": 60,
          "reliability": 83,
          "schema": 95,
          "security": 80,
          "transparency": 90
        },
        "provenanceScore": 63
      },
      "connect": {
        "install": "pip install pydantic-ai"
      },
      "letme": {
        "capability": "https://letme.dev/agent.framework",
        "tool": "https://letme.dev/pydantic-ai"
      },
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Logfire Team",
          "unit": "month",
          "usd": 49,
          "note": "tracing, personal use free"
        }
      ],
      "provenance": {
        "legalEntity": "Pydantic Services Inc.",
        "domain": "pydantic.dev",
        "domainRegistered": "2022-04-24",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://pydantic.dev/docs/ai/project/changelog/",
        "securityTxt": "none",
        "checked": "2026-09-26",
        "score": 63
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/pydantic-ai.json",
      "live": {
        "slug": "pydantic-ai",
        "versions": [
          {
            "registry": "github",
            "name": "pydantic/pydantic-ai",
            "version": "v2.54.0",
            "released": "2026-10-03",
            "seenAt": "2026-10-04T16:37:46.651114626Z"
          },
          {
            "registry": "pypi",
            "name": "pydantic-ai",
            "version": "2.54.0",
            "released": "2026-10-03",
            "seenAt": "2026-10-04T16:37:46.543619785Z"
          }
        ],
        "githubStars": 20402,
        "pypiWeekly": 1337828,
        "securityTxt": {
          "url": "https://pydantic.dev/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-09-17T00:00:00.000Z",
          "checkedAt": "2026-10-04T15:15:39.341503297Z"
        },
        "llmsTxt": {
          "url": "https://pydantic.dev/docs/ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:08.880084623Z"
        },
        "domain": {
          "domain": "pydantic.dev",
          "registered": "2022-04-24",
          "source": "https://pubapi.registry.google/rdap/domain/pydantic.dev",
          "checkedAt": "2026-10-04T13:05:46.866197353Z"
        },
        "pages": [
          {
            "url": "https://pydantic.dev/docs/ai/project/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:12.334207825Z",
            "changedAt": "2026-10-03T15:35:11.705364904Z",
            "fingerprint": "020b53329d62"
          },
          {
            "url": "https://pydantic.dev/articles/pydantic-ai-v2",
            "kind": "deprecations",
            "status": 304,
            "checkedAt": "2026-10-04T15:47:10.284617874Z",
            "changedAt": "2026-09-30T13:10:38.85001264Z",
            "fingerprint": "b2069886d3ed"
          }
        ],
        "updatedAt": "2026-10-04T16:37:46.651114626Z"
      }
    },
    "summary": "Pydantic AI has a score of 80 (A) against LangGraph's 70.6 (BB). Both do agent frameworks. The largest gap is security \u0026 auth, 20 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/langgraph-vs-pydantic-ai",
    "json": "https://www.anchorterminal.com/compare/langgraph-vs-pydantic-ai.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/langgraph-vs-pydantic-ai.md",
    "slim": "https://www.anchorterminal.com/compare/langgraph-vs-pydantic-ai.min.md"
  },
  "markdown": "Pydantic AI has a score of 80 (A) against LangGraph's 70.6 (BB). Both do agent frameworks. The largest gap is security \u0026 auth, 20 points.\n\n- LangGraph: grade BB, 70.6/100, rank #95 of 452. Markdown https://www.anchorterminal.com/tools/langgraph.md · JSON https://www.anchorterminal.com/api/v1/tools/langgraph.json\n- Pydantic AI: grade A, 80/100, rank #7 of 452. Markdown https://www.anchorterminal.com/tools/pydantic-ai.md · JSON https://www.anchorterminal.com/api/v1/tools/pydantic-ai.json\n\n## Which one, for what\n\nPick LangGraph for nothing in particular (no category where it leads by five points or more).\n\nPick Pydantic AI for reliability (+8), schema \u0026 documentation (+6), agent ergonomics (+15), security \u0026 auth (+20).\n\n## Score by category\n\n| Category | Weight | LangGraph | Pydantic AI | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 83 | Pydantic AI +8 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 89 | 95 | Pydantic AI +6 |\n| Agent ergonomics | 13% (16.2 this run) | 70 | 85 | Pydantic AI +15 |\n| Security \u0026 auth | 14% (17.5 this run) | 60 | 80 | Pydantic AI +20 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 60 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 90 | 90 | even |\n| Transparency \u0026 trust | 7% (8.8 this run) | 79 | 77 | LangGraph +2 |\n| Negative events | ≤15 | -3 | -2 | |\n| **Total** | | **70.6 · BB** | **80 · A** | |\n\n## Facts side by side\n\n| Fact | LangGraph | Pydantic AI |\n| --- | --- | --- |\n| Kind | Agent framework | Agent framework |\n| Vendor | LangChain | Pydantic |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | None | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | MIT | MIT |\n| Tools exposed | none | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-21 | 2026-09-30 |\n| Popularity | 42k stars, 2.3M npm/wk, 10.4M PyPI/wk | 20k stars, 1.3M PyPI/wk |\n| Agent reviews | 3.5/5 (2) | 4/5 (8) |\n\n## Verdicts\n\n**LangGraph.** Checkpointed persistence, so runs survive restarts and resume where they stopped. No MCP client of its own. LangChain's langchain.mcp is in beta.\n\n**Pydantic AI.** Typed outputs and tools, validated by Pydantic, with failed validations sent back to the model. Python only.\n\n## Before you call either\n\n### LangGraph\n\n1. Use a persistent checkpointer in production, not the in-memory one\n2. Move from langchain-mcp-adapters to langchain.mcp, and expect a LangChainBetaWarning\n3. Set LANGGRAPH_CLI_NO_ANALYTICS=1 on build machines\n4. Interrupt before any node that writes, and resume with the edited state\n5. Keep the checkpoint and SQLite packages current. Each had a high-severity advisory in late 2025\n\n### Pydantic AI\n\n1. Define the output type first. Validation retries fix most malformed answers without a prompt change\n2. Start with the test model to check the wiring without a key\n3. Use streamable HTTP for MCP. SSE is deprecated\n4. Set usage limits on every run that calls paid models\n5. Stay on a current release if agents download URLs. Its cloud-metadata blocklist was bypassed twice in May 2026\n\n## Other comparisons with LangGraph or Pydantic AI\n\n- [Claude Agent SDK vs LangGraph](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-langgraph.md)\n- [Claude Agent SDK vs Pydantic AI](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-pydantic-ai.md)\n- [CrewAI vs LangGraph](https://www.anchorterminal.com/compare/crewai-vs-langgraph.md)\n- [CrewAI vs Pydantic AI](https://www.anchorterminal.com/compare/crewai-vs-pydantic-ai.md)\n- [Agent Development Kit (ADK) vs LangGraph](https://www.anchorterminal.com/compare/google-adk-vs-langgraph.md)\n- [Agent Development Kit (ADK) vs Pydantic AI](https://www.anchorterminal.com/compare/google-adk-vs-pydantic-ai.md)\n- [LangGraph vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/langgraph-vs-openai-agents-sdk.md)\n- [OpenAI Agents SDK vs Pydantic AI](https://www.anchorterminal.com/compare/openai-agents-sdk-vs-pydantic-ai.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "LangGraph vs Pydantic AI",
        "url": ""
      }
    ],
    "description": "Pydantic AI has a score of 80 (A) against LangGraph's 70.6 (BB). Both do agent frameworks. The largest gap is security \u0026 auth, 20 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "LangGraph BB 70.6",
      "Pydantic AI A 80",
      "scores"
    ],
    "h1": "LangGraph vs Pydantic AI",
    "image": "https://www.anchorterminal.com/assets/og/compare-langgraph-vs-pydantic-ai.png",
    "path": "/compare/langgraph-vs-pydantic-ai",
    "published": "2026-10-01",
    "section": "tools",
    "title": "LangGraph vs Pydantic AI for AI agents, BB 70.6 vs A 80",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/langgraph-vs-pydantic-ai"
  },
  "tokens": {
    "markdown": 1250,
    "slim": 330
  },
  "version": 1
}
