{"id":"fca7fe4d-2467-424f-83b1-2cb9cc33e961","entityType":"agent","slug":"crewai-dhwani294-multi-agent-research-system","name":"multi-agent-research-system","canonicalUrl":"https://www.xpersona.co/agent/crewai-dhwani294-multi-agent-research-system","canonicalPath":"/agent/crewai-dhwani294-multi-agent-research-system","generatedAt":"2026-10-10T05:39:35.834Z","source":"GITHUB_REPOS","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T21:09:32.843Z","emptyReason":null},"description":"Built a production-grade multi-agent AI research system where specialized agents collaborate to research, critique, and summarize complex topics into polished reports with citations. The project combines CrewAI, LangGraph, LangChain, vector memory, and FastAPI to simulate an enterprise-level autonomous research workflow. 🤖 Multi-Agent Research & Summarization System **Drop a topic. A team of AI agents researches it, fights over the quality, and hands you a polished report.** Built with CrewAI + LangGraph · OpenAI GPT-4o + Anthropic Claude 3.5 Sonnet · FAISS + Chroma · FastAPI --- Why I built this Most AI demos throw everything at a single prompt and hope for the best. Real research doesn't work that way, you need someone to dig, som","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/Dhwani294/multi-agent-research-system","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/Dhwani294/multi-agent-research-system","kind":"source"}],"safetyScore":66,"overallRank":18.2,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Built a production-grade multi-agent AI research system where specialized agents collaborate to research, critique, and summarize complex topics into polished r"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T21:09:32.843Z","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-09T21:09:32.843Z","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-09T21:09:32.832Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T21:09:32.843Z","lastCrawledAt":"2026-10-09T21:09:32.832Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-16T21:09:32.832Z","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-dhwani294-multi-agent-research-system/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-dhwani294-multi-agent-research-system/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-dhwani294-multi-agent-research-system/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/crewai-dhwani294-multi-agent-research-system/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-dhwani294-multi-agent-research-system/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-dhwani294-multi-agent-research-system/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:39:35.834Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/crewai-dhwani294-multi-agent-research-system/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-dhwani294-multi-agent-research-system/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-dhwani294-multi-agent-research-system/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-dhwani294-multi-agent-research-system/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-09T21:09:32.843Z","emptyReason":null},"readme":"# 🤖 Multi-Agent Research & Summarization System\n\n**Drop a topic. A team of AI agents researches it, fights over the quality, and hands you a polished report.**\n\nBuilt with CrewAI + LangGraph · OpenAI GPT-4o + Anthropic Claude 3.5 Sonnet · FAISS + Chroma · FastAPI\n\n---\n\n## Why I built this\n\nMost AI demos throw everything at a single prompt and hope for the best. Real research doesn't work that way, you need someone to dig, someone to challenge the findings, and someone to write it all up cleanly.\n\nThis system does exactly that. Three specialized agents with distinct roles, a LangGraph state machine that routes between them, and a built-in evaluator that measures whether the output is actually trustworthy, not just fluent.\n\n---\n\n## What happens when you run it\n\n```text\nYou provide a topic\n        │\n        ▼\n┌───────────────────────────────────────────┐\n│           LangGraph Orchestrator          │\n│                                           │\n│  ┌─────────────┐      ┌─────────────┐     │\n│  │  Researcher │─────▶│   Critic    │     │\n│  │    Agent    │      │   Agent     │     │\n│  └─────────────┘      └──────┬──────┘     │\n│         ▲                    │            │\n│         │    score < 0.7     │            │\n│         └────────────────────┘            │\n│                       │ score ≥ 0.7       │\n│                       ▼                   │\n│              ┌──────────────────┐         │\n│              │   Summarizer     │         │\n│              │     Agent        │         │\n│              └──────────────────┘         │\n└───────────────────────────────────────────┘\n        │\n        ▼\n📄 Structured Report  +  📊 Eval Metrics JSON\n```\n\n**🔍 Researcher** searches the web and queries a FAISS + Chroma vector store using ReAct-style reasoning. It keeps going until it decides it has enough, not just until the context window fills up.\n\n**🧠 Critic** scores the research on hallucination risk, source coverage, and logical gaps. Score below 0.7? The Researcher gets sent back for another pass. This loop is what makes the output actually reliable.\n\n**✍️ Summarizer** takes the critic-approved research and writes a clean, cited markdown report - structured, readable, ready to share.\n\n**📊 Evaluator** logs `task_completion_rate`, `hallucination_rate`, and `reasoning_accuracy` to a JSON file on every single run. Because vibes aren't metrics.\n\n---\n\n## Tech stack\n\n| Layer | What's used |\n|---|---|\n| Agent framework | CrewAI + LangChain |\n| Orchestration | LangGraph (typed state machine, ReAct loop) |\n| LLMs | OpenAI GPT-4o (primary) · Anthropic Claude 3.5 Sonnet (fallback) |\n| Retrieval | FAISS (fast in-memory) · Chroma (persistent vector store) |\n| Memory | Short-term conversation buffer + long-term Chroma memory |\n| Tool use | Function calling via OpenAI tool_choice + Tavily web search |\n| API | FastAPI |\n| Validation | Pydantic v2 |\n| Logging | Loguru |\n\n---\n\n## Get it running\n\n```bash\ngit clone https://github.com/Dhwani294/multi-agent-research-system\ncd multi-agent-research-system\n\npython -m venv venv\nsource venv/bin/activate       # Windows: venv\\Scripts\\activate\n\npip install -r requirements.txt\ncp .env.example .env           # Fill in your API keys\n```\n\n**You'll need these in your `.env`:**\n\n| Variable | What it's for |\n|---|---|\n| `OPENAI_API_KEY` | Primary LLM - GPT-4o |\n| `ANTHROPIC_API_KEY` | Fallback LLM - Claude 3.5 Sonnet |\n| `TAVILY_API_KEY` | Web search for the Researcher agent |\n| `CHROMA_PERSIST_DIR` | Where long-term memory gets stored |\n\n---\n\n## Usage\n\n**From the terminal:**\n```bash\npython main.py --topic \"How retrieval-augmented generation is changing enterprise AI\"\n```\n\n**As an API:**\n```bash\nuvicorn main:app --reload\n```\n```bash\ncurl -X POST http://localhost:8000/research \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"topic\": \"How retrieval-augmented generation is changing enterprise AI\"}'\n```\n\n**What you'll see:**\n```\n🔍 Researcher starting pass 1...\n🧠 Critic scoring... 0.61 - below threshold, sending back\n🔍 Researcher starting pass 2...\n🧠 Critic scoring... 0.84 - approved\n✍️  Summarizer writing final report...\n\n✅ Done in 2 passes\n📊 Hallucination rate: 0.04  |  Task completion: 1.0  |  Reasoning accuracy: 0.91\n📄 Report saved → outputs/report_20250520_143201.md\n```\n\n---\n\n## Evaluation output\n\nEvery run appends a record to `outputs/eval_results.json`:\n\n```json\n{\n  \"topic\": \"How retrieval-augmented generation is changing enterprise AI\",\n  \"passes\": 2,\n  \"task_completion_rate\": 1.0,\n  \"hallucination_rate\": 0.04,\n  \"reasoning_accuracy\": 0.91,\n  \"critic_scores\": [0.61, 0.84],\n  \"timestamp\": \"2025-05-20T14:32:01\"\n}\n```\n\n---\n\n## Run the tests\n\n```bash\npytest tests/ -v\n```\n\n---\n\n## Project layout\n\n```\nmulti-agent-research-system/\n├── main.py              # CLI + FastAPI entry point\n├── agents/\n│   ├── researcher.py    # Web search + vector retrieval + ReAct reasoning\n│   ├── critic.py        # Hallucination scoring + gap detection\n│   └── summarizer.py    # Final report generation\n├── graph/\n│   └── orchestrator.py  # LangGraph state machine + conditional retry edges\n├── tools/\n│   ├── search_tool.py   # Tavily web search\n│   └── retrieval_tool.py# FAISS + Chroma retrieval\n├── memory/\n│   └── memory_manager.py# Short-term buffer + long-term Chroma memory\n├── evaluation/\n│   └── evaluator.py     # Metrics: completion, hallucination, accuracy\n├── config/\n│   └── settings.py      # Model names, thresholds, paths\n├── tests/               # Unit tests for agents, graph, evaluator\n├── outputs/             # Auto-created — reports + eval logs land here\n├── .env.example\n├── requirements.txt\n└── README.md\n```\n\n---\n\n","readmeExcerpt":"🤖 Multi-Agent Research & Summarization System **Drop a topic. A team of AI agents researches it, fights over the quality, and hands you a polished report.** Built with CrewAI + LangGraph · OpenAI GPT-4o + Anthropic Claude 3.5 Sonnet · FAISS + Chroma · FastAPI --- Why I built this Most AI demos throw everything at a single prompt and hope for the best. Real research doesn't work that way, you need someone to dig, som","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"You provide a topic\n        │\n        ▼\n┌───────────────────────────────────────────┐\n│           LangGraph Orchestrator          │\n│                                           │\n│  ┌─────────────┐      ┌─────────────┐     │\n│  │  Researcher │─────▶│   Critic    │     │\n│  │    Agent    │      │   Agent     │     │\n│  └─────────────┘      └──────┬──────┘     │\n│         ▲                    │            │\n│         │    score < 0.7     │            │\n│         └────────────────────┘            │\n│                       │ score ≥ 0.7       │\n│                       ▼                   │\n│              ┌──────────────────┐         │\n│              │   Summarizer     │         │\n│              │     Agent        │         │\n│              └──────────────────┘         │\n└───────────────────────────────────────────┘\n        │\n        ▼\n📄 Structured Report  +  📊 Eval Metrics JSON"},{"language":"bash","snippet":"git clone https://github.com/Dhwani294/multi-agent-research-system\ncd multi-agent-research-system\n\npython -m venv venv\nsource venv/bin/activate       # Windows: venv\\Scripts\\activate\n\npip install -r requirements.txt\ncp .env.example .env           # Fill in your API keys"},{"language":"bash","snippet":"python main.py --topic \"How retrieval-augmented generation is changing enterprise AI\""},{"language":"bash","snippet":"uvicorn main:app --reload"},{"language":"bash","snippet":"curl -X POST http://localhost:8000/research \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"topic\": \"How retrieval-augmented generation is changing enterprise AI\"}'"},{"language":"bash","snippet":"curl -X POST http://localhost:8000/research \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"topic\": \"How retrieval-augmented generation is changing enterprise AI\"}'"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["python"],"docsSourceLabel":"GITHUB REPOS","editorialOverview":"Built a production-grade multi-agent AI research system where specialized agents collaborate to research, critique, and summarize complex topics into polished reports with citations. The project combines CrewAI, LangGraph, LangChain, vector memory, and FastAPI to simulate an enterprise-level autonomous research workflow. 🤖 Multi-Agent Research & Summarization System **Drop a topic. A team of AI agents researches it, fights over the quality, and hands you a polished report.** Built with CrewAI + LangGraph · OpenAI GPT-4o + Anthropic Claude 3.5 Sonnet · FAISS + Chroma · FastAPI --- Why I built this Most AI demos throw everything at a single prompt and hope for the best. Real research doesn't work that way, you need someone to dig, som","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":430,"uniquenessScore":65,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T21:09:32.843Z","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-09T21:09:32.843Z","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:39:35.834Z","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"}]}}}