{
  "data": {
    "a": {
      "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",
      "dns": "pydantic-ai.grade.anchorterminal.com",
      "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-10-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 81.9,
        "grade": "A",
        "agentReady": true,
        "rank": 7,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 3,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 95,
          "maintenance": 90,
          "payments": 60,
          "reliability": 83,
          "schema": 100,
          "security": 95,
          "transparency": 87
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "high",
          "date": "2026-11-01"
        },
        "negative": -6,
        "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 more than eight months old, so 1 point each. Nine moderate and two low advisories from May to October 2026, three of them bypasses of its cloud-metadata blocklist, weren't deducted. https://github.com/pydantic/pydantic-ai/security",
          "2026-08-12. High-severity advisory GHSA-h4xc-3qfq-jf93 (CVSS 7.6). A website the developer visited could trigger agent runs and server-side tool execution through the local web chat UI (`Agent.to_web()`, `clai web`). Fixed in 2.28.0 and 1.107.4 and published, under two months old, so 2 points. It wasn't in the 1 October dossier. https://github.com/pydantic/pydantic-ai/security/advisories/GHSA-h4xc-3qfq-jf93",
          "2026-10-08. High-severity advisory GHSA-6fqq-452j-qhrp (CVE-2026-107286, CVSS 7.5, availability only). With `ConcurrencyLimitedModel` or `limit_model_concurrency`, a streamed request that ended early could keep its slot, so a network client could exhaust a shared limiter by starting streams and disconnecting. Fixed in 2.53.0 on 2 October and added to the GitHub Advisory Database on 8 October, after the 4 October check, so 2 points as for the other fixed High under two months old. https://osv.dev/vulnerability/GHSA-6fqq-452j-qhrp"
        ],
        "verdict": "Typed outputs and tools, validated by Pydantic, with failed validations sent back to the model. Python only.",
        "bestFor": "Python teams that want typed, validated outputs and tools, many model providers and durable runs on an engine they already use.",
        "strengths": [
          "Typed outputs and tools, validated by Pydantic, with failed validations sent back to the model",
          "No telemetry until you configure OpenTelemetry or Logfire, and the docs say nothing is sent otherwise",
          "Durable execution on nine engines, including Temporal, DBOS, Prefect, Restate and AWS Lambda",
          "Read-only workspaces in core, and Harness sandboxes for commands and model-written code",
          "A written version policy, with deprecations kept until the next major and V1 security releases still shipping"
        ],
        "weaknesses": [
          "Python only, and 3.11 or newer since 2.55.0",
          "1.1k open issues and 469 open pull requests on 1 November 2026, roughly double the 1 October counts",
          "Fifteen advisories in 2026, four high, including SSRF, three cloud-metadata blocklist bypasses and a cross-site flaw in the web chat UI",
          "Sandboxes, guardrails and the injection defender live in the Harness, a separate 0.x package classed Alpha",
          "The Prompt Injection Defender passes results through unchanged unless `block_high_risk=True` is set"
        ],
        "agentNotes": [
          "Define the output type first. Validation retries fix most malformed answers without a prompt change, and the test model checks the wiring with no key",
          "Use streamable HTTP for MCP, since SSE is deprecated. Call `.defer_loading()` on large MCP servers so their tools stay out of context until searched",
          "Set usage limits on every run that calls paid models",
          "Give model-run commands `LocalWorkspace(read_only=True)` or a Harness sandbox. A plain `LocalWorkspace` runs them on your machine as you",
          "Stay on 2.53.0 or later, and the Harness on 0.59.0 or later. 2026 advisories hit URL downloads, the metadata blocklist, the web chat UI, streamed requests and nested CodeMode calls"
        ],
        "metrics": {
          "kind": "library",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "high",
            "grade": "A",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 81.9
          }
        ],
        "editorialScores": {
          "ergonomics": 95,
          "maintenance": 90,
          "payments": 60,
          "reliability": 83,
          "schema": 100,
          "security": 95,
          "transparency": 95
        },
        "provenanceScore": 79,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-01",
            "maintenance": "2026-11-01",
            "payments": "2026-11-01",
            "reliability": "2026-11-01",
            "schema": "2026-11-01",
            "security": "2026-11-01",
            "transparency": "2026-11-01"
          },
          "last": "2026-11-01",
          "lastMoved": "2026-10-27",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install pydantic-ai"
      },
      "letme": {
        "capability": "https://letme.dev/agent.framework",
        "tool": "https://letme.dev/pydantic-ai"
      },
      "sameCompany": [
        "pydantic-logfire"
      ],
      "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": "https://pydantic.dev/legal/terms-of-service",
        "privacy": "https://pydantic.dev/legal/privacy-policy",
        "statusPage": "",
        "changelog": "https://pydantic.dev/docs/ai/project/changelog/",
        "securityTxt": "valid",
        "checked": "2026-10-04",
        "score": 79
      },
      "requirements": {
        "setupChecked": true,
        "complianceChecked": true,
        "card": "unknown",
        "freeTier": true,
        "minutes": 5,
        "credential": "api-key",
        "hosting": [
          "self-hosted"
        ],
        "euResidency": "unknown",
        "trainsOnData": "no",
        "zeroRetention": "unknown",
        "selfHost": "yes"
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/pydantic-ai.json",
      "live": {
        "slug": "pydantic-ai",
        "versions": [
          {
            "registry": "github",
            "name": "pydantic/pydantic-ai",
            "version": "v2.66.0",
            "released": "2026-11-04",
            "seenAt": "2026-11-06T23:59:23.439768111Z"
          },
          {
            "registry": "pypi",
            "name": "pydantic-ai",
            "version": "2.66.0",
            "released": "2026-11-04",
            "seenAt": "2026-11-06T23:59:23.247531163Z"
          }
        ],
        "githubStars": 21063,
        "pypiWeekly": 1645833,
        "securityTxt": {
          "url": "https://pydantic.dev/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-09-17T00:00:00.000Z",
          "checkedAt": "2026-11-07T16:00:15.851020004Z"
        },
        "llmsTxt": {
          "url": "https://pydantic.dev/docs/ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:42.264619636Z"
        },
        "domain": {
          "domain": "pydantic.dev",
          "registered": "2022-04-24",
          "source": "https://pubapi.registry.google/rdap/domain/pydantic.dev",
          "checkedAt": "2026-11-01T14:14:17.651909972Z"
        },
        "pages": [
          {
            "url": "https://pydantic.dev/docs/ai/project/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:17:43.972167702Z",
            "changedAt": "2026-11-05T13:02:19.667276376Z",
            "fingerprint": "6ed49e274192"
          },
          {
            "url": "https://pydantic.dev/articles/pydantic-ai-v2",
            "kind": "deprecations",
            "status": 304,
            "checkedAt": "2026-11-07T14:17:39.932317322Z",
            "changedAt": "2026-11-03T07:56:50.821656233Z",
            "fingerprint": "aa0521ac1c73"
          },
          {
            "url": "https://pydantic.dev/docs/ai/project/version-policy/",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-11-07T14:17:46.190611995Z",
            "changedAt": "2026-11-05T13:02:21.791946069Z",
            "fingerprint": "733a76ffc807"
          },
          {
            "url": "https://pydantic.dev/legal/privacy-policy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-11-07T14:17:48.096204676Z",
            "changedAt": "2026-11-03T07:56:58.894018256Z",
            "fingerprint": "cbabf663e2ad"
          },
          {
            "url": "https://pydantic.dev/legal/terms-of-service",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-07T14:17:49.987811128Z",
            "changedAt": "2026-11-03T07:57:00.973475979Z",
            "fingerprint": "12c8a2fee1c9"
          }
        ],
        "github": {
          "repo": "pydantic/pydantic-ai",
          "checkedAt": "2026-11-02T09:19:36.175721096Z",
          "stars": 20995,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-11-02T08:25:21Z",
          "openIssues": 1241,
          "openPRs": 494,
          "issuesOpened90d": 1736,
          "issuesClosed90d": 1049,
          "prsMerged90d": 2157,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 46,
            "failure": 4,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-11-02T04:04:10Z"
          },
          "advisories": [
            {
              "ghsa": "GHSA-4whf-38hw-pxxh",
              "severity": "high",
              "published": "2026-10-21T05:06:29Z"
            },
            {
              "ghsa": "GHSA-xv4x-g8mx-ch56",
              "severity": "medium",
              "published": "2026-10-20T05:42:04Z"
            },
            {
              "ghsa": "GHSA-5pfm-2g3g-gh85",
              "severity": "medium",
              "published": "2026-10-20T05:31:48Z"
            },
            {
              "ghsa": "GHSA-6fqq-452j-qhrp",
              "cve": "CVE-2026-107286",
              "severity": "high",
              "published": "2026-10-02T03:19:39Z"
            },
            {
              "ghsa": "GHSA-v36g-jcw9-x7cw",
              "cve": "CVE-2026-107287",
              "severity": "medium",
              "published": "2026-09-30T01:31:43Z"
            },
            {
              "ghsa": "GHSA-4x9p-g9wm-8q7f",
              "cve": "CVE-2026-107291",
              "severity": "low",
              "published": "2026-09-17T04:14:30Z"
            },
            {
              "ghsa": "GHSA-fpf4-vwcp-v4hp",
              "cve": "CVE-2026-107290",
              "severity": "medium",
              "published": "2026-09-17T04:14:29Z"
            },
            {
              "ghsa": "GHSA-22h6-qm39-v87j",
              "cve": "CVE-2026-107288",
              "severity": "low",
              "published": "2026-09-17T04:14:28Z"
            },
            {
              "ghsa": "GHSA-vmxc-h2x2-jmf3",
              "cve": "CVE-2026-107289",
              "severity": "medium",
              "published": "2026-09-17T04:14:27Z"
            },
            {
              "ghsa": "GHSA-q2xc-rrxj-58x9",
              "cve": "CVE-2026-107292",
              "severity": "medium",
              "published": "2026-08-14T02:58:39Z"
            },
            {
              "ghsa": "GHSA-3gh4-cghq-f8v4",
              "cve": "CVE-2026-107293",
              "severity": "low",
              "published": "2026-08-12T04:02:44Z"
            },
            {
              "ghsa": "GHSA-h4xc-3qfq-jf93",
              "cve": "CVE-2026-107295",
              "severity": "high",
              "published": "2026-08-12T04:02:43Z"
            },
            {
              "ghsa": "GHSA-v2xh-2vp8-57h8",
              "cve": "CVE-2026-107294",
              "severity": "medium",
              "published": "2026-08-08T03:33:55Z"
            },
            {
              "ghsa": "GHSA-jpr8-2v3g-wgf9",
              "cve": "CVE-2026-65975",
              "severity": "medium",
              "published": "2026-07-11T03:28:12Z"
            },
            {
              "ghsa": "GHSA-h7p7-w5gc-xj3w",
              "cve": "CVE-2026-54249",
              "severity": "medium",
              "published": "2026-06-10T14:29:58Z"
            },
            {
              "ghsa": "GHSA-cg7w-rg45-pc59",
              "cve": "CVE-2026-48782",
              "severity": "medium",
              "published": "2026-05-23T01:16:52Z"
            },
            {
              "ghsa": "GHSA-cqp8-fcvh-x7r3",
              "cve": "CVE-2026-46678",
              "severity": "medium",
              "published": "2026-05-20T17:20:04Z"
            },
            {
              "ghsa": "GHSA-2jrp-274c-jhv3",
              "cve": "CVE-2026-25580",
              "severity": "high",
              "published": "2026-02-06T01:14:08Z"
            },
            {
              "ghsa": "GHSA-wjp5-868j-wqv7",
              "cve": "CVE-2026-25640",
              "severity": "high",
              "published": "2026-02-06T01:13:49Z"
            }
          ]
        },
        "updatedAt": "2026-11-07T16:00:15.851020004Z"
      }
    },
    "answer": "AI SDK scores 89.8 (AA) on agent readiness against Pydantic AI's 81.9 (A), and leads in 3 of 7 scored categories. Pydantic AI leads on security \u0026 auth.",
    "b": {
      "slug": "vercel-ai-sdk",
      "name": "AI SDK",
      "vendor": "Vercel Inc.",
      "vendorUrl": "https://vercel.com",
      "kind": "framework",
      "category": "frameworks",
      "summary": "Open-source TypeScript toolkit from Vercel for building AI applications and agents, with a provider-agnostic API, a ToolLoopAgent, an MCP client and UI hooks for React, Vue, Svelte and Angular.",
      "url": "https://www.anchorterminal.com/tools/vercel-ai-sdk",
      "markdownUrl": "https://www.anchorterminal.com/tools/vercel-ai-sdk.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/vercel-ai-sdk.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/vercel-ai-sdk.json",
      "dns": "vercel-ai-sdk.grade.anchorterminal.com",
      "repo": "https://github.com/vercel/ai",
      "license": "Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "ai"
        },
        {
          "registry": "npm",
          "name": "@ai-sdk/mcp"
        },
        {
          "registry": "npm",
          "name": "@ai-sdk/workflow"
        }
      ],
      "auth": "api-key",
      "authNotes": "The SDK has no account of its own. Each provider package takes that provider's key. Plain string model IDs resolve through Vercel's AI Gateway by default, which needs AI_GATEWAY_API_KEY or a Vercel OIDC token.",
      "pricing": "free",
      "pricingNotes": "Free and open source. You pay for model calls. The optional AI Gateway charges providers' list prices with no markup, from prepaid credits, with a free monthly credit on a subset of models (https://vercel.com/docs/ai-gateway/pricing, checked 2026-11-06).",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the AI SDK docs, the vercel/ai repository's packages or the AI Gateway pricing page. The tools registry in the repository lists a third-party x402 marketplace tool (checked 2026-10-06).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 27781,
        "npmWeekly": 44868298,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://ai-sdk.dev/docs",
      "llmsTxt": "https://ai-sdk.dev/llms.txt",
      "capabilities": [
        "agent.framework",
        "agent.mcp-client",
        "agent.multi-agent",
        "agent.durable"
      ],
      "tags": [
        "framework",
        "typescript",
        "open-source",
        "llms-txt",
        "mcp",
        "otel"
      ],
      "lastRelease": "2026-11-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 89.8,
        "grade": "AA",
        "agentReady": true,
        "rank": 1,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 1,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 95,
          "maintenance": 97,
          "payments": 60,
          "reliability": 93,
          "schema": 100,
          "security": 90,
          "transparency": 89
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "A TypeScript agent toolkit with ToolLoopAgent, a built-in MCP client, per-tool approvals that can be HMAC-signed, opt-in OpenTelemetry and durable runs through WorkflowAgent. It ships three major versions in 14 months (5.0, 6.0, 7.0), each with a migration guide, and plain string model IDs route through Vercel's AI Gateway unless another provider is set.",
        "bestFor": "TypeScript teams building agents and chat UIs who want one API across many providers and a short path to MCP.",
        "strengths": [
          "Apache 2.0, with 246 npm releases of `ai` in the 90 days to 6 October 2026",
          "MCP client in @ai-sdk/mcp with HTTP, SSE and stdio transports, OAuth and opt-in retries for tools/call",
          "Per-tool approvals, HMAC-signed approvals and Open Policy Agent rules in @ai-sdk/policy-opa",
          "Telemetry only after an OpenTelemetry integration is registered, with recordInputs and recordOutputs switches",
          "Tool search with deferred loading, so the model sees only a search tool until it needs more"
        ],
        "weaknesses": [
          "TypeScript only, and `ai` 7.x needs Node 22 or newer",
          "Three major versions between July 2025 and June 2026, each with breaking changes",
          "String model IDs go to Vercel's AI Gateway by default, which needs a Vercel key",
          "No input or output guardrail primitive, and sandboxes and stdio MCP transport are still experimental",
          "1,399 open issues and pull requests on 4 October 2026, per a GitHub mirror"
        ],
        "agentNotes": [
          "Pass a provider instance such as openai('model') if traffic shouldn't go through Vercel's AI Gateway",
          "Set toolApproval on tools that write, and experimental_toolApprovalSecret when approvals come back from a browser",
          "Raise or replace the default stop condition of 20 steps with stopWhen",
          "Close the MCP client after the run, and use HTTP transport outside local development",
          "Set recordInputs and recordOutputs to false when spans would carry secrets"
        ],
        "metrics": {
          "kind": "library",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "AA",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 89.8
          }
        ],
        "editorialScores": {
          "ergonomics": 95,
          "maintenance": 97,
          "payments": 60,
          "reliability": 93,
          "schema": 100,
          "security": 90,
          "transparency": 86
        },
        "provenanceScore": 91,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm i ai   # MCP: npm i @ai-sdk/mcp"
      },
      "letme": {
        "capability": "https://letme.dev/agent.framework",
        "tool": "https://letme.dev/vercel-ai-sdk"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Vercel Inc.",
        "domain": "ai-sdk.dev",
        "domainRegistered": "2024-09-26",
        "endpointOnVendorDomain": null,
        "terms": "https://vercel.com/legal/terms",
        "privacy": "https://vercel.com/legal/privacy-policy",
        "statusPage": "https://www.vercel-status.com",
        "changelog": "https://github.com/vercel/ai/blob/main/packages/ai/CHANGELOG.md",
        "securityTxt": "valid",
        "checked": "2026-11-06",
        "notes": [
          "The privacy notice (effective 1 June 2026) names Vercel Inc.",
          "vercel.com/.well-known/security.txt points to HackerOne and responsible.disclosure@vercel.com and expires 2027-09-28.",
          "RDAP gives ai-sdk.dev a registration date of 2024-09-26 and vercel.com 1999-10-04.",
          "The status page covers Vercel's hosted services, including the AI Gateway, not the library."
        ],
        "score": 91
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/vercel-ai-sdk.json",
      "live": {
        "slug": "vercel-ai-sdk",
        "vendorStatus": {
          "page": "https://www.vercel-status.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T19:23:51.340953129Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "vercel/ai",
            "version": "@ai-sdk/zai@2.0.19",
            "released": "2026-11-06",
            "seenAt": "2026-11-07T00:15:06.320451302Z"
          },
          {
            "registry": "npm",
            "name": "@ai-sdk/mcp",
            "version": "2.0.92",
            "seenAt": "2026-11-07T00:15:02.210062748Z"
          },
          {
            "registry": "npm",
            "name": "@ai-sdk/workflow",
            "version": "2.0.96",
            "seenAt": "2026-11-07T00:15:04.290347217Z"
          },
          {
            "registry": "npm",
            "name": "ai",
            "version": "7.0.164",
            "seenAt": "2026-11-07T00:15:02.102209516Z"
          }
        ],
        "githubStars": 27784,
        "npmWeekly": 44868298,
        "securityTxt": {
          "url": "https://ai-sdk.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:53.467050636Z"
        },
        "llmsTxt": {
          "url": "https://ai-sdk.dev/llms.txt",
          "ok": false,
          "status": 0,
          "checkedAt": "2026-11-07T15:34:35.854467131Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/vercel/ai/main/packages/ai/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:24:01.002799396Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6e9ccd1db741"
          }
        ],
        "updatedAt": "2026-11-07T19:23:51.340953129Z"
      }
    },
    "edges": [
      {
        "by": 10,
        "category": "reliability",
        "leads": "vercel-ai-sdk",
        "name": "Reliability",
        "reasons": {
          "a": "Official package on PyPI. Requires-Python is \u003e=3.11 since 2.55.0 on 9 October, which dropped Python 3.10 in its end-of-life month (20). CI passes on main, with a coverage badge, per the 1 October check. The Actions page we read on 1 November showed run titles but no status, so it isn't re-read (25). 1.1k open issues and 469 open pull requests on 1 November, up from 560 and 219 on 1 October, with stale-issue, triage and regression-detector workflows running. We didn't read reply times, so 8 stands (8). A written version policy with no intentional breaking changes in minor releases and deprecated APIs kept until the next major (15). 2.64.0, classed 5 - Production/Stable (15).",
          "b": "Official npm packages, with `ai` 7.x requiring Node 22 or newer (20). A public CI workflow with lint, type checks, unit tests, Node-version tests, MCP tests on Windows and e2e tests runs on every push to main, and the newest completed CI runs on main passed on 6 November (25). 1,517 open issues and pull requests on 6 November from GitHub's API, with 1,059 issues opened in the 90 days to 3 November; 47 of the 50 newest had a comment and 32 were closed (18). A written versioning page with breaking changes only in majors, experimental_ prefixes for unstable APIs and a migration guide per major (15). 7.0.163 (15). 20+25+18+15+15 = 93, up from 73 on 6 October, when GitHub couldn't be read."
        },
        "scores": {
          "a": 83,
          "b": 93
        }
      },
      {
        "by": 7,
        "category": "maintenance",
        "leads": "vercel-ai-sdk",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "2.64.0 on 2026-10-30 (30). 48 V2 release tags from 3 August to 30 October 2026 (20). 1.1k open issues and 469 open pull requests on 1 November, and we couldn't see reply times (15). The Python package is current, and V1 still gets security releases (1.107.9 on 21 October) (15). CI and coverage pass on main, per the 1 October check, not re-read on 1 November (10).",
          "b": "7.0.163 on 2026-11-05 (30). 226 stable npm releases of `ai` across the 7.x, 6.x and 5.x lines in the 90 days to 6 November, 70 of them since 6 October (20). 47 of the 50 newest issues commented and 32 closed, with triage automation and backport workflows (22). `ai` and the provider packages are current, and 6.x and 5.x still get patches (15). Dependabot configured and CI passing on main (10). 30+20+22+15+10 = 97."
        },
        "scores": {
          "a": 90,
          "b": 97
        }
      },
      {
        "by": 5,
        "category": "security",
        "leads": "pydantic-ai",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "No telemetry unless you configure it. OpenTelemetry instrumentation and Logfire take two added lines (30). Deferred-tool approval is built in. `LocalWorkspace(read_only=True)` and `ReadOnlyWorkspace` in core (since 2.52.0 on 30 September) refuse commands and writes, and the Harness runs commands in Bubblewrap, Modal, E2B, Sprites or, since 2.56.0, smolvm sandboxes and code mode in the Monty interpreter (20). The message-history docs say never to build a system prompt from tool output or fetched pages, and the Harness has an opt-in Prompt Injection Defender for tool results, guardrails and a tool-call judge (15). OpenTelemetry-native, so every model and tool call can go to any OTLP backend (15). Private reporting through GitHub and a valid security.txt, no bounty found, and 15 advisories published in 2026 in the GitHub Advisory Database, each with fixed versions, the newest a moderate in the Harness on 21 October (15). Framework reading, so SOC 2 isn't scored. The Harness is a separate 0.x package classed Alpha.",
          "b": "No telemetry until an OpenTelemetry integration is registered. String model IDs route to Vercel's AI Gateway by default, which is documented and needs a Vercel key, so it isn't silent (25). Per-tool approval, HMAC-signed approvals against forged client history, and Open Policy Agent rules in @ai-sdk/policy-opa, though sandboxes are experimental (20). ToolLoopAgent rejects system messages in prompts by default as an injection risk, URL fetches are checked against private addresses, and MCP HTTP transport refuses redirects by default, but there's no guardrail primitive (10). OpenTelemetry spans for every model and tool call to any backend, opt-in (15). HackerOne programme, a valid security.txt, SECURITY.md and two low-severity advisories published with fixed versions (20). Framework reading, so SOC 2 isn't scored."
        },
        "scores": {
          "a": 95,
          "b": 90
        }
      }
    ],
    "facts": [
      {
        "a": "Agent framework",
        "b": "Agent framework",
        "name": "Kind"
      },
      {
        "a": "Pydantic",
        "b": "Vercel Inc.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-30",
        "b": "2026-11-05",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2026-06-01",
        "name": "Terms last updated"
      },
      {
        "a": "2024-02-21",
        "b": "2026-06-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes, with an opt-out",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "20k stars, 1.3M PyPI/wk",
        "b": "28k stars, 44.9M npm/wk",
        "name": "Popularity"
      },
      {
        "a": "4/5 (8)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "AI SDK scores 89.8 (AA) on agent readiness against Pydantic AI's 81.9 (A), and leads in 3 of 7 scored categories. Pydantic AI leads on security \u0026 auth.",
        "question": "Which is better for AI agents, Pydantic AI or AI SDK?"
      },
      {
        "answer": "Yes. Pydantic AI is open source (MIT). AI SDK is open source (Apache-2.0).",
        "question": "Are Pydantic AI and AI SDK open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 95 against 90"
        ],
        "also": [
          "No key needed to call it"
        ],
        "goodFor": "Python teams that want typed, validated outputs and tools, many model providers and durable runs on an engine they already use.",
        "slug": "pydantic-ai",
        "watchFor": "Python only, and 3.11 or newer since 2.55.0"
      },
      {
        "aheadOn": [
          "Reliability, 93 against 83",
          "Maintenance \u0026 community, 97 against 90"
        ],
        "also": [
          "No incidents deducted, where Pydantic AI loses 6 points for them"
        ],
        "goodFor": "TypeScript teams building agents and chat UIs who want one API across many providers and a short path to MCP.",
        "slug": "vercel-ai-sdk",
        "watchFor": "TypeScript only, and `ai` 7.x needs Node 22 or newer"
      }
    ],
    "history": {
      "pydantic-ai": [
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.2,
          "from": 81.7,
          "fromGrade": "A",
          "to": 81.9,
          "toGrade": "A"
        },
        {
          "causes": [
            "event"
          ],
          "date": "2026-10-17",
          "delta": -2,
          "from": 83.7,
          "fromGrade": "A",
          "to": 81.7,
          "toGrade": "A"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.2,
          "from": 83.9,
          "fromGrade": "A",
          "to": 83.7,
          "toGrade": "A"
        }
      ],
      "vercel-ai-sdk": null
    },
    "job": {
      "capability": "agent.framework",
      "name": "Agent frameworks"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agentos-vs-pydantic-ai.json",
        "title": "AgentOS vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/agentos-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentos-vs-vercel-ai-sdk.json",
        "title": "AgentOS vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/agentos-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agno-vs-pydantic-ai.json",
        "title": "Agno vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/agno-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agno-vs-vercel-ai-sdk.json",
        "title": "Agno vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/agno-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/boxlang-ai-vs-pydantic-ai.json",
        "title": "BoxLang AI vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/boxlang-ai-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/boxlang-ai-vs-vercel-ai-sdk.json",
        "title": "BoxLang AI vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/boxlang-ai-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-pydantic-ai.json",
        "title": "Claude Agent SDK vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-vercel-ai-sdk.json",
        "title": "Claude Agent SDK vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-pydantic-ai.json",
        "title": "CrewAI vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-vercel-ai-sdk.json",
        "title": "CrewAI vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-pydantic-ai.json",
        "title": "Cursor Agent SDK vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-vercel-ai-sdk.json",
        "title": "Cursor Agent SDK vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai.json",
        "title": "Docker Agent vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-vercel-ai-sdk.json",
        "title": "Docker Agent vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-adk-vs-pydantic-ai.json",
        "title": "Agent Development Kit (ADK) vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/google-adk-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-adk-vs-vercel-ai-sdk.json",
        "title": "Agent Development Kit (ADK) vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/google-adk-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/guilds-run-vs-pydantic-ai.json",
        "title": "guilds.run vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/guilds-run-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/guilds-run-vs-vercel-ai-sdk.json",
        "title": "guilds.run vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/guilds-run-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/langgraph-vs-pydantic-ai.json",
        "title": "LangGraph vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/langgraph-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/langgraph-vs-vercel-ai-sdk.json",
        "title": "LangGraph vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/langgraph-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamaindex-vs-pydantic-ai.json",
        "title": "LlamaIndex Framework vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/llamaindex-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamaindex-vs-vercel-ai-sdk.json",
        "title": "LlamaIndex Framework vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/llamaindex-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mastra-vs-pydantic-ai.json",
        "title": "Mastra vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/mastra-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mastra-vs-vercel-ai-sdk.json",
        "title": "Mastra vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/mastra-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-pydantic-ai.json",
        "title": "Microsoft Agent Framework vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-vercel-ai-sdk.json",
        "title": "Microsoft Agent Framework vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-sdk-vs-pydantic-ai.json",
        "title": "OpenAI Agents SDK vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/openai-agents-sdk-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-sdk-vs-vercel-ai-sdk.json",
        "title": "OpenAI Agents SDK vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/openai-agents-sdk-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pydantic-ai-vs-smolagents.json",
        "title": "Pydantic AI vs smolagents",
        "url": "https://www.anchorterminal.com/compare/pydantic-ai-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pydantic-ai-vs-strands-agents.json",
        "title": "Pydantic AI vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/pydantic-ai-vs-strands-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pydantic-ai-vs-tradingagents.json",
        "title": "Pydantic AI vs TradingAgents",
        "url": "https://www.anchorterminal.com/compare/pydantic-ai-vs-tradingagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/smolagents-vs-vercel-ai-sdk.json",
        "title": "smolagents vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/smolagents-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/strands-agents-vs-vercel-ai-sdk.json",
        "title": "Strands Agents vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/strands-agents-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/tradingagents-vs-vercel-ai-sdk.json",
        "title": "TradingAgents vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/tradingagents-vs-vercel-ai-sdk"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 10,
        "edge": "vercel-ai-sdk",
        "key": "reliability",
        "name": "Reliability",
        "pydantic-ai": 83,
        "vercel-ai-sdk": 93,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 0,
        "edge": "",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "pydantic-ai": 100,
        "vercel-ai-sdk": 100,
        "weight": 13
      },
      {
        "by": 0,
        "edge": "",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "pydantic-ai": 95,
        "vercel-ai-sdk": 95,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "pydantic-ai",
        "key": "security",
        "name": "Security \u0026 auth",
        "pydantic-ai": 95,
        "vercel-ai-sdk": 90,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "pydantic-ai": 60,
        "vercel-ai-sdk": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 7,
        "edge": "vercel-ai-sdk",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "pydantic-ai": 90,
        "vercel-ai-sdk": 97,
        "weight": 7
      },
      {
        "by": 2,
        "edge": "vercel-ai-sdk",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "pydantic-ai": 87,
        "vercel-ai-sdk": 89,
        "weight": 7
      }
    ],
    "summary": "AI SDK scores 89.8 (AA) on agent readiness against Pydantic AI's 81.9 (A), and leads in 3 of 7 scored categories. Pydantic AI leads on security \u0026 auth. Both do agent frameworks.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "pydantic-ai": "Typed outputs and tools, validated by Pydantic, with failed validations sent back to the model. Python only.",
      "vercel-ai-sdk": "A TypeScript agent toolkit with ToolLoopAgent, a built-in MCP client, per-tool approvals that can be HMAC-signed, opt-in OpenTelemetry and durable runs through WorkflowAgent. It ships three major versions in 14 months (5.0, 6.0, 7.0), each with a migration guide, and plain string model IDs route through Vercel's AI Gateway unless another provider is set."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/pydantic-ai-vs-vercel-ai-sdk",
    "json": "https://www.anchorterminal.com/compare/pydantic-ai-vs-vercel-ai-sdk.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/pydantic-ai-vs-vercel-ai-sdk.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/pydantic-ai-vs-vercel-ai-sdk.min.md"
  },
  "markdown": "AI SDK scores 89.8 (AA) on agent readiness against Pydantic AI's 81.9 (A), and leads in 3 of 7 scored categories. Pydantic AI leads on security \u0026 auth. Both do agent frameworks.\n\n- Pydantic AI: grade A, 81.9/100, rank #7 of 1510. Markdown https://www.anchorterminal.com/tools/pydantic-ai.md · JSON https://www.anchorterminal.com/api/v1/tools/pydantic-ai.json\n- AI SDK: grade AA, 89.8/100, rank #1 of 1510. Markdown https://www.anchorterminal.com/tools/vercel-ai-sdk.md · JSON https://www.anchorterminal.com/api/v1/tools/vercel-ai-sdk.json\n- Best agent frameworks and SDKs: https://www.anchorterminal.com/best/frameworks/index.md\n- All 171 frameworks comparisons: https://www.anchorterminal.com/compare/frameworks/index.md\n\n## Which one, for what\n\n### Pydantic AI (A)\n\nGood for: Python teams that want typed, validated outputs and tools, many model providers and durable runs on an engine they already use.\n\nAhead on:\n- Security \u0026 auth, 95 against 90\n\nAlso in its favour:\n- No key needed to call it\n\nWatch for: Python only, and 3.11 or newer since 2.55.0\n\n### AI SDK (AA)\n\nGood for: TypeScript teams building agents and chat UIs who want one API across many providers and a short path to MCP.\n\nAhead on:\n- Reliability, 93 against 83\n- Maintenance \u0026 community, 97 against 90\n\nAlso in its favour:\n- No incidents deducted, where Pydantic AI loses 6 points for them\n\nWatch for: TypeScript only, and `ai` 7.x needs Node 22 or newer\n\n\n## Why the edge\n\n### Reliability: AI SDK +10\n\n- Pydantic AI (83): Official package on PyPI. Requires-Python is \u003e=3.11 since 2.55.0 on 9 October, which dropped Python 3.10 in its end-of-life month (20). CI passes on main, with a coverage badge, per the 1 October check. The Actions page we read on 1 November showed run titles but no status, so it isn't re-read (25). 1.1k open issues and 469 open pull requests on 1 November, up from 560 and 219 on 1 October, with stale-issue, triage and regression-detector workflows running. We didn't read reply times, so 8 stands (8). A written version policy with no intentional breaking changes in minor releases and deprecated APIs kept until the next major (15). 2.64.0, classed 5 - Production/Stable (15).\n- AI SDK (93): Official npm packages, with `ai` 7.x requiring Node 22 or newer (20). A public CI workflow with lint, type checks, unit tests, Node-version tests, MCP tests on Windows and e2e tests runs on every push to main, and the newest completed CI runs on main passed on 6 November (25). 1,517 open issues and pull requests on 6 November from GitHub's API, with 1,059 issues opened in the 90 days to 3 November; 47 of the 50 newest had a comment and 32 were closed (18). A written versioning page with breaking changes only in majors, experimental_ prefixes for unstable APIs and a migration guide per major (15). 7.0.163 (15). 20+25+18+15+15 = 93, up from 73 on 6 October, when GitHub couldn't be read.\n\n### Maintenance \u0026 community: AI SDK +7\n\n- Pydantic AI (90): 2.64.0 on 2026-10-30 (30). 48 V2 release tags from 3 August to 30 October 2026 (20). 1.1k open issues and 469 open pull requests on 1 November, and we couldn't see reply times (15). The Python package is current, and V1 still gets security releases (1.107.9 on 21 October) (15). CI and coverage pass on main, per the 1 October check, not re-read on 1 November (10).\n- AI SDK (97): 7.0.163 on 2026-11-05 (30). 226 stable npm releases of `ai` across the 7.x, 6.x and 5.x lines in the 90 days to 6 November, 70 of them since 6 October (20). 47 of the 50 newest issues commented and 32 closed, with triage automation and backport workflows (22). `ai` and the provider packages are current, and 6.x and 5.x still get patches (15). Dependabot configured and CI passing on main (10). 30+20+22+15+10 = 97.\n\n### Security \u0026 auth: Pydantic AI +5\n\n- Pydantic AI (95): No telemetry unless you configure it. OpenTelemetry instrumentation and Logfire take two added lines (30). Deferred-tool approval is built in. `LocalWorkspace(read_only=True)` and `ReadOnlyWorkspace` in core (since 2.52.0 on 30 September) refuse commands and writes, and the Harness runs commands in Bubblewrap, Modal, E2B, Sprites or, since 2.56.0, smolvm sandboxes and code mode in the Monty interpreter (20). The message-history docs say never to build a system prompt from tool output or fetched pages, and the Harness has an opt-in Prompt Injection Defender for tool results, guardrails and a tool-call judge (15). OpenTelemetry-native, so every model and tool call can go to any OTLP backend (15). Private reporting through GitHub and a valid security.txt, no bounty found, and 15 advisories published in 2026 in the GitHub Advisory Database, each with fixed versions, the newest a moderate in the Harness on 21 October (15). Framework reading, so SOC 2 isn't scored. The Harness is a separate 0.x package classed Alpha.\n- AI SDK (90): No telemetry until an OpenTelemetry integration is registered. String model IDs route to Vercel's AI Gateway by default, which is documented and needs a Vercel key, so it isn't silent (25). Per-tool approval, HMAC-signed approvals against forged client history, and Open Policy Agent rules in @ai-sdk/policy-opa, though sandboxes are experimental (20). ToolLoopAgent rejects system messages in prompts by default as an injection risk, URL fetches are checked against private addresses, and MCP HTTP transport refuses redirects by default, but there's no guardrail primitive (10). OpenTelemetry spans for every model and tool call to any backend, opt-in (15). HackerOne programme, a valid security.txt, SECURITY.md and two low-severity advisories published with fixed versions (20). Framework reading, so SOC 2 isn't scored.\n\n## Score by category\n\n| Category | Weight | Pydantic AI | AI SDK | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 83 | 93 | AI SDK +10 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 100 | 100 | even |\n| Agent ergonomics | 13% (16.2 this run) | 95 | 95 | even |\n| Security \u0026 auth | 14% (17.5 this run) | 95 | 90 | Pydantic AI +5 |\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 | 97 | AI SDK +7 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 87 | 89 | AI SDK +2 |\n| Negative events | ≤15 | -6 | 0 | |\n| **Total** | | **81.9 · A** | **89.8 · AA** | |\n\n## Facts side by side\n\n| Fact | Pydantic AI | AI SDK |\n| --- | --- | --- |\n| Kind | Agent framework | Agent framework |\n| Vendor | Pydantic | Vercel Inc. |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | None | API key |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | MIT | Apache-2.0 |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-30 | 2026-11-05 |\n| Terms last updated | no date given | 2026-06-01 |\n| Privacy policy last updated | 2024-02-21 | 2026-06-01 |\n| Customer content may train models | not found in the text | yes, with an opt-out |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | yes | yes |\n| Popularity | 20k stars, 1.3M PyPI/wk | 28k stars, 44.9M npm/wk |\n| Agent reviews | 4/5 (8) | none |\n\n## How the scores have moved\n\n### Pydantic AI\n\n- +0.2 on 27 October 2026: checklist\n- -2.0 on 17 October 2026: negative event\n- -0.2 on 8 October 2026: checklist\n\n### AI SDK\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Pydantic AI.** Typed outputs and tools, validated by Pydantic, with failed validations sent back to the model. Python only.\n\n**AI SDK.** A TypeScript agent toolkit with ToolLoopAgent, a built-in MCP client, per-tool approvals that can be HMAC-signed, opt-in OpenTelemetry and durable runs through WorkflowAgent. It ships three major versions in 14 months (5.0, 6.0, 7.0), each with a migration guide, and plain string model IDs route through Vercel's AI Gateway unless another provider is set.\n\n## Before you call either\n\n### Pydantic AI\n\n1. Define the output type first. Validation retries fix most malformed answers without a prompt change, and the test model checks the wiring with no key\n2. Use streamable HTTP for MCP, since SSE is deprecated. Call `.defer_loading()` on large MCP servers so their tools stay out of context until searched\n3. Set usage limits on every run that calls paid models\n4. Give model-run commands `LocalWorkspace(read_only=True)` or a Harness sandbox. A plain `LocalWorkspace` runs them on your machine as you\n5. Stay on 2.53.0 or later, and the Harness on 0.59.0 or later. 2026 advisories hit URL downloads, the metadata blocklist, the web chat UI, streamed requests and nested CodeMode calls\n\n### AI SDK\n\n1. Pass a provider instance such as openai('model') if traffic shouldn't go through Vercel's AI Gateway\n2. Set toolApproval on tools that write, and experimental_toolApprovalSecret when approvals come back from a browser\n3. Raise or replace the default stop condition of 20 steps with stopWhen\n4. Close the MCP client after the run, and use HTTP transport outside local development\n5. Set recordInputs and recordOutputs to false when spans would carry secrets\n\n## Questions\n\n### Which is better for AI agents, Pydantic AI or AI SDK?\n\nAI SDK scores 89.8 (AA) on agent readiness against Pydantic AI's 81.9 (A), and leads in 3 of 7 scored categories. Pydantic AI leads on security \u0026 auth.\n\n### Are Pydantic AI and AI SDK open source?\n\nYes. Pydantic AI is open source (MIT). AI SDK is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/pydantic-ai-vs-vercel-ai-sdk.json, and with the fewest tokens: https://www.anchorterminal.com/compare/pydantic-ai-vs-vercel-ai-sdk.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"pydantic-ai\", \"b\": \"vercel-ai-sdk\"}`. From a terminal: `anchor compare pydantic-ai vercel-ai-sdk`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/pydantic-ai.json and https://www.anchorterminal.com/api/v1/tools/vercel-ai-sdk.json\n\n## Other comparisons with Pydantic AI or AI SDK\n\n- [AgentOS vs Pydantic AI](https://www.anchorterminal.com/compare/agentos-vs-pydantic-ai.md)\n- [AgentOS vs AI SDK](https://www.anchorterminal.com/compare/agentos-vs-vercel-ai-sdk.md)\n- [Agno vs Pydantic AI](https://www.anchorterminal.com/compare/agno-vs-pydantic-ai.md)\n- [Agno vs AI SDK](https://www.anchorterminal.com/compare/agno-vs-vercel-ai-sdk.md)\n- [BoxLang AI vs Pydantic AI](https://www.anchorterminal.com/compare/boxlang-ai-vs-pydantic-ai.md)\n- [BoxLang AI vs AI SDK](https://www.anchorterminal.com/compare/boxlang-ai-vs-vercel-ai-sdk.md)\n- [Claude Agent SDK vs Pydantic AI](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-pydantic-ai.md)\n- [Claude Agent SDK vs AI SDK](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-vercel-ai-sdk.md)\n- [CrewAI vs Pydantic AI](https://www.anchorterminal.com/compare/crewai-vs-pydantic-ai.md)\n- [CrewAI vs AI SDK](https://www.anchorterminal.com/compare/crewai-vs-vercel-ai-sdk.md)\n- [Cursor Agent SDK vs Pydantic AI](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-pydantic-ai.md)\n- [Cursor Agent SDK vs AI SDK](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-vercel-ai-sdk.md)\n- [Docker Agent vs Pydantic AI](https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai.md)\n- [Docker Agent vs AI SDK](https://www.anchorterminal.com/compare/docker-agent-vs-vercel-ai-sdk.md)\n- [Agent Development Kit (ADK) vs Pydantic AI](https://www.anchorterminal.com/compare/google-adk-vs-pydantic-ai.md)\n- [Agent Development Kit (ADK) vs AI SDK](https://www.anchorterminal.com/compare/google-adk-vs-vercel-ai-sdk.md)\n- [guilds.run vs Pydantic AI](https://www.anchorterminal.com/compare/guilds-run-vs-pydantic-ai.md)\n- [guilds.run vs AI SDK](https://www.anchorterminal.com/compare/guilds-run-vs-vercel-ai-sdk.md)\n- [LangGraph vs Pydantic AI](https://www.anchorterminal.com/compare/langgraph-vs-pydantic-ai.md)\n- [LangGraph vs AI SDK](https://www.anchorterminal.com/compare/langgraph-vs-vercel-ai-sdk.md)\n- [LlamaIndex Framework vs Pydantic AI](https://www.anchorterminal.com/compare/llamaindex-vs-pydantic-ai.md)\n- [LlamaIndex Framework vs AI SDK](https://www.anchorterminal.com/compare/llamaindex-vs-vercel-ai-sdk.md)\n- [Mastra vs Pydantic AI](https://www.anchorterminal.com/compare/mastra-vs-pydantic-ai.md)\n- [Mastra vs AI SDK](https://www.anchorterminal.com/compare/mastra-vs-vercel-ai-sdk.md)\n- [Microsoft Agent Framework vs Pydantic AI](https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-pydantic-ai.md)\n- [Microsoft Agent Framework vs AI SDK](https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-vercel-ai-sdk.md)\n- [OpenAI Agents SDK vs Pydantic AI](https://www.anchorterminal.com/compare/openai-agents-sdk-vs-pydantic-ai.md)\n- [OpenAI Agents SDK vs AI SDK](https://www.anchorterminal.com/compare/openai-agents-sdk-vs-vercel-ai-sdk.md)\n- [Pydantic AI vs smolagents](https://www.anchorterminal.com/compare/pydantic-ai-vs-smolagents.md)\n- [Pydantic AI vs Strands Agents](https://www.anchorterminal.com/compare/pydantic-ai-vs-strands-agents.md)\n- [Pydantic AI vs TradingAgents](https://www.anchorterminal.com/compare/pydantic-ai-vs-tradingagents.md)\n- [smolagents vs AI SDK](https://www.anchorterminal.com/compare/smolagents-vs-vercel-ai-sdk.md)\n- [Strands Agents vs AI SDK](https://www.anchorterminal.com/compare/strands-agents-vs-vercel-ai-sdk.md)\n- [TradingAgents vs AI SDK](https://www.anchorterminal.com/compare/tradingagents-vs-vercel-ai-sdk.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Pydantic AI vs AI SDK",
        "url": ""
      }
    ],
    "description": "AI SDK scores 89.8 (AA) to Pydantic AI's 81.9 (A) for agent frameworks. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Pydantic AI A 81.9",
      "AI SDK AA 89.8",
      "scores"
    ],
    "h1": "Pydantic AI vs AI SDK",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/pydantic-ai-vs-vercel-ai-sdk",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Pydantic AI vs AI SDK for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/pydantic-ai-vs-vercel-ai-sdk"
  },
  "tokens": {
    "markdown": 3650,
    "slim": 1630
  },
  "version": 1
}
