{
  "data": {
    "a": {
      "slug": "crewai",
      "name": "CrewAI",
      "vendor": "CrewAI",
      "vendorUrl": "https://www.crewai.com",
      "kind": "framework",
      "category": "frameworks",
      "summary": "Python framework for teams of role-playing agents in Crews, plus event-driven Flows for stateful workflows.",
      "url": "https://www.anchorterminal.com/tools/crewai",
      "markdownUrl": "https://www.anchorterminal.com/tools/crewai.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/crewai.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/crewai.json",
      "dns": "crewai.grade.anchorterminal.com",
      "repo": "https://github.com/crewAIInc/crewAI",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "crewai"
        }
      ],
      "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. CrewAI AMP hosting has a free tier of 50 executions a month. Enterprise is priced by sales.",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 59059,
        "npmWeekly": null,
        "pypiWeekly": 552409,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://docs.crewai.com",
      "llmsTxt": "https://docs.crewai.com/llms.txt",
      "capabilities": [
        "agent.framework",
        "agent.multi-agent",
        "agent.durable",
        "agent.mcp-client"
      ],
      "tags": [
        "framework",
        "python",
        "open-source",
        "telemetry-default-on"
      ],
      "lastRelease": "2026-10-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59,
        "grade": "C",
        "agentReady": false,
        "rank": 720,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 17,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 88,
          "payments": 40,
          "reliability": 75,
          "schema": 74,
          "security": 65,
          "transparency": 79
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": -12,
        "negativeNotes": [
          "2026-03-30. CERT/CC VU#221883 published four CVEs in CrewAI 1.0, remote code execution when the code interpreter fell back from Docker to its Python sandbox (CVE-2026-2275, 9.6, and CVE-2026-2287, 9.8), SSRF in the RAG search tools (CVE-2026-2286, 9.8) and local file read in the JSON loader tool (CVE-2026-2285, 7.5). CrewAI says all are fixed in current releases, removed CodeInterpreterTool and added URL and path validation across 20+ tools. Fixed, published and more than two months old, so 1 point each. https://www.kb.cert.org/vuls/id/221883",
          "2026-09-13. CVE-2026-37008 (High), a ctypes bypass of the in-process Python sandbox, which the record calls a different vulnerability than CVE-2026-2275. Fixed by commit fb2323b, first in 1.11.0. A fixed, published High under two months old, so 2 points. The 1 October check had folded it into the March CVEs. https://api.osv.dev/v1/vulns/CVE-2026-37008",
          "2026-10-23. crewai 1.15.29, a patch release, removed `CrewAgentExecutor` and the public import paths around it and changed how every agent runs (oversized tool results deferred to files, the conversation summarised before it overflows, the fifth identical tool call stopping the task). The release notes listed none of it as breaking. The changelog marked it breaking on 28 October, and 1.15.33 restored some imports on 29 October. A breaking change shipped without notice, so 3 points. https://github.com/crewAIInc/crewAI/releases/tag/1.15.29",
          "2026-10-23. 1.15.29 also shipped fixes for two described flaws in the crewai package with no advisory, LanceDB memory filters built by interpolating scope and id values into SQL strings (#7820) and private memories saved without a source returned to every recall (#8400). Neither commit cites a GHSA id. Released fixes with no advisory, so 3 points. https://github.com/crewAIInc/crewAI/releases/tag/1.15.29"
        ],
        "verdict": "The mcps field connects an agent to an MCP server in a few lines, with static and dynamic tool filters. Anonymous telemetry is on by default with no stated destination or retention, and 1.15.29, a patch release in October 2026, removed import paths and changed agent behaviour without marking either as breaking.",
        "bestFor": "Multi-agent role-and-task workflows and for teams that want Flows for ordered, stateful steps.",
        "strengths": [
          "An MCP server in five lines through the mcps field, with static and dynamic tool filters",
          "Pre-tool-call hooks that can block a call or ask a person to approve it",
          "Run caps on by default (max_iter 20, respect_context_window) and two retries on error",
          "23 stable releases between 4 August and 29 October 2026",
          "A security policy with response times, safe harbour and a valid security.txt"
        ],
        "weaknesses": [
          "Anonymous telemetry on by default, with no stated destination or retention",
          "1.15.29, a patch release, removed import paths and changed agent behaviour, marked breaking only five days later",
          "Four CVEs in March 2026 and one in September, published through CERT/CC and NVD rather than GitHub advisories",
          "No sandbox for model-written code since CodeInterpreterTool was removed",
          "Python only, and Python 3.14 isn't supported yet"
        ],
        "agentNotes": [
          "Set CREWAI_DISABLE_TELEMETRY=true before the first run",
          "Pin an exact version and read the changelog before upgrading. Patch releases have carried breaking changes",
          "Put MCP keys in headers, not in the URL as the docs' Exa example does",
          "Add a PRE_TOOL_CALL hook for any tool that writes or sends",
          "Set use_better_compaction=False if the agent needs whole tool results in its context"
        ],
        "metrics": {
          "kind": "library",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 88,
          "payments": 40,
          "reliability": 75,
          "schema": 74,
          "security": 65,
          "transparency": 75
        },
        "provenanceScore": 82,
        "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-11-01",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install crewai"
      },
      "letme": {
        "capability": "https://letme.dev/agent.framework",
        "tool": "https://letme.dev/crewai"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "CrewAI, Inc.",
        "domain": "crewai.com",
        "domainRegistered": "2017-07-25",
        "domainNote": "crewai.com was registered in 2017, before CrewAI existed.",
        "endpointOnVendorDomain": null,
        "terms": "https://crewai.com/terms-of-use",
        "privacy": "https://crewai.com/privacy-policy",
        "statusPage": "https://status.crewai.com",
        "changelog": "https://docs.crewai.com/en/changelog",
        "securityTxt": "valid",
        "checked": "2026-11-01",
        "notes": [
          "The terms of use name CrewAI, Inc., a Delaware corporation, and both the terms and the privacy policy carry an effective date of 24 September 2025. They cover the CrewAI platform (AMP); the framework itself is under MIT.",
          "crewai.com/.well-known/security.txt gives security@crewai.com as the contact, expires 2027-05-27 and points to the repository's security policy.",
          "status.crewai.com, linked from the crewai.com footer, is an incident.io status page for the hosted platform, not the library."
        ],
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/crewai.json",
      "live": {
        "slug": "crewai",
        "vendorStatus": {
          "page": "https://status.crewai.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T19:21:40.019383352Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "crewAIInc/crewAI",
            "version": "1.15.36",
            "released": "2026-11-06",
            "seenAt": "2026-11-06T23:18:20.2395136Z"
          },
          {
            "registry": "pypi",
            "name": "crewai",
            "version": "1.15.36",
            "released": "2026-11-06",
            "seenAt": "2026-11-06T23:18:20.099328206Z"
          }
        ],
        "githubStars": 60583,
        "pypiWeekly": 588229,
        "securityTxt": {
          "url": "https://crewai.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-05-27T23:59:59.000Z",
          "checkedAt": "2026-11-07T16:00:50.473985264Z"
        },
        "llmsTxt": {
          "url": "https://docs.crewai.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:13.532765901Z"
        },
        "domain": {
          "domain": "crewai.com",
          "registered": "2017-07-25",
          "source": "https://rdap.verisign.com/com/v1/domain/crewai.com",
          "checkedAt": "2026-11-01T14:25:44.848100367Z"
        },
        "pages": [
          {
            "url": "https://docs.crewai.com/en/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:05:56.144704351Z",
            "changedAt": "2026-11-07T14:05:56.144704351Z",
            "fingerprint": "0af42d71f70d"
          },
          {
            "url": "https://crewai.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:02:05.841896582Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "08ea3c8d522c"
          },
          {
            "url": "https://crewai.com/terms-of-use",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:02:08.252235034Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ba1be78a1ea0"
          }
        ],
        "github": {
          "repo": "crewaiinc/crewai",
          "checkedAt": "2026-11-02T08:41:58.31375138Z",
          "stars": 60409,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-11-02T06:37:07Z",
          "openIssues": 406,
          "openPRs": 588,
          "issuesOpened90d": 662,
          "issuesClosed90d": 358,
          "prsMerged90d": 424,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 50,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-11-01T22:35:16Z"
          }
        },
        "updatedAt": "2026-11-07T19:21:40.019383352Z"
      }
    },
    "answer": "AI SDK scores 89.8 (AA) on agent readiness against CrewAI's 59 (C), and leads in every scored category.",
    "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": 26,
        "category": "schema",
        "leads": "vercel-ai-sdk",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Agent, Task and tool classes are Pydantic-typed, but we found no generated API reference for the Python library (15). llms.txt at docs.crewai.com, per the listing's earlier check (10). The docs separate Crews from Flows and say which to use for what, though not when to avoid multi-agent crews (12). Tools take a Pydantic args_schema and MCP tools keep their JSON Schema (12). Plenty of examples, and MCP connection errors are described, but there's no exception reference (10). Dated changelog at docs.crewai.com/en/changelog (15).",
          "b": "Typed TypeScript API with a reference section for every function (25). llms.txt and a Markdown copy of each page (10). The docs say when to use each piece, such as a table of WorkflowAgent against ToolLoopAgent, a when-to-use section for subagents and harnesses, and HTTP over stdio for MCP in production (20). Tools take Zod or JSON Schema inputs (15). 38 error types documented in the reference, with error-handling guides and examples throughout (15). Versioning page and a changesets CHANGELOG per package (15)."
        },
        "scores": {
          "a": 74,
          "b": 100
        }
      },
      {
        "by": 25,
        "category": "security",
        "leads": "vercel-ai-sdk",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Anonymous telemetry on by default (versions, crew and agent configuration, tool usage, agent roles and tool names, no prompts or task descriptions), off with CREWAI_DISABLE_TELEMETRY or OTEL_SDK_DISABLED (20). Pre-tool-call hooks can block a call or ask a person to approve it, and MCP tools can be allow-listed, but there's no sandbox now that CodeInterpreterTool is gone (15). Task guardrails and hooks, and the MCP page says to trust a server before using it, but we found no prompt-injection guidance (10). Tracing to CrewAI AMP or third-party tools such as Langfuse and MLflow (12). A security policy in the repository with private reporting through GitHub, security@crewai.com, response times, safe harbour and a CVE commitment through GitHub's CNA, and a valid security.txt that points to it. No paid bug bounty. The four March 2026 CVEs came through CERT/CC, and October fixes cite two GHSA ids that OSV didn't list on 1 November (8). Framework reading, so SOC 2 isn't scored.",
          "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": 65,
          "b": 90
        }
      },
      {
        "by": 20,
        "category": "payments",
        "leads": "vercel-ai-sdk",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No payment protocol (0). Scored on CrewAI AMP, the hosted option. Its free Basic plan is public but the only paid plan is contact-sales (0). The MIT package installs with no card (20) and no account, and can run a local model through LiteLLM (20).",
          "b": "No payment protocol (0). Scored on the AI Gateway, the paid option, which charges providers' list prices with no markup and lists per-model rates and add-on prices without a login (20). The Apache 2.0 package installs with no card (20) and no account, and provider packages run any model, including local ones (20)."
        },
        "scores": {
          "a": 40,
          "b": 60
        }
      },
      {
        "by": 18,
        "category": "reliability",
        "leads": "vercel-ai-sdk",
        "name": "Reliability",
        "reasons": {
          "a": "Official package on PyPI with Requires-Python \u003e=3.10,\u003c3.14 in the pyproject at 1.15.33 (20). The Run Tests workflow runs the suite on pull requests only, and CodeQL, a vulnerability scan and a nightly canary run on main; run results weren't re-read on 1 November because GitHub's pages answer 403 (15). Between 99 and 184 open issues, triaged with labels and a stale bot, per the 1 October check, not re-read on 1 November (18). A dated changelog that notes deprecations, but no written versioning policy, new capabilities ship in patch releases, and 1.15.29, a patch release on 23 October 2026, removed public import paths and changed how every agent runs, marked as breaking only on 28 October (7). 1.15.33, 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": 75,
          "b": 93
        }
      },
      {
        "by": 15,
        "category": "ergonomics",
        "leads": "vercel-ai-sdk",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "The mcps field gives an agent an MCP server in five lines, with static and dynamic tool filters and tool-list caching (25). max_iter defaults to 20, max_execution_time and max_rpm cap runs, and respect_context_window is on by default (20). MCP connection failures are logged as warnings and the agent carries on without those tools, and we found no exception reference (10). max_retry_limit retries an agent twice on error, and Flows persist state with @persist (20). An agent needs role, goal and backstory before it does anything, and it's Python only (5).",
          "b": "An MCP client in a few lines with createMCPClient and client.tools(), and tool search with deferLoading keeps unused tool definitions out of the prompt (25). stopWhen with a default of 20 steps, and prepareStep to trim messages, switch models or limit active tools per step (20). 38 typed errors with isInstance guards, and MCP results with isError go back to the model (20). maxRetries on model calls, opt-in retries for transient MCP failures only, and WorkflowAgent for durable steps with automatic retries (20). Few required parameters, but TypeScript only, and a string model ID needs an AI Gateway key unless a default provider is set (10)."
        },
        "scores": {
          "a": 80,
          "b": 95
        }
      },
      {
        "by": 10,
        "category": "transparency",
        "leads": "vercel-ai-sdk",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "MIT (30). The telemetry page lists what's collected and what isn't, but doesn't say where it goes or how long it's kept (15). Deprecations such as function_calling_llm and allow_code_execution appear in the dated changelog and docs, with no written deprecation policy (10). Telemetry disclosed in the docs and README with two opt-out variables (20).",
          "b": "Apache 2.0 (30). The library stores nothing. The AI Gateway's ZDR page says it doesn't retain prompts or outputs and per-request ZDR is available on Pro and Enterprise, and Vercel's privacy notice is dated 1 June 2026, but we didn't read a DPA or subprocessor list (22). Deprecated APIs are removed only at majors with a migration guide, and 6.x and 5.x keep getting releases, without a written support window (14). Telemetry is opt-in and documented, with switches for inputs and outputs (20)."
        },
        "scores": {
          "a": 79,
          "b": 89
        }
      }
    ],
    "facts": [
      {
        "a": "Agent framework",
        "b": "Agent framework",
        "name": "Kind"
      },
      {
        "a": "CrewAI",
        "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": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-29",
        "b": "2026-11-05",
        "name": "Last release"
      },
      {
        "a": "not read yet",
        "b": "2026-06-01",
        "name": "Terms last updated"
      },
      {
        "a": "not read yet",
        "b": "2026-06-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not read yet",
        "b": "yes, with an opt-out",
        "name": "Customer content may train models"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "59k stars, 552k PyPI/wk",
        "b": "28k stars, 44.9M npm/wk",
        "name": "Popularity"
      },
      {
        "a": "3/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "AI SDK scores 89.8 (AA) on agent readiness against CrewAI's 59 (C), and leads in every scored category.",
        "question": "Which is better for AI agents, CrewAI or AI SDK?"
      },
      {
        "answer": "Yes. CrewAI is open source (MIT). AI SDK is open source (Apache-2.0).",
        "question": "Are CrewAI and AI SDK open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": [
          "No key needed to call it"
        ],
        "goodFor": "Multi-agent role-and-task workflows and for teams that want Flows for ordered, stateful steps.",
        "slug": "crewai",
        "watchFor": "Anonymous telemetry on by default, with no stated destination or retention"
      },
      {
        "aheadOn": [
          "Reliability, 93 against 75",
          "Schema \u0026 documentation, 100 against 74",
          "Agent ergonomics, 95 against 80",
          "Security \u0026 auth, 90 against 65",
          "Payments \u0026 pricing, 60 against 40",
          "Maintenance \u0026 community, 97 against 88",
          "Transparency \u0026 trust, 89 against 79"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "No incidents deducted, where CrewAI loses 12 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": {
      "crewai": [
        {
          "causes": [
            "product",
            "evidence",
            "event"
          ],
          "date": "2026-11-01",
          "delta": -8.1,
          "from": 67.1,
          "fromGrade": "B",
          "to": 59,
          "toGrade": "C"
        },
        {
          "causes": [
            "correction"
          ],
          "date": "2026-10-28",
          "delta": -0.1,
          "from": 67.2,
          "fromGrade": "B",
          "to": 67.1,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.2,
          "from": 67,
          "fromGrade": "B",
          "to": 67.2,
          "toGrade": "B"
        }
      ],
      "vercel-ai-sdk": null
    },
    "job": {
      "capability": "agent.framework",
      "name": "Agent frameworks"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agentos-vs-crewai.json",
        "title": "AgentOS vs CrewAI",
        "url": "https://www.anchorterminal.com/compare/agentos-vs-crewai"
      },
      {
        "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-crewai.json",
        "title": "Agno vs CrewAI",
        "url": "https://www.anchorterminal.com/compare/agno-vs-crewai"
      },
      {
        "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-crewai.json",
        "title": "BoxLang AI vs CrewAI",
        "url": "https://www.anchorterminal.com/compare/boxlang-ai-vs-crewai"
      },
      {
        "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-crewai.json",
        "title": "Claude Agent SDK vs CrewAI",
        "url": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-crewai"
      },
      {
        "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-cursor-agent-sdk.json",
        "title": "CrewAI vs Cursor Agent SDK",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-cursor-agent-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-docker-agent.json",
        "title": "CrewAI vs Docker Agent",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-docker-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-google-adk.json",
        "title": "CrewAI vs Agent Development Kit (ADK)",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-google-adk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-guilds-run.json",
        "title": "CrewAI vs guilds.run",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-guilds-run"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-langgraph.json",
        "title": "CrewAI vs LangGraph",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-langgraph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-llamaindex.json",
        "title": "CrewAI vs LlamaIndex Framework",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-llamaindex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-mastra.json",
        "title": "CrewAI vs Mastra",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-mastra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-microsoft-agent-framework.json",
        "title": "CrewAI vs Microsoft Agent Framework",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-microsoft-agent-framework"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-openai-agents-sdk.json",
        "title": "CrewAI vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-openai-agents-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-smolagents.json",
        "title": "CrewAI vs smolagents",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-strands-agents.json",
        "title": "CrewAI vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-strands-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-tradingagents.json",
        "title": "CrewAI vs TradingAgents",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-tradingagents"
      },
      {
        "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-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-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-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-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-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-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-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-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-vercel-ai-sdk.json",
        "title": "Pydantic AI vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/pydantic-ai-vs-vercel-ai-sdk"
      },
      {
        "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": 18,
        "crewai": 75,
        "edge": "vercel-ai-sdk",
        "key": "reliability",
        "name": "Reliability",
        "vercel-ai-sdk": 93,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 26,
        "crewai": 74,
        "edge": "vercel-ai-sdk",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "vercel-ai-sdk": 100,
        "weight": 13
      },
      {
        "by": 15,
        "crewai": 80,
        "edge": "vercel-ai-sdk",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "vercel-ai-sdk": 95,
        "weight": 13
      },
      {
        "by": 25,
        "crewai": 65,
        "edge": "vercel-ai-sdk",
        "key": "security",
        "name": "Security \u0026 auth",
        "vercel-ai-sdk": 90,
        "weight": 14
      },
      {
        "by": 20,
        "crewai": 40,
        "edge": "vercel-ai-sdk",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "vercel-ai-sdk": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 9,
        "crewai": 88,
        "edge": "vercel-ai-sdk",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "vercel-ai-sdk": 97,
        "weight": 7
      },
      {
        "by": 10,
        "crewai": 79,
        "edge": "vercel-ai-sdk",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "vercel-ai-sdk": 89,
        "weight": 7
      }
    ],
    "summary": "AI SDK scores 89.8 (AA) on agent readiness against CrewAI's 59 (C), and leads in every scored category. Both do agent frameworks.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "crewai": "The mcps field connects an agent to an MCP server in a few lines, with static and dynamic tool filters. Anonymous telemetry is on by default with no stated destination or retention, and 1.15.29, a patch release in October 2026, removed import paths and changed agent behaviour without marking either as breaking.",
      "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/crewai-vs-vercel-ai-sdk",
    "json": "https://www.anchorterminal.com/compare/crewai-vs-vercel-ai-sdk.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/crewai-vs-vercel-ai-sdk.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/crewai-vs-vercel-ai-sdk.min.md"
  },
  "markdown": "AI SDK scores 89.8 (AA) on agent readiness against CrewAI's 59 (C), and leads in every scored category. Both do agent frameworks.\n\n- CrewAI: grade C, 59/100, rank #720 of 1510. Markdown https://www.anchorterminal.com/tools/crewai.md · JSON https://www.anchorterminal.com/api/v1/tools/crewai.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### CrewAI (C)\n\nGood for: Multi-agent role-and-task workflows and for teams that want Flows for ordered, stateful steps.\n\nAlso in its favour:\n- No key needed to call it\n\nWatch for: Anonymous telemetry on by default, with no stated destination or retention\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 75\n- Schema \u0026 documentation, 100 against 74\n- Agent ergonomics, 95 against 80\n- Security \u0026 auth, 90 against 65\n- Payments \u0026 pricing, 60 against 40\n- Maintenance \u0026 community, 97 against 88\n- Transparency \u0026 trust, 89 against 79\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- No incidents deducted, where CrewAI loses 12 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### Schema \u0026 documentation: AI SDK +26\n\n- CrewAI (74): Agent, Task and tool classes are Pydantic-typed, but we found no generated API reference for the Python library (15). llms.txt at docs.crewai.com, per the listing's earlier check (10). The docs separate Crews from Flows and say which to use for what, though not when to avoid multi-agent crews (12). Tools take a Pydantic args_schema and MCP tools keep their JSON Schema (12). Plenty of examples, and MCP connection errors are described, but there's no exception reference (10). Dated changelog at docs.crewai.com/en/changelog (15).\n- AI SDK (100): Typed TypeScript API with a reference section for every function (25). llms.txt and a Markdown copy of each page (10). The docs say when to use each piece, such as a table of WorkflowAgent against ToolLoopAgent, a when-to-use section for subagents and harnesses, and HTTP over stdio for MCP in production (20). Tools take Zod or JSON Schema inputs (15). 38 error types documented in the reference, with error-handling guides and examples throughout (15). Versioning page and a changesets CHANGELOG per package (15).\n\n### Security \u0026 auth: AI SDK +25\n\n- CrewAI (65): Anonymous telemetry on by default (versions, crew and agent configuration, tool usage, agent roles and tool names, no prompts or task descriptions), off with CREWAI_DISABLE_TELEMETRY or OTEL_SDK_DISABLED (20). Pre-tool-call hooks can block a call or ask a person to approve it, and MCP tools can be allow-listed, but there's no sandbox now that CodeInterpreterTool is gone (15). Task guardrails and hooks, and the MCP page says to trust a server before using it, but we found no prompt-injection guidance (10). Tracing to CrewAI AMP or third-party tools such as Langfuse and MLflow (12). A security policy in the repository with private reporting through GitHub, security@crewai.com, response times, safe harbour and a CVE commitment through GitHub's CNA, and a valid security.txt that points to it. No paid bug bounty. The four March 2026 CVEs came through CERT/CC, and October fixes cite two GHSA ids that OSV didn't list on 1 November (8). Framework reading, so SOC 2 isn't scored.\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### Payments \u0026 pricing: AI SDK +20\n\n- CrewAI (40): No payment protocol (0). Scored on CrewAI AMP, the hosted option. Its free Basic plan is public but the only paid plan is contact-sales (0). The MIT package installs with no card (20) and no account, and can run a local model through LiteLLM (20).\n- AI SDK (60): No payment protocol (0). Scored on the AI Gateway, the paid option, which charges providers' list prices with no markup and lists per-model rates and add-on prices without a login (20). The Apache 2.0 package installs with no card (20) and no account, and provider packages run any model, including local ones (20).\n\n### Reliability: AI SDK +18\n\n- CrewAI (75): Official package on PyPI with Requires-Python \u003e=3.10,\u003c3.14 in the pyproject at 1.15.33 (20). The Run Tests workflow runs the suite on pull requests only, and CodeQL, a vulnerability scan and a nightly canary run on main; run results weren't re-read on 1 November because GitHub's pages answer 403 (15). Between 99 and 184 open issues, triaged with labels and a stale bot, per the 1 October check, not re-read on 1 November (18). A dated changelog that notes deprecations, but no written versioning policy, new capabilities ship in patch releases, and 1.15.29, a patch release on 23 October 2026, removed public import paths and changed how every agent runs, marked as breaking only on 28 October (7). 1.15.33, 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### Agent ergonomics: AI SDK +15\n\n- CrewAI (80): The mcps field gives an agent an MCP server in five lines, with static and dynamic tool filters and tool-list caching (25). max_iter defaults to 20, max_execution_time and max_rpm cap runs, and respect_context_window is on by default (20). MCP connection failures are logged as warnings and the agent carries on without those tools, and we found no exception reference (10). max_retry_limit retries an agent twice on error, and Flows persist state with @persist (20). An agent needs role, goal and backstory before it does anything, and it's Python only (5).\n- AI SDK (95): An MCP client in a few lines with createMCPClient and client.tools(), and tool search with deferLoading keeps unused tool definitions out of the prompt (25). stopWhen with a default of 20 steps, and prepareStep to trim messages, switch models or limit active tools per step (20). 38 typed errors with isInstance guards, and MCP results with isError go back to the model (20). maxRetries on model calls, opt-in retries for transient MCP failures only, and WorkflowAgent for durable steps with automatic retries (20). Few required parameters, but TypeScript only, and a string model ID needs an AI Gateway key unless a default provider is set (10).\n\n### Transparency \u0026 trust: AI SDK +10\n\n- CrewAI (79): MIT (30). The telemetry page lists what's collected and what isn't, but doesn't say where it goes or how long it's kept (15). Deprecations such as function_calling_llm and allow_code_execution appear in the dated changelog and docs, with no written deprecation policy (10). Telemetry disclosed in the docs and README with two opt-out variables (20).\n- AI SDK (89): Apache 2.0 (30). The library stores nothing. The AI Gateway's ZDR page says it doesn't retain prompts or outputs and per-request ZDR is available on Pro and Enterprise, and Vercel's privacy notice is dated 1 June 2026, but we didn't read a DPA or subprocessor list (22). Deprecated APIs are removed only at majors with a migration guide, and 6.x and 5.x keep getting releases, without a written support window (14). Telemetry is opt-in and documented, with switches for inputs and outputs (20).\n\n## Score by category\n\n| Category | Weight | CrewAI | AI SDK | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 93 | AI SDK +18 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 74 | 100 | AI SDK +26 |\n| Agent ergonomics | 13% (16.2 this run) | 80 | 95 | AI SDK +15 |\n| Security \u0026 auth | 14% (17.5 this run) | 65 | 90 | AI SDK +25 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 60 | AI SDK +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 88 | 97 | AI SDK +9 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 79 | 89 | AI SDK +10 |\n| Negative events | ≤15 | -12 | 0 | |\n| **Total** | | **59 · C** | **89.8 · AA** | |\n\n## Facts side by side\n\n| Fact | CrewAI | AI SDK |\n| --- | --- | --- |\n| Kind | Agent framework | Agent framework |\n| Vendor | CrewAI | 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 | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-29 | 2026-11-05 |\n| Terms last updated | not read yet | 2026-06-01 |\n| Privacy policy last updated | not read yet | 2026-06-01 |\n| Customer content may train models | not read yet | yes, with an opt-out |\n| Terms restrict automated access | not read yet | not found in the text |\n| Terms restrict benchmarking | not read yet | not found in the text |\n| Terms or service can change without notice | not read yet | not found in the text |\n| Arbitration or class-action waiver | not read yet | yes |\n| Popularity | 59k stars, 552k PyPI/wk | 28k stars, 44.9M npm/wk |\n| Agent reviews | 3/5 (2) | none |\n\n## How the scores have moved\n\n### CrewAI\n\n- -8.1 on 1 November 2026 (B to C): product, new evidence, negative event\n- -0.1 on 28 October 2026: correction\n- +0.2 on 27 October 2026: checklist\n\n### AI SDK\n\nNo score change since it was listed.\n\n## Verdicts\n\n**CrewAI.** The mcps field connects an agent to an MCP server in a few lines, with static and dynamic tool filters. Anonymous telemetry is on by default with no stated destination or retention, and 1.15.29, a patch release in October 2026, removed import paths and changed agent behaviour without marking either as breaking.\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### CrewAI\n\n1. Set CREWAI_DISABLE_TELEMETRY=true before the first run\n2. Pin an exact version and read the changelog before upgrading. Patch releases have carried breaking changes\n3. Put MCP keys in headers, not in the URL as the docs' Exa example does\n4. Add a PRE_TOOL_CALL hook for any tool that writes or sends\n5. Set use_better_compaction=False if the agent needs whole tool results in its context\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, CrewAI or AI SDK?\n\nAI SDK scores 89.8 (AA) on agent readiness against CrewAI's 59 (C), and leads in every scored category.\n\n### Are CrewAI and AI SDK open source?\n\nYes. CrewAI 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/crewai-vs-vercel-ai-sdk.json, and with the fewest tokens: https://www.anchorterminal.com/compare/crewai-vs-vercel-ai-sdk.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"crewai\", \"b\": \"vercel-ai-sdk\"}`. From a terminal: `anchor compare crewai vercel-ai-sdk`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/crewai.json and https://www.anchorterminal.com/api/v1/tools/vercel-ai-sdk.json\n\n## Other comparisons with CrewAI or AI SDK\n\n- [AgentOS vs CrewAI](https://www.anchorterminal.com/compare/agentos-vs-crewai.md)\n- [AgentOS vs AI SDK](https://www.anchorterminal.com/compare/agentos-vs-vercel-ai-sdk.md)\n- [Agno vs CrewAI](https://www.anchorterminal.com/compare/agno-vs-crewai.md)\n- [Agno vs AI SDK](https://www.anchorterminal.com/compare/agno-vs-vercel-ai-sdk.md)\n- [BoxLang AI vs CrewAI](https://www.anchorterminal.com/compare/boxlang-ai-vs-crewai.md)\n- [BoxLang AI vs AI SDK](https://www.anchorterminal.com/compare/boxlang-ai-vs-vercel-ai-sdk.md)\n- [Claude Agent SDK vs CrewAI](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-crewai.md)\n- [Claude Agent SDK vs AI SDK](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-vercel-ai-sdk.md)\n- [CrewAI vs Cursor Agent SDK](https://www.anchorterminal.com/compare/crewai-vs-cursor-agent-sdk.md)\n- [CrewAI vs Docker Agent](https://www.anchorterminal.com/compare/crewai-vs-docker-agent.md)\n- [CrewAI vs Agent Development Kit (ADK)](https://www.anchorterminal.com/compare/crewai-vs-google-adk.md)\n- [CrewAI vs guilds.run](https://www.anchorterminal.com/compare/crewai-vs-guilds-run.md)\n- [CrewAI vs LangGraph](https://www.anchorterminal.com/compare/crewai-vs-langgraph.md)\n- [CrewAI vs LlamaIndex Framework](https://www.anchorterminal.com/compare/crewai-vs-llamaindex.md)\n- [CrewAI vs Mastra](https://www.anchorterminal.com/compare/crewai-vs-mastra.md)\n- [CrewAI vs Microsoft Agent Framework](https://www.anchorterminal.com/compare/crewai-vs-microsoft-agent-framework.md)\n- [CrewAI vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/crewai-vs-openai-agents-sdk.md)\n- [CrewAI vs Pydantic AI](https://www.anchorterminal.com/compare/crewai-vs-pydantic-ai.md)\n- [CrewAI vs smolagents](https://www.anchorterminal.com/compare/crewai-vs-smolagents.md)\n- [CrewAI vs Strands Agents](https://www.anchorterminal.com/compare/crewai-vs-strands-agents.md)\n- [CrewAI vs TradingAgents](https://www.anchorterminal.com/compare/crewai-vs-tradingagents.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 AI SDK](https://www.anchorterminal.com/compare/docker-agent-vs-vercel-ai-sdk.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 AI SDK](https://www.anchorterminal.com/compare/guilds-run-vs-vercel-ai-sdk.md)\n- [LangGraph vs AI SDK](https://www.anchorterminal.com/compare/langgraph-vs-vercel-ai-sdk.md)\n- [LlamaIndex Framework vs AI SDK](https://www.anchorterminal.com/compare/llamaindex-vs-vercel-ai-sdk.md)\n- [Mastra vs AI SDK](https://www.anchorterminal.com/compare/mastra-vs-vercel-ai-sdk.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 AI SDK](https://www.anchorterminal.com/compare/openai-agents-sdk-vs-vercel-ai-sdk.md)\n- [Pydantic AI vs AI SDK](https://www.anchorterminal.com/compare/pydantic-ai-vs-vercel-ai-sdk.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": "CrewAI vs AI SDK",
        "url": ""
      }
    ],
    "description": "AI SDK scores 89.8 (AA) to CrewAI's 59 (C) for agent frameworks. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "CrewAI C 59",
      "AI SDK AA 89.8",
      "scores"
    ],
    "h1": "CrewAI vs AI SDK",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/crewai-vs-vercel-ai-sdk",
    "published": "2026-10-01",
    "section": "tools",
    "title": "CrewAI vs AI SDK for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/crewai-vs-vercel-ai-sdk"
  },
  "tokens": {
    "markdown": 4350,
    "slim": 2430
  },
  "version": 1
}
