{"id":"766af7ca-fd06-47fb-b978-2f64dd14759e","entityType":"agent","slug":"crewai-bhanusehgal-multi-agent-research-crew","name":"multi-agent-research-crew","canonicalUrl":"https://www.xpersona.co/agent/crewai-bhanusehgal-multi-agent-research-crew","canonicalPath":"/agent/crewai-bhanusehgal-multi-agent-research-crew","generatedAt":"2026-10-09T20:52:38.103Z","source":"GITHUB_REPOS","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T14:52:36.982Z","emptyReason":null},"description":"A multi-agent research automation pipeline (CrewAI + Gemini LLM) with 3 specialized agents: Researcher, Analyst, Writer, orchestrated in a sequential workflow with live web search (Tavily API), cutting end-to-end research-to-report turnaround from 3–4 hours to under 15 minutes while producing fully-sourced citations Multi-Agent Research Crew A 3-agent research pipeline (Researcher → Analyst → Writer, built on $1) that turns a topic into a sourced, structured report — hardened against the failure modes that actually show up when you try to use an LLM pipeline for real work: hallucinated citations, runaway agent loops, and reports going out the door with no one checking them. Runs from a local web UI or the CLI. No paid infrastruc","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/bhanusehgal/multi-agent-research-crew","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/bhanusehgal/multi-agent-research-crew","kind":"source"}],"safetyScore":66,"overallRank":22.2,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"A multi-agent research automation pipeline (CrewAI + Gemini LLM) with 3 specialized agents: Researcher, Analyst, Writer, orchestrated in a sequential workflow w"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T14:52:36.982Z","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-09T14:52:36.982Z","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-09T14:52:36.978Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T14:52:36.982Z","lastCrawledAt":"2026-10-09T14:52:36.978Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-16T14:52:36.978Z","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-bhanusehgal-multi-agent-research-crew/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-bhanusehgal-multi-agent-research-crew/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-bhanusehgal-multi-agent-research-crew/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/crewai-bhanusehgal-multi-agent-research-crew/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-bhanusehgal-multi-agent-research-crew/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-bhanusehgal-multi-agent-research-crew/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-09T20:52:38.102Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/crewai-bhanusehgal-multi-agent-research-crew/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-bhanusehgal-multi-agent-research-crew/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-bhanusehgal-multi-agent-research-crew/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-bhanusehgal-multi-agent-research-crew/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-09T14:52:36.982Z","emptyReason":null},"readme":"# Multi-Agent Research Crew\n\nA 3-agent research pipeline (Researcher → Analyst → Writer, built on\n[CrewAI](https://github.com/crewAIInc/crewAI)) that turns a topic into a\nsourced, structured report — hardened against the failure modes that\nactually show up when you try to use an LLM pipeline for real work:\nhallucinated citations, runaway agent loops, and reports going out the door\nwith no one checking them.\n\nRuns from a local web UI or the CLI. No paid infrastructure required.\n\n## Why this exists\n\nMost \"AI agent\" demos stop at \"it produces an answer.\" This one asks the\nnext question: what does it take before you'd trust this in front of a\nreal audience? The answer turned into a deliberate hardening pass —\ndocumented in [`ARCHITECTURE.md`](ARCHITECTURE.md) and\n[`SECURITY.md`](SECURITY.md) — built around one rule: **verify, don't\ntrust the model's self-report.**\n\nThe clearest example: instead of asking the model to double-check its own\ncitations, the pipeline actually fetches every URL it cites over HTTP\nbefore the report is allowed to proceed. During testing, this caught a real\nbug — the agent formatted citations as `` `https://...` `` (Markdown code\nspans), the URL parser wasn't stripping the backtick, and every otherwise-\nvalid source was flagged broken. Fixed and regression-noted in\n`ARCHITECTURE.md`. That's the kind of failure a live pipeline actually\nproduces, not a hypothetical one.\n\n## What it does\n\n```mermaid\nflowchart TD\n    A[Topic] --> B[Intake & sanitization]\n    B --> C[Researcher agent]\n    C --> D{Citation guardrail\\nfetches every URL live}\n    D -- \"usable sources < 5\" --> C\n    D -- \"verified\" --> E[Analyst agent]\n    E --> F[Writer agent]\n    F --> G[Draft + verification appendix]\n    G --> H{Human approval}\n    H -- approve --> I[Published report]\n    H -- reject --> J[Draft retained, not published]\n\n    C -. search query .-> T[(Tavily API)]\n    C -. LLM call .-> M[(Gemini API)]\n    E -. LLM call .-> M\n    F -. LLM call .-> M\n```\n\nEvery stage also writes to a structured, per-run JSONL audit log — topic,\nsanitizer warnings, every citation check, guardrail retries, token usage,\nand the final approval decision.\n\n## Highlights (the interesting engineering, not the boilerplate)\n\n- **Citation guardrail, not a trust exercise.** A CrewAI `Task.guardrail`\n  fetches every cited URL and classifies it (verified / bot-blocked /\n  broken / unreachable). Fewer than 5 usable sources → the research task\n  automatically retries with the failure reason fed back to the agent, up\n  to a bounded retry count — before an Analyst or Writer ever sees weak\n  research.\n- **Bounded everything.** Every agent has `max_iter`, `max_execution_time`,\n  `max_rpm`, and `max_retry_limit` set explicitly — the framework default\n  is 25 iterations and no time limit, which is how a stuck agent quietly\n  becomes a cost incident.\n- **A real approval gate, not a formality.** Nothing is written to\n  `output/*_final.md` without an explicit, audit-logged approve/reject\n  decision. A non-interactive run (no terminal attached, no explicit\n  `--auto-approve`) never silently auto-publishes — it stops at the draft.\n- **Prompt-injection-aware by design.** The topic and all fetched web\n  content are treated as untrusted data in every agent's instructions —\n  never as commands — with the raw topic also scanned for known injection\n  phrasing and logged if flagged.\n- **A findable bind-address bug, fixed before it mattered.** Running the\n  local web UI in headless mode bound the server to `0.0.0.0` — reachable\n  by anyone on the same network, not just this machine — caught live with\n  `netstat` during setup and locked to `127.0.0.1` via `.streamlit/config.toml`.\n  Full writeup in `SECURITY.md`.\n\n## Quick start\n\n```bash\ngit clone <this-repo-url>\ncd Multi-agent-research-crew\npython -m venv venv\nvenv\\Scripts\\activate            # Windows\npip install -r requirements.txt -r requirements-ui.txt\ncp .env.example .env             # then fill in GEMINI_API_KEY and TAVILY_API_KEY\n```\n\n**Web UI** (recommended): double-click `Start Research Crew.bat`, or run\n`streamlit run app.py` — opens `http://localhost:8501` in your browser.\n\n**CLI**:\n```bash\npython crew.py \"your research topic\"\n```\n\n## Project layout\n\n| File | What it is |\n|---|---|\n| `crew.py` | The pipeline: agents, tasks, citation guardrail, retry/logging, approval gate |\n| `app.py` | Streamlit web UI over the same pipeline functions |\n| `PRD.md` | What to build, target users, feature scope |\n| `ARCHITECTURE.md` | App flow, layers, folder structure, tech stack, agent bounds |\n| `RULES.md` | What to use/avoid, error-handling conventions, boundaries for the AI agents and for AI-assisted edits to this repo |\n| `PHASES.md` | P0 (done) / P1 / P2 roadmap with entry/exit criteria |\n| `DESIGN.md` | Current (default, unthemed) and proposed visual design |\n| `SECURITY.md` | No-budget hardening checklist — secrets, repo access, the running webpage |\n| `DATA_HANDLING.md` | What data reaches Gemini/Tavily and what topics are off-limits |\n| `HANDOFF.md` | Narrative snapshot of project status, for picking the work back up |\n| `MEMORY.md` | Auto-updated log of what's done and what was touched most recently |\n| `scripts/update_memory.py` + `.githooks/post-commit` | Keeps `MEMORY.md` current after every commit — see `MEMORY.md` for one-time setup |\n| `.env.example` | Required/optional environment variables (no real values) |\n\n## Status & what's next\n\nThis is deliberately staged. **Done:** the hardening pass above (see\n`ARCHITECTURE.md` for the full list). **Intentionally not done yet:** a\ncallable API/service (currently CLI or local web UI only), centralized log\nshipping, a real secrets manager, per-run cost budgets, and claim-level\nfact-checking beyond URL-liveness verification. Each is written up with\nwhat it would take and who'd need to sign off — see the \"Design areas\nneeding sign-off\" section of `ARCHITECTURE.md`.\n\n## Stack\n\nPython · [CrewAI](https://github.com/crewAIInc/crewAI) · Google Gemini ·\n[Tavily](https://tavily.com) search · Streamlit\n\n## License\n\nMIT — see [`LICENSE`](LICENSE).\n","readmeExcerpt":"Multi-Agent Research Crew A 3-agent research pipeline (Researcher → Analyst → Writer, built on $1) that turns a topic into a sourced, structured report — hardened against the failure modes that actually show up when you try to use an LLM pipeline for real work: hallucinated citations, runaway agent loops, and reports going out the door with no one checking them. Runs from a local web UI or the CLI. No paid infrastruc","codeSnippets":[],"executableExamples":[{"language":"mermaid","snippet":"flowchart TD\n    A[Topic] --> B[Intake & sanitization]\n    B --> C[Researcher agent]\n    C --> D{Citation guardrail\\nfetches every URL live}\n    D -- \"usable sources < 5\" --> C\n    D -- \"verified\" --> E[Analyst agent]\n    E --> F[Writer agent]\n    F --> G[Draft + verification appendix]\n    G --> H{Human approval}\n    H -- approve --> I[Published report]\n    H -- reject --> J[Draft retained, not published]\n\n    C -. search query .-> T[(Tavily API)]\n    C -. LLM call .-> M[(Gemini API)]\n    E -. LLM call .-> M\n    F -. LLM call .-> M"},{"language":"bash","snippet":"git clone <this-repo-url>\ncd Multi-agent-research-crew\npython -m venv venv\nvenv\\Scripts\\activate            # Windows\npip install -r requirements.txt -r requirements-ui.txt\ncp .env.example .env             # then fill in GEMINI_API_KEY and TAVILY_API_KEY"},{"language":"bash","snippet":"python crew.py \"your research topic\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["python"],"docsSourceLabel":"GITHUB REPOS","editorialOverview":"A multi-agent research automation pipeline (CrewAI + Gemini LLM) with 3 specialized agents: Researcher, Analyst, Writer, orchestrated in a sequential workflow with live web search (Tavily API), cutting end-to-end research-to-report turnaround from 3–4 hours to under 15 minutes while producing fully-sourced citations Multi-Agent Research Crew A 3-agent research pipeline (Researcher → Analyst → Writer, built on $1) that turns a topic into a sourced, structured report — hardened against the failure modes that actually show up when you try to use an LLM pipeline for real work: hallucinated citations, runaway agent loops, and reports going out the door with no one checking them. Runs from a local web UI or the CLI. No paid infrastruc","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":434,"uniquenessScore":64,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T14:52:36.982Z","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-09T14:52:36.982Z","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-09T20:52:38.103Z","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"}]}}}