{"id":"fbfa68eb-0d55-4b68-8284-0b5eee45bf9a","entityType":"agent","slug":"crewai-nipunkhanderia-agent-framework-diff","name":"agent-framework-diff","canonicalUrl":"https://www.xpersona.co/agent/crewai-nipunkhanderia-agent-framework-diff","canonicalPath":"/agent/crewai-nipunkhanderia-agent-framework-diff","generatedAt":"2026-10-10T05:38:36.305Z","source":"GITHUB_REPOS","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T18:14:39.466Z","emptyReason":null},"description":"Comparing Langchain, Langgraph and CrewAI Agent Framework Diff: LangChain vs LangGraph vs CrewAI A small, beginner-friendly project that builds the **exact same** two-agent QA workflow three times — once in LangChain, once in LangGraph, once in CrewAI — so you can see, in real code, how each framework handles multiple agents talking to each other. All three run locally against **Ollama + llama3.2**, and GitHub Actions runs lint/tests automatically, with an o","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.","installCommand":null,"sourceUrl":"https://github.com/nipunkhanderia/agent-framework-diff","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/nipunkhanderia/agent-framework-diff","kind":"source"}],"safetyScore":66,"overallRank":18.6,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Comparing Langchain, Langgraph and CrewAI Agent Framework Diff: LangChain vs LangGraph vs CrewAI A small, beginner-friendly project that builds the **exact same"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T18:14:39.466Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[{"label":"crewai","status":"self-declared"},{"label":"multi-agent","status":"self-declared"}],"verifiedCount":0,"selfDeclaredCount":3,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"},{"key":"crewai","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"multi-agent","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile capability:crewai|supported|profile capability:multi-agent|supported|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-10-09T18:14:39.466Z","emptyReason":"No source adoption metrics were available."},"stars":0,"forks":0,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-10-09T18:14:39.461Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T18:14:39.466Z","lastCrawledAt":"2026-10-09T18:14:39.461Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-16T18:14:39.461Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"GITHUB REPOS","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":null,"setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-nipunkhanderia-agent-framework-diff/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-nipunkhanderia-agent-framework-diff/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-nipunkhanderia-agent-framework-diff/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/crewai-nipunkhanderia-agent-framework-diff/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-nipunkhanderia-agent-framework-diff/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-nipunkhanderia-agent-framework-diff/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"GITHUB_REPOS","generatedAt":"2026-10-10T05:38:36.304Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/crewai-nipunkhanderia-agent-framework-diff/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-nipunkhanderia-agent-framework-diff/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-nipunkhanderia-agent-framework-diff/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-nipunkhanderia-agent-framework-diff/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"GITHUB REPOS","verified":false,"confidence":"high","updatedAt":"2026-10-09T18:14:39.466Z","emptyReason":null},"readme":"# Agent Framework Diff: LangChain vs LangGraph vs CrewAI\n\nA small, beginner-friendly project that builds the **exact same** two-agent\nQA workflow three times — once in LangChain, once in LangGraph, once in\nCrewAI — so you can see, in real code, how each framework handles multiple\nagents talking to each other. All three run locally against **Ollama +\nllama3.2**, and GitHub Actions runs lint/tests automatically, with an\noptional one-click workflow that runs the real thing end-to-end.\n\n## The task (identical in all three versions)\n\n```\nFeature description\n        |\n        v\n+-------------------+        +----------------------+\n| Agent 1: Analyst   | -----> | Agent 2: Test Writer |\n| extracts test      |        | turns scenarios into |\n| scenarios          |        | detailed test cases  |\n+-------------------+        +----------------------+\n```\n\nSame model, same prompts, same input (`shared/config.py`) — only the\norchestration code differs.\n\n## Folder structure\n\n```\nagent-framework-diff/\n├── shared/config.py          # model name, prompts, sample input - shared by all 3\n├── langchain_version/main.py # manual hand-off between two LangChain chains\n├── langgraph_version/main.py # two nodes in a StateGraph, connected by an edge\n├── crewai_version/main.py    # two CrewAI Agents/Tasks, hand-off via `context=`\n├── tests/test_smoke.py       # fast tests that don't need a live LLM\n├── conftest.py                # lets pytest find the folders above\n├── requirements.txt\n└── .github/workflows/\n    ├── ci.yml                # lint + smoke tests, runs on every push\n    └── e2e-ollama.yml        # installs Ollama, pulls llama3.2, runs all 3 for real (manual trigger)\n```\n\n## How the three frameworks differ here\n\n| | LangChain | LangGraph | CrewAI |\n|---|---|---|---|\n| How Agent 1 hands off to Agent 2 | You do it manually — pass the first chain's output into the second chain's input | Declared as an edge in a graph (`add_edge(\"analyst\", \"writer\")`) | Built in — Task 2 declares `context=[task_1]` |\n| Core concept | Chains (`prompt \\| llm`) | Nodes + shared State + Edges | Agents + Tasks + Crew |\n| Best for | Simple, linear pipelines | Multi-step flows with branching/loops/visibility into state | Multi-agent \"team\" workflows out of the box |\n| Code needed for this 2-agent task | Least ceremony, but you own the wiring | A bit more setup (define State, nodes, edges) | Most structure, but the hand-off is free |\n\n## Prerequisites\n\n1. **Python 3.10+**\n2. **[Ollama](https://ollama.com)** installed locally\n3. Pull the model once: `ollama pull llama3.2`\n\n## Setup (step by step, beginner-friendly)\n\n```bash\n# 1. Clone your repo and go into it\ngit clone <your-repo-url>\ncd agent-framework-diff\n\n# 2. Create a virtual environment (keeps dependencies isolated)\npython -m venv venv\n\n# 3. Activate it\nsource venv/bin/activate        # Mac/Linux\nvenv\\Scripts\\activate           # Windows\n\n# 4. Install dependencies\npip install -r requirements.txt\n\n# 5. Make sure Ollama is running in another terminal\nollama serve\n\n# 6. Run any version\npython langchain_version/main.py\npython langgraph_version/main.py\npython crewai_version/main.py\n```\n\nEach script prints out what \"Agent 1\" and \"Agent 2\" produced, so you can\nwatch the hand-off happen.\n\n## Running tests locally\n\n```bash\npytest tests/ -v\n```\n\nThese tests don't call the real model — they check the wiring (prompts,\ngraph, crew) is correct, so they run fast and don't need Ollama running.\n\n## CI/CD\n\n- **`ci.yml`** runs automatically on every push/PR: installs dependencies,\n  lints with flake8, runs the smoke tests. Takes under a minute, doesn't\n  need a model.\n- **`e2e-ollama.yml`** is a manual workflow (Actions tab → \"End-to-End Demo\"\n  → \"Run workflow\"). It installs Ollama on the runner, pulls llama3.2, and\n  actually runs all three pipelines for real — a genuine end-to-end test,\n  not a mock. It's manual-trigger because pulling a model takes a few\n  minutes, and you don't want that on every commit.\n\n## Ideas to extend this\n\n- Add a 3rd agent (\"Reviewer\") that checks the test cases for completeness\n- Swap `llama3.2` for another Ollama model and compare output quality\n- Add a `requirements-lock.txt` with pinned versions once you're happy\n- Push the LangGraph graph image using `app.get_graph().draw_mermaid()`\n","readmeExcerpt":"Agent Framework Diff: LangChain vs LangGraph vs CrewAI A small, beginner-friendly project that builds the **exact same** two-agent QA workflow three times — once in LangChain, once in LangGraph, once in CrewAI — so you can see, in real code, how each framework handles multiple agents talking to each other. All three run locally against **Ollama + llama3.2**, and GitHub Actions runs lint/tests automatically, with an o","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"Feature description\n        |\n        v\n+-------------------+        +----------------------+\n| Agent 1: Analyst   | -----> | Agent 2: Test Writer |\n| extracts test      |        | turns scenarios into |\n| scenarios          |        | detailed test cases  |\n+-------------------+        +----------------------+"},{"language":"text","snippet":"agent-framework-diff/\n├── shared/config.py          # model name, prompts, sample input - shared by all 3\n├── langchain_version/main.py # manual hand-off between two LangChain chains\n├── langgraph_version/main.py # two nodes in a StateGraph, connected by an edge\n├── crewai_version/main.py    # two CrewAI Agents/Tasks, hand-off via `context=`\n├── tests/test_smoke.py       # fast tests that don't need a live LLM\n├── conftest.py                # lets pytest find the folders above\n├── requirements.txt\n└── .github/workflows/\n    ├── ci.yml                # lint + smoke tests, runs on every push\n    └── e2e-ollama.yml        # installs Ollama, pulls llama3.2, runs all 3 for real (manual trigger)"},{"language":"bash","snippet":"# 1. Clone your repo and go into it\ngit clone <your-repo-url>\ncd agent-framework-diff\n\n# 2. Create a virtual environment (keeps dependencies isolated)\npython -m venv venv\n\n# 3. Activate it\nsource venv/bin/activate        # Mac/Linux\nvenv\\Scripts\\activate           # Windows\n\n# 4. Install dependencies\npip install -r requirements.txt\n\n# 5. Make sure Ollama is running in another terminal\nollama serve\n\n# 6. Run any version\npython langchain_version/main.py\npython langgraph_version/main.py\npython crewai_version/main.py"},{"language":"bash","snippet":"pytest tests/ -v"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["python"],"docsSourceLabel":"GITHUB REPOS","editorialOverview":"Comparing Langchain, Langgraph and CrewAI Agent Framework Diff: LangChain vs LangGraph vs CrewAI A small, beginner-friendly project that builds the **exact same** two-agent QA workflow three times — once in LangChain, once in LangGraph, once in CrewAI — so you can see, in real code, how each framework handles multiple agents talking to each other. All three run locally against **Ollama + llama3.2**, and GitHub Actions runs lint/tests automatically, with an o","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":384,"uniquenessScore":65,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T18:14:39.466Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T18:14:39.466Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T05:38:36.305Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/github_repos","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}