{
  "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",
      "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-09-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67,
        "grade": "B",
        "agentReady": false,
        "rank": 149,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 6,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 88,
          "payments": 40,
          "reliability": 78,
          "schema": 74,
          "security": 65,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -4,
        "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 and documented and six months old, so 1 point each. CVE-2026-37008 (published 2026-09-13, 8.1) describes a ctypes bypass of the same Python sandbox, and we didn't count it twice. https://www.kb.cert.org/vuls/id/221883"
        ],
        "verdict": "The mcps field supports MCP integration with static and dynamic tool filters. Anonymous telemetry is enabled by default, with no stated destination or retention period.",
        "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",
          "22 stable releases between 8 July and 28 September 2026",
          "Telemetry excludes prompts, task descriptions, backstories and goals unless you turn on share_crew"
        ],
        "weaknesses": [
          "Anonymous telemetry on by default, with no stated destination or retention",
          "Four CVEs in March 2026, two rated 9.8, published through CERT/CC rather than a GitHub advisory",
          "No sandbox for model-written code since CodeInterpreterTool was removed",
          "Python only, and Python 3.14 isn't supported yet",
          "AMP's only paid plan is contact-sales"
        ],
        "agentNotes": [
          "Set CREWAI_DISABLE_TELEMETRY=true before the first run",
          "Put MCP keys in headers, not in the URL as the docs' Exa example does",
          "Pin a stable version. Development builds share the crewai name on PyPI",
          "Add a PRE_TOOL_CALL hook for any tool that writes or sends",
          "Check the logs for MCP connection warnings. A failed server doesn't stop the agent"
        ],
        "metrics": {
          "kind": "library",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 88,
          "payments": 40,
          "reliability": 78,
          "schema": 74,
          "security": 65,
          "transparency": 75
        },
        "provenanceScore": 68
      },
      "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": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://docs.crewai.com/en/changelog",
        "securityTxt": "none",
        "checked": "2026-09-26",
        "score": 68
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/crewai.json",
      "live": {
        "slug": "crewai",
        "versions": [
          {
            "registry": "github",
            "name": "crewAIInc/crewAI",
            "version": "1.15.23",
            "released": "2026-09-28",
            "seenAt": "2026-10-04T16:24:45.176293745Z"
          },
          {
            "registry": "pypi",
            "name": "crewai",
            "version": "1.15.23",
            "released": "2026-09-28",
            "seenAt": "2026-10-04T16:24:45.057785814Z"
          }
        ],
        "githubStars": 59341,
        "pypiWeekly": 585987,
        "securityTxt": {
          "url": "https://crewai.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-05-27T23:59:59.000Z",
          "checkedAt": "2026-10-04T15:15:37.49926093Z"
        },
        "llmsTxt": {
          "url": "https://docs.crewai.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:30.222022427Z"
        },
        "domain": {
          "domain": "crewai.com",
          "registered": "2017-07-25",
          "source": "https://rdap.verisign.com/com/v1/domain/crewai.com",
          "checkedAt": "2026-10-04T13:06:28.959473977Z"
        },
        "pages": [
          {
            "url": "https://docs.crewai.com/en/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:43:30.512551575Z",
            "changedAt": "2026-09-29T13:08:37.898626082Z",
            "fingerprint": "924edc0371c1"
          }
        ],
        "updatedAt": "2026-10-04T16:24:45.176293745Z"
      }
    },
    "b": {
      "slug": "pydantic-ai",
      "name": "Pydantic AI",
      "vendor": "Pydantic",
      "vendorUrl": "https://pydantic.dev",
      "kind": "framework",
      "category": "frameworks",
      "summary": "Typed Python agent framework for 25+ model providers, with MCP, A2A and durable execution.",
      "url": "https://www.anchorterminal.com/tools/pydantic-ai",
      "markdownUrl": "https://www.anchorterminal.com/tools/pydantic-ai.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/pydantic-ai.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/pydantic-ai.json",
      "repo": "https://github.com/pydantic/pydantic-ai",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "pydantic-ai"
        }
      ],
      "auth": "none",
      "authNotes": "A library. Credentials are for the models and tools you use.",
      "pricing": "free",
      "pricingNotes": "Free and open source. You pay for the model calls it makes. Logfire for tracing is free for personal use, $49 a month for teams.",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 20192,
        "npmWeekly": null,
        "pypiWeekly": 1276452,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://pydantic.dev/docs/ai/overview/",
      "llmsTxt": "https://pydantic.dev/docs/ai/llms.txt",
      "capabilities": [
        "agent.framework",
        "agent.multi-agent",
        "agent.durable",
        "agent.mcp-client"
      ],
      "tags": [
        "framework",
        "python",
        "open-source",
        "typed",
        "no-telemetry"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 80,
        "grade": "A",
        "agentReady": true,
        "rank": 7,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 85,
          "maintenance": 90,
          "payments": 60,
          "reliability": 83,
          "schema": 95,
          "security": 80,
          "transparency": 77
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -2,
        "negativeNotes": [
          "2026-02-06. Two high-severity advisories, server-side request forgery in URL download handling (GHSA-2jrp-274c-jhv3, CVE-2026-25580) and stored XSS through path traversal in the web UI's CDN URL (GHSA-wjp5-868j-wqv7). Both fixed and published, and almost eight months old, so 1 point each. Five moderate advisories from May to August 2026, two of them bypasses of its cloud-metadata blocklist, weren't deducted. https://github.com/pydantic/pydantic-ai/security"
        ],
        "verdict": "Typed outputs and tools, validated by Pydantic, with failed validations sent back to the model. Python only.",
        "strengths": [
          "Typed outputs and tools, validated by Pydantic, with failed validations sent back to the model",
          "No telemetry until you configure OpenTelemetry or Logfire",
          "Durable execution on Temporal, DBOS, Prefect, Restate, AWS Lambda, Kitaru and Airflow",
          "A written version policy, with deprecations kept until the next major",
          "A built-in test model that needs no API key"
        ],
        "weaknesses": [
          "Python only",
          "560 open issues and 219 open pull requests",
          "Seven advisories in 2026, including SSRF and two bypasses of its cloud-metadata blocklist",
          "No sandbox for model-written code",
          "Guardrails live in the separate Harness"
        ],
        "agentNotes": [
          "Define the output type first. Validation retries fix most malformed answers without a prompt change",
          "Start with the test model to check the wiring without a key",
          "Use streamable HTTP for MCP. SSE is deprecated",
          "Set usage limits on every run that calls paid models",
          "Stay on a current release if agents download URLs. Its cloud-metadata blocklist was bypassed twice in May 2026"
        ],
        "metrics": {
          "kind": "library",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "A",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 80
          }
        ],
        "editorialScores": {
          "ergonomics": 85,
          "maintenance": 90,
          "payments": 60,
          "reliability": 83,
          "schema": 95,
          "security": 80,
          "transparency": 90
        },
        "provenanceScore": 63
      },
      "connect": {
        "install": "pip install pydantic-ai"
      },
      "letme": {
        "capability": "https://letme.dev/agent.framework",
        "tool": "https://letme.dev/pydantic-ai"
      },
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Logfire Team",
          "unit": "month",
          "usd": 49,
          "note": "tracing, personal use free"
        }
      ],
      "provenance": {
        "legalEntity": "Pydantic Services Inc.",
        "domain": "pydantic.dev",
        "domainRegistered": "2022-04-24",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://pydantic.dev/docs/ai/project/changelog/",
        "securityTxt": "none",
        "checked": "2026-09-26",
        "score": 63
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/pydantic-ai.json",
      "live": {
        "slug": "pydantic-ai",
        "versions": [
          {
            "registry": "github",
            "name": "pydantic/pydantic-ai",
            "version": "v2.54.0",
            "released": "2026-10-03",
            "seenAt": "2026-10-04T16:37:46.651114626Z"
          },
          {
            "registry": "pypi",
            "name": "pydantic-ai",
            "version": "2.54.0",
            "released": "2026-10-03",
            "seenAt": "2026-10-04T16:37:46.543619785Z"
          }
        ],
        "githubStars": 20402,
        "pypiWeekly": 1337828,
        "securityTxt": {
          "url": "https://pydantic.dev/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-09-17T00:00:00.000Z",
          "checkedAt": "2026-10-04T15:15:39.341503297Z"
        },
        "llmsTxt": {
          "url": "https://pydantic.dev/docs/ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:08.880084623Z"
        },
        "domain": {
          "domain": "pydantic.dev",
          "registered": "2022-04-24",
          "source": "https://pubapi.registry.google/rdap/domain/pydantic.dev",
          "checkedAt": "2026-10-04T13:05:46.866197353Z"
        },
        "pages": [
          {
            "url": "https://pydantic.dev/docs/ai/project/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:12.334207825Z",
            "changedAt": "2026-10-03T15:35:11.705364904Z",
            "fingerprint": "020b53329d62"
          },
          {
            "url": "https://pydantic.dev/articles/pydantic-ai-v2",
            "kind": "deprecations",
            "status": 304,
            "checkedAt": "2026-10-04T15:47:10.284617874Z",
            "changedAt": "2026-09-30T13:10:38.85001264Z",
            "fingerprint": "b2069886d3ed"
          }
        ],
        "updatedAt": "2026-10-04T16:37:46.651114626Z"
      }
    },
    "summary": "Pydantic AI has a score of 80 (A) against CrewAI's 67 (B). Both do agent frameworks. The largest gap is schema \u0026 documentation, 21 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/crewai-vs-pydantic-ai",
    "json": "https://www.anchorterminal.com/compare/crewai-vs-pydantic-ai.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/crewai-vs-pydantic-ai.md",
    "slim": "https://www.anchorterminal.com/compare/crewai-vs-pydantic-ai.min.md"
  },
  "markdown": "Pydantic AI has a score of 80 (A) against CrewAI's 67 (B). Both do agent frameworks. The largest gap is schema \u0026 documentation, 21 points.\n\n- CrewAI: grade B, 67/100, rank #149 of 452. Markdown https://www.anchorterminal.com/tools/crewai.md · JSON https://www.anchorterminal.com/api/v1/tools/crewai.json\n- Pydantic AI: grade A, 80/100, rank #7 of 452. Markdown https://www.anchorterminal.com/tools/pydantic-ai.md · JSON https://www.anchorterminal.com/api/v1/tools/pydantic-ai.json\n\n## Which one, for what\n\nPick CrewAI for nothing in particular (no category where it leads by five points or more).\n\nPick Pydantic AI for reliability (+5), schema \u0026 documentation (+21), agent ergonomics (+5), security \u0026 auth (+15), payments \u0026 pricing (+20), transparency \u0026 trust (+5).\n\n## Score by category\n\n| Category | Weight | CrewAI | Pydantic AI | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 78 | 83 | Pydantic AI +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 74 | 95 | Pydantic AI +21 |\n| Agent ergonomics | 13% (16.2 this run) | 80 | 85 | Pydantic AI +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 65 | 80 | Pydantic AI +15 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 60 | Pydantic AI +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 88 | 90 | Pydantic AI +2 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 72 | 77 | Pydantic AI +5 |\n| Negative events | ≤15 | -4 | -2 | |\n| **Total** | | **67 · B** | **80 · A** | |\n\n## Facts side by side\n\n| Fact | CrewAI | Pydantic AI |\n| --- | --- | --- |\n| Kind | Agent framework | Agent framework |\n| Vendor | CrewAI | Pydantic |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | None | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | MIT | MIT |\n| Tools exposed | none | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-28 | 2026-09-30 |\n| Popularity | 59k stars, 552k PyPI/wk | 20k stars, 1.3M PyPI/wk |\n| Agent reviews | 3/5 (2) | 4/5 (8) |\n\n## Verdicts\n\n**CrewAI.** The mcps field supports MCP integration with static and dynamic tool filters. Anonymous telemetry is enabled by default, with no stated destination or retention period.\n\n**Pydantic AI.** Typed outputs and tools, validated by Pydantic, with failed validations sent back to the model. Python only.\n\n## Before you call either\n\n### CrewAI\n\n1. Set CREWAI_DISABLE_TELEMETRY=true before the first run\n2. Put MCP keys in headers, not in the URL as the docs' Exa example does\n3. Pin a stable version. Development builds share the crewai name on PyPI\n4. Add a PRE_TOOL_CALL hook for any tool that writes or sends\n5. Check the logs for MCP connection warnings. A failed server doesn't stop the agent\n\n### Pydantic AI\n\n1. Define the output type first. Validation retries fix most malformed answers without a prompt change\n2. Start with the test model to check the wiring without a key\n3. Use streamable HTTP for MCP. SSE is deprecated\n4. Set usage limits on every run that calls paid models\n5. Stay on a current release if agents download URLs. Its cloud-metadata blocklist was bypassed twice in May 2026\n\n## Other comparisons with CrewAI or Pydantic AI\n\n- [Claude Agent SDK vs CrewAI](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-crewai.md)\n- [Claude Agent SDK vs Pydantic AI](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-pydantic-ai.md)\n- [CrewAI vs Agent Development Kit (ADK)](https://www.anchorterminal.com/compare/crewai-vs-google-adk.md)\n- [CrewAI vs LangGraph](https://www.anchorterminal.com/compare/crewai-vs-langgraph.md)\n- [CrewAI vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/crewai-vs-openai-agents-sdk.md)\n- [Agent Development Kit (ADK) vs Pydantic AI](https://www.anchorterminal.com/compare/google-adk-vs-pydantic-ai.md)\n- [LangGraph vs Pydantic AI](https://www.anchorterminal.com/compare/langgraph-vs-pydantic-ai.md)\n- [OpenAI Agents SDK vs Pydantic AI](https://www.anchorterminal.com/compare/openai-agents-sdk-vs-pydantic-ai.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "CrewAI vs Pydantic AI",
        "url": ""
      }
    ],
    "description": "Pydantic AI has a score of 80 (A) against CrewAI's 67 (B). Both do agent frameworks. The largest gap is schema \u0026 documentation, 21 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "CrewAI B 67",
      "Pydantic AI A 80",
      "scores"
    ],
    "h1": "CrewAI vs Pydantic AI",
    "image": "https://www.anchorterminal.com/assets/og/compare-crewai-vs-pydantic-ai.png",
    "path": "/compare/crewai-vs-pydantic-ai",
    "published": "2026-10-01",
    "section": "tools",
    "title": "CrewAI vs Pydantic AI for AI agents, B 67 vs A 80 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/crewai-vs-pydantic-ai"
  },
  "tokens": {
    "markdown": 1250,
    "slim": 330
  },
  "version": 1
}
