{"id":"abc0b769-254e-4ecc-8723-6c0702fd4fed","entityType":"agent","slug":"crewai-axon011-multi-agent-pipeline","name":"multi-agent-pipeline","canonicalUrl":"https://www.xpersona.co/agent/crewai-axon011-multi-agent-pipeline","canonicalPath":"/agent/crewai-axon011-multi-agent-pipeline","generatedAt":"2026-10-09T01:53:46.719Z","source":"GITHUB_OPENCLEW","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-05-18T06:45:02.956Z","emptyReason":null},"description":"Multi-agent research and report generation system using LangGraph state machines and CrewAI, served via FastAPI Multi-Agent Research & Report Pipeline **Stack:** LangGraph · FastAPI · Pydantic · Docker · GitHub Actions **Live demo:** _add your Fly URL here after fly deploy_ 3-agent orchestration pipeline (**Planner → Researcher → Writer**) built on LangGraph state machines with **strict role boundaries enforced via Pydantic structured outputs**. Produces **2,000+ word research reports with verifiable source citations** drawn f","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 5/18/2026.","installCommand":"git clone https://github.com/axon011/multi-agent-pipeline.git","sourceUrl":"https://github.com/axon011/multi-agent-pipeline","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/axon011/multi-agent-pipeline","kind":"source"}],"safetyScore":66,"overallRank":29,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Multi-agent research and report generation system using LangGraph state machines and CrewAI, served via FastAPI Multi-Agent Research & Report Pipeline **Stack:*"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-05-18T06:45:02.956Z","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-05-18T06:45:02.956Z","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-05-18T06:45:02.955Z","emptyReason":null},"lastUpdatedAt":"2026-05-18T06:45:02.956Z","lastCrawledAt":"2026-05-18T06:45:02.955Z","lastIndexedAt":null,"nextCrawlAt":"2026-05-25T06:45:02.955Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"GITHUB OPENCLEW","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"git clone https://github.com/axon011/multi-agent-pipeline.git","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-axon011-multi-agent-pipeline/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"GITHUB_OPENCLEW","generatedAt":"2026-10-09T01:53:46.719Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/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 OPENCLEW","verified":false,"confidence":"high","updatedAt":"2026-05-18T06:45:02.956Z","emptyReason":null},"readme":"# Multi-Agent Research & Report Pipeline\n\n> **Stack:** LangGraph · FastAPI · Pydantic · Docker · GitHub Actions\n> **Live demo:** _add your Fly URL here after `fly deploy`_\n\n3-agent orchestration pipeline (**Planner → Researcher → Writer**) built on\nLangGraph state machines with **strict role boundaries enforced via Pydantic\nstructured outputs**. Produces **2,000+ word research reports with verifiable\nsource citations** drawn from arXiv, Wikipedia, GitHub, Hacker News, and\nDuckDuckGo via a per-question router. Deployed as an async FastAPI service\nwith Docker containerization and GitHub Actions CI/CD — push to production\nwith zero manual intervention.\n\n![demo](docs/demo.gif)\n*(Drop a 30-second screen recording at `docs/demo.gif` after first deploy.)*\n\n---\n\n## Why this is interesting\n\n- **Strict role boundaries.** Each agent's output is parsed into a Pydantic\n  schema (`PipelineState`, `ResearchReport`, `Source`) before the next\n  agent runs. The Researcher cannot fabricate sources because the schema\n  enforces a structured `list[Source]` with `title` / `url` / `snippet`\n  fields; the Writer cannot leak between citations because the report is\n  validated as `ResearchReport` with `key_findings`, `summary`,\n  `full_report`, `word_count`, and a `sources` list.\n- **Per-question source routing.** A rule-based router inspects each\n  planner-generated sub-question (alongside the original topic) and picks\n  2–3 sources from arXiv / Wikipedia / GitHub / HN / DDG. \"Best vector DB\n  libraries\" hits GitHub; \"what is GraphRAG\" hits Wikipedia; \"latest agent\n  frameworks 2026\" hits Hacker News. The routing decision for each\n  sub-question is streamed back to the UI so you can see *why* a source\n  was chosen.\n- **Verifiable citations.** Every claim in the final report carries `[1]\n  [2] [3]` markers that map to the `sources` array — citations are not\n  free-text, they are array indices into a structured-output Pydantic\n  list, which makes them tamper-evident.\n- **Hybrid LLM stack with cost control.** Planner runs on Claude (Sonnet\n  default, togglable to **Opus 4.6** via UI flag); Researcher and Writer\n  run on a cheaper OpenAI-compatible model (GLM-5-turbo by default).\n  `LLM_BACKEND=claude` routes the whole pipeline through the Claude CLI\n  for local testing without API spend.\n- **Async fan-out, throttled by backend.** The Researcher dispatches all\n  N sub-questions in parallel via `asyncio.gather` against rate-friendly\n  HTTP-API LLMs; an `asyncio.Semaphore(1)` serializes calls automatically\n  when the backend is the Claude CLI (which can't be spawned\n  concurrently).\n- **Live SSE pipeline view.** Stage transitions, the per-question routing\n  panel, and previewed source URLs all stream to the browser via\n  Server-Sent Events before the Writer composes the final report.\n- **Langfuse observability.** Every agent and LLM call is wrapped in\n  `@observe` / `trace_llm` spans capturing input, output, model, latency,\n  routing decisions, and source counts. The instrumentation degrades to\n  a no-op when `LANGFUSE_PUBLIC_KEY` / `LANGFUSE_SECRET_KEY` aren't set,\n  so the pipeline runs unchanged without an account.\n\n## Architecture\n\n```\n                 ┌──────────────────┐\n   POST /research│   Planner        │  Claude Sonnet/Opus  (or GLM in cloud mode)\n   /stream  ───▶ │  (3-5 questions) │\n                 └────────┬─────────┘\n                          ▼\n                 ┌──────────────────┐\n                 │   Router         │  rule-based; topic + question\n                 │  per question    │\n                 └────────┬─────────┘\n                          ▼\n        ┌─────────┬─────────┬─────────┬──────────┬─────────┐\n        │  arXiv  │   Wiki  │ GitHub  │   HN     │   DDG   │   parallel,\n        │  (paper)│ (concept)│ (code) │ (trend)  │(fallback)│   per question\n        └────┬────┴────┬────┴────┬────┴────┬─────┴────┬────┘\n             └─────────┴─────────┴─────────┴──────────┘\n                                ▼\n                 ┌──────────────────┐\n                 │   Researcher     │  GLM-5-turbo (or Claude in local mode)\n                 │ cite-and-synthe- │  asyncio.gather across questions\n                 │ size per question│\n                 └────────┬─────────┘\n                          ▼\n                 ┌──────────────────┐\n                 │     Writer       │  GLM-5-turbo (or Claude in local mode)\n                 │ assemble report  │\n                 └────────┬─────────┘\n                          ▼\n                  Markdown + sources\n                  streamed via SSE\n```\n\n## Quickstart (local)\n\n```bash\ngit clone https://github.com/axon011/multi-agent-pipeline\ncd multi-agent-pipeline\npip install -r requirements.txt\n\n# .env — pick ONE of the two configurations below\n\n# (A) GLM-5-turbo via Z.ai — cheapest, requires top-up at z.ai\nLLM_API_KEY=...\nLLM_BASE_URL=https://api.z.ai/api/coding/paas/v4\nLLM_MODEL=glm-5-turbo\n\n# (B) Claude via subscription (local only — needs `claude` CLI logged in)\nLLM_BACKEND=claude\n\n# run\nuvicorn app.main:app --reload --port 8000\n```\n\nOpen `http://localhost:8000/`.\n\nThe OpenAI-compatible variables work for any provider with that API\nshape: GLM, OpenAI, OpenRouter, Together, Groq, etc.\n\n## API\n\n### `POST /research/stream`  (Server-Sent Events)\n\n```bash\ncurl -N -X POST http://localhost:8000/research/stream \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n        \"topic\": \"GraphRAG explained\",\n        \"depth\": \"brief\",\n        \"use_opus_planner\": true\n      }'\n```\n\nStream events: `start`, `stage`, `plan`, `routing`, `sources`,\n`research`, `complete`. Each event's payload is a JSON object — see\n`app/routes/research.py` for the schema.\n\n### `POST /research/`  (synchronous)\n\nReturns the final `ResearchReport` (topic, summary, key_findings,\nfull_report, sources, word_count) once the pipeline completes.\n\n## Deploy (Fly.io)\n\n```bash\n# Windows: iwr https://fly.io/install.ps1 | iex\n# macOS:   brew install flyctl\n\nfly auth login\nfly launch --copy-config --no-deploy           # accepts fly.toml\nfly secrets set LLM_API_KEY=... LLM_BASE_URL=... LLM_MODEL=glm-5-turbo\nfly deploy\n```\n\nThe included `fly.toml` runs on a 1-CPU 512 MB shared VM and auto-stops\nwhen idle, so the free tier covers a portfolio demo. Drop the resulting\nURL into the badge at the top of this README.\n\n> **Note:** `LLM_BACKEND=claude` only works locally — the Claude CLI\n> isn't authenticated on a remote host. Use the OpenAI-compatible\n> backend (GLM, OpenAI, OpenRouter, …) for cloud deploys.\n\n## Tech\n\nPython 3.11 · FastAPI · LangGraph · LangChain · langchain-claude-code ·\nChatOpenAI (any OpenAI-compatible provider) · httpx · ddgs · arXiv API\n· Wikipedia API · GitHub Search API · HN/Algolia API.\n\n## Files worth reading\n\n- `app/graph/pipeline.py` — LangGraph wiring + state-to-report\n- `app/agents/{planner,researcher,writer}.py` — the three nodes\n- `app/tools/router.py` — keyword-based source selection\n- `app/tools/sources.py` — five free-API clients\n- `app/routes/research.py` — sync + SSE endpoints\n- `app/static/index.html` — the live demo UI\n","readmeExcerpt":"Multi-Agent Research & Report Pipeline **Stack:** LangGraph · FastAPI · Pydantic · Docker · GitHub Actions **Live demo:** _add your Fly URL here after fly deploy_ 3-agent orchestration pipeline (**Planner → Researcher → Writer**) built on LangGraph state machines with **strict role boundaries enforced via Pydantic structured outputs**. Produces **2,000+ word research reports with verifiable source citations** drawn f","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"┌──────────────────┐\n   POST /research│   Planner        │  Claude Sonnet/Opus  (or GLM in cloud mode)\n   /stream  ───▶ │  (3-5 questions) │\n                 └────────┬─────────┘\n                          ▼\n                 ┌──────────────────┐\n                 │   Router         │  rule-based; topic + question\n                 │  per question    │\n                 └────────┬─────────┘\n                          ▼\n        ┌─────────┬─────────┬─────────┬──────────┬─────────┐\n        │  arXiv  │   Wiki  │ GitHub  │   HN     │   DDG   │   parallel,\n        │  (paper)│ (concept)│ (code) │ (trend)  │(fallback)│   per question\n        └────┬────┴────┬────┴────┬────┴────┬─────┴────┬────┘\n             └─────────┴─────────┴─────────┴──────────┘\n                                ▼\n                 ┌──────────────────┐\n                 │   Researcher     │  GLM-5-turbo (or Claude in local mode)\n                 │ cite-and-synthe- │  asyncio.gather across questions\n                 │ size per question│\n                 └────────┬─────────┘\n                          ▼\n                 ┌──────────────────┐\n                 │     Writer       │  GLM-5-turbo (or Claude in local mode)\n                 │ assemble report  │\n                 └────────┬─────────┘\n                          ▼\n                  Markdown + sources\n                  streamed via SSE"},{"language":"bash","snippet":"git clone https://github.com/axon011/multi-agent-pipeline\ncd multi-agent-pipeline\npip install -r requirements.txt\n\n# .env — pick ONE of the two configurations below\n\n# (A) GLM-5-turbo via Z.ai — cheapest, requires top-up at z.ai\nLLM_API_KEY=...\nLLM_BASE_URL=https://api.z.ai/api/coding/paas/v4\nLLM_MODEL=glm-5-turbo\n\n# (B) Claude via subscription (local only — needs `claude` CLI logged in)\nLLM_BACKEND=claude\n\n# run\nuvicorn app.main:app --reload --port 8000"},{"language":"bash","snippet":"curl -N -X POST http://localhost:8000/research/stream \\\n  -H 'Content-Type: application/json' \\\n  -d '{"},{"language":"bash","snippet":"curl -N -X POST http://localhost:8000/research/stream \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n        \"topic\": \"GraphRAG explained\",\n        \"depth\": \"brief\",\n        \"use_opus_planner\": true\n      }'"},{"language":"bash","snippet":"# Windows: iwr https://fly.io/install.ps1 | iex\n# macOS:   brew install flyctl\n\nfly auth login\nfly launch --copy-config --no-deploy           # accepts fly.toml\nfly secrets set LLM_API_KEY=... LLM_BASE_URL=... LLM_MODEL=glm-5-turbo\nfly deploy"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["python"],"docsSourceLabel":"GITHUB OPENCLEW","editorialOverview":"Multi-agent research and report generation system using LangGraph state machines and CrewAI, served via FastAPI Multi-Agent Research & Report Pipeline **Stack:** LangGraph · FastAPI · Pydantic · Docker · GitHub Actions **Live demo:** _add your Fly URL here after fly deploy_ 3-agent orchestration pipeline (**Planner → Researcher → Writer**) built on LangGraph state machines with **strict role boundaries enforced via Pydantic structured outputs**. Produces **2,000+ word research reports with verifiable source citations** drawn f","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":382,"uniquenessScore":67,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-05-18T06:45:02.956Z","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-05-18T06:45:02.956Z","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-09T01:53:46.719Z","emptyReason":null},"items":[{"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":"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-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","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_openclew","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}