{"id":"d920218b-c301-4ead-ad3d-eb6aa32fd29c","entityType":"agent","slug":"crewai-c0debyeric-crewai-research-pipeline","name":"crewai-research-pipeline","canonicalUrl":"https://www.xpersona.co/agent/crewai-c0debyeric-crewai-research-pipeline","canonicalPath":"/agent/crewai-c0debyeric-crewai-research-pipeline","generatedAt":"2026-10-10T05:40:34.343Z","source":"GITHUB_REPOS","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T17:02:03.386Z","emptyReason":null},"description":"Hierarchical CrewAI research crew (Researcher/Analyst/Editor + manager) on Amazon Bedrock, scheduled on AWS Lambda, delivering briefs to Discord. 100% Terraform-managed, GitHub OIDC. <div align=\"center\"> 🤖 CrewAI Multi-Agent Research & Delivery Pipeline **A hierarchical AI crew that researches any topic, fact-checks its own sources, and ships a polished brief to Discord — on a schedule, serverless, and 100% Infrastructure-as-Code.** $1 $1 $1 $1 $1 $1 </div> --- ✨ What it does Give it a topic. A **manager agent** breaks the work apart and delegates to three specialists — one gathers real sources,","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/c0debyeric/crewai-research-pipeline","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/c0debyeric/crewai-research-pipeline","kind":"source"}],"safetyScore":66,"overallRank":19.2,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Hierarchical CrewAI research crew (Researcher/Analyst/Editor + manager) on Amazon Bedrock, scheduled on AWS Lambda, delivering briefs to Discord. 100% Terraform"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T17:02:03.386Z","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-09T17:02:03.386Z","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-09T17:02:03.381Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T17:02:03.386Z","lastCrawledAt":"2026-10-09T17:02:03.381Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-16T17:02:03.381Z","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-c0debyeric-crewai-research-pipeline/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-c0debyeric-crewai-research-pipeline/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-c0debyeric-crewai-research-pipeline/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/crewai-c0debyeric-crewai-research-pipeline/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-c0debyeric-crewai-research-pipeline/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-c0debyeric-crewai-research-pipeline/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:40:34.343Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/crewai-c0debyeric-crewai-research-pipeline/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-c0debyeric-crewai-research-pipeline/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-c0debyeric-crewai-research-pipeline/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-c0debyeric-crewai-research-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 REPOS","verified":false,"confidence":"high","updatedAt":"2026-10-09T17:02:03.386Z","emptyReason":null},"readme":"<div align=\"center\">\n\n# 🤖 CrewAI Multi-Agent Research & Delivery Pipeline\n\n**A hierarchical AI crew that researches any topic, fact-checks its own sources, and ships a polished brief to Discord — on a schedule, serverless, and 100% Infrastructure-as-Code.**\n\n[![CrewAI](https://img.shields.io/badge/CrewAI-hierarchical-FF5A50?style=flat-square)](https://docs.crewai.com/)\n[![AWS Lambda](https://img.shields.io/badge/AWS-Lambda-FF9900?style=flat-square&logo=awslambda&logoColor=white)](https://aws.amazon.com/lambda/)\n[![Amazon Bedrock](https://img.shields.io/badge/Amazon-Bedrock-232F3E?style=flat-square&logo=amazon&logoColor=white)](https://aws.amazon.com/bedrock/)\n[![Terraform](https://img.shields.io/badge/Terraform-managed-7B42BC?style=flat-square&logo=terraform&logoColor=white)](https://www.terraform.io/)\n[![GitHub OIDC](https://img.shields.io/badge/CI-GitHub%20OIDC-2088FF?style=flat-square&logo=githubactions&logoColor=white)](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)\n[![Python](https://img.shields.io/badge/Python-3.11-3776AB?style=flat-square&logo=python&logoColor=white)](https://www.python.org/)\n\n</div>\n\n---\n\n## ✨ What it does\n\nGive it a topic. A **manager agent** breaks the work apart and delegates to three specialists — one gathers real sources, one cross-checks them for contradictions and weak evidence, and one writes the final brief. The result lands in your Discord. When it's not running, **nothing is running** — zero idle cost.\n\n```\n        ⏰ EventBridge (cron)\n                │  invokes\n                ▼\n        🪣 AWS Lambda (container image)\n                │  runs\n                ▼\n        🧠 CrewAI Crew  ── Process.hierarchical ──►  👔 Manager (Sonnet 4)\n                                                          │ plans · delegates · validates\n        ┌──────────────────────┬──────────────────────────┴────────────────────┐\n        ▼                      ▼                                                 ▼\n   🔎 Researcher          🔬 Analyst                                        ✍️ Editor\n   (Haiku · tools)        (Sonnet)                                          (Sonnet)\n   web_search +           cross-checks &                                    writes final\n   fetch_page            ranks by evidence                                  markdown brief\n        │\n        └──►  🟧 Bedrock Claude (via litellm)     ──►  📬 Discord webhook\n```\n\n## 🌟 Features\n\n- **🏛️ True hierarchical orchestration** — uses CrewAI's `Process.hierarchical`, where an auto-spawned manager agent delegates tasks and validates output. Not a hardcoded A→B→C pipeline.\n- **🎚️ Model-tier routing** — agents request a *tier* (`smart`/`fast`), not a model. Route reasoning work to Sonnet and high-volume tool calls to Haiku; swap the whole fleet's cost/quality profile from one file.\n- **🛠️ Custom tools** — keyless `web_search` + `fetch_page` built on CrewAI's `BaseTool`, with Pydantic-validated inputs and graceful degradation (a failed call returns data, never crashes the crew).\n- **☁️ Serverless & scheduled** — runs on a container-image Lambda triggered by EventBridge cron. Scales to zero between runs.\n- **🔐 Zero stored secrets** — CI deploys via GitHub OIDC, assuming a short-lived role scoped to this repo. No long-lived AWS keys anywhere.\n- **📦 100% Terraform-managed** — Lambda, least-privilege IAM, ECR, EventBridge, and the OIDC trust are all codified.\n- **📨 Discord delivery** — auto-chunks briefs to Discord's 2,000-char limit on clean boundaries.\n\n## 🧰 Tech Stack\n\n| Layer | Technology |\n|-------|-----------|\n| **Agent framework** | [CrewAI](https://docs.crewai.com/) 1.15 (`Process.hierarchical`, `BaseTool`) |\n| **LLM inference** | Amazon Bedrock — Claude Sonnet 4 (reasoning) + Claude Haiku 4.5 (bulk), via litellm |\n| **Compute** | AWS Lambda (container image, Python 3.11 base) |\n| **Scheduling** | Amazon EventBridge (cron) |\n| **IaC** | Terraform (`>= 1.9`, AWS provider `>= 5.60`) |\n| **CI/CD** | GitHub Actions + OIDC (build → push ECR → update Lambda) |\n| **Packaging** | `uv` (lockfile-pinned, reproducible builds) |\n| **Delivery** | Discord webhook |\n\n## 🚀 Quickstart (local)\n\n```bash\nuv sync\nexport AWS_REGION=us-east-1          # Bedrock creds via the standard AWS chain\nPYTHONPATH=src uv run python -m research_pipeline.handler \"how do vector databases work\"\n```\n\nWatch the terminal: the manager reasons, delegates, and the agents call tools live. Set `DISCORD_WEBHOOK_URL` to also post the brief to Discord.\n\n## ☁️ Deploy\n\nInfra is Terraform; code ships via GitHub Actions + OIDC.\n\n```bash\ncd terraform\nterraform init\nterraform apply \\\n  -var=\"ecr_image_uri=<account>.dkr.ecr.us-east-1.amazonaws.com/crewai-research-pipeline:latest\" \\\n  -var=\"discord_webhook_url=$DISCORD_WEBHOOK_URL\"\n```\n\nThen set the repo variable `AWS_DEPLOY_ROLE_ARN` (from the `github_deploy_role_arn` output) and push to `main` — CI builds the container, pushes to ECR, and updates the Lambda.\n\n> [!NOTE]\n> **Model choice:** Opus 4.7/4.8 currently reject litellm tool calls on Bedrock Converse ([litellm#31582](https://github.com/BerriAI/litellm/issues/31582)). Hierarchical mode leans hard on tool/delegation calls, so this project uses Sonnet 4 / Haiku 4.5, which round-trip tools cleanly.\n\n> [!NOTE]\n> If the GitHub OIDC provider already exists in your AWS account, swap the `aws_iam_openid_connect_provider.github` resource for a `data` source (or `terraform import` it) to avoid an `EntityAlreadyExists` error on first apply.\n\n## 🗂️ Project layout\n\n```\nsrc/research_pipeline/\n  llm_config.py      # Bedrock model-tier routing (smart / fast)\n  crew.py            # hierarchical crew: Researcher / Analyst / Editor + manager\n  handler.py         # Lambda entry point + Discord delivery\n  tools/web_tools.py # custom CrewAI tools: web_search, fetch_page\nterraform/           # container Lambda, least-priv IAM, EventBridge, GitHub OIDC\n.github/workflows/   # OIDC build-push-deploy\nDockerfile           # AWS Lambda Python 3.11 base + uv deps\n```\n\n## 🧭 Design decisions worth knowing\n\n1. **Hierarchical over sequential** — a manager that *delegates and validates* beats a fixed order for open-ended research.\n2. **Tiered models over one model** — cost discipline: cheap tier for volume, smart tier for judgment.\n3. **Container over zip** — CrewAI + litellm + boto3 exceed Lambda's 250 MB layer limit; container images allow up to 10 GB.\n4. **OIDC over access keys** — CI holds no long-lived AWS credentials; it assumes a repo-scoped role via a short-lived token.\n\n## 📈 Roadmap\n\n- [ ] Swap DuckDuckGo for a higher-quality search backend (Tavily / Serper)\n- [ ] Add an eval harness to score brief quality against a golden set\n- [ ] Optional [MCP](https://modelcontextprotocol.io/) tool access via CrewAI's `MCPServerAdapter` / AgentCore Gateway\n- [ ] Persist briefs to S3 with a searchable index\n\n---\n\n<div align=\"center\">\n<sub>Built with CrewAI · Amazon Bedrock · Terraform — orchestration you can read in five files.</sub>\n</div>\n","readmeExcerpt":"<div align=\"center\"> 🤖 CrewAI Multi-Agent Research & Delivery Pipeline **A hierarchical AI crew that researches any topic, fact-checks its own sources, and ships a polished brief to Discord — on a schedule, serverless, and 100% Infrastructure-as-Code.** $1 $1 $1 $1 $1 $1 </div> --- ✨ What it does Give it a topic. A **manager agent** breaks the work apart and delegates to three specialists — one gathers real sources,","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"⏰ EventBridge (cron)\n                │  invokes\n                ▼\n        🪣 AWS Lambda (container image)\n                │  runs\n                ▼\n        🧠 CrewAI Crew  ── Process.hierarchical ──►  👔 Manager (Sonnet 4)\n                                                          │ plans · delegates · validates\n        ┌──────────────────────┬──────────────────────────┴────────────────────┐\n        ▼                      ▼                                                 ▼\n   🔎 Researcher          🔬 Analyst                                        ✍️ Editor\n   (Haiku · tools)        (Sonnet)                                          (Sonnet)\n   web_search +           cross-checks &                                    writes final\n   fetch_page            ranks by evidence                                  markdown brief\n        │\n        └──►  🟧 Bedrock Claude (via litellm)     ──►  📬 Discord webhook"},{"language":"bash","snippet":"uv sync\nexport AWS_REGION=us-east-1          # Bedrock creds via the standard AWS chain\nPYTHONPATH=src uv run python -m research_pipeline.handler \"how do vector databases work\""},{"language":"bash","snippet":"cd terraform\nterraform init\nterraform apply \\\n  -var=\"ecr_image_uri=<account>.dkr.ecr.us-east-1.amazonaws.com/crewai-research-pipeline:latest\" \\\n  -var=\"discord_webhook_url=$DISCORD_WEBHOOK_URL\""},{"language":"text","snippet":"src/research_pipeline/\n  llm_config.py      # Bedrock model-tier routing (smart / fast)\n  crew.py            # hierarchical crew: Researcher / Analyst / Editor + manager\n  handler.py         # Lambda entry point + Discord delivery\n  tools/web_tools.py # custom CrewAI tools: web_search, fetch_page\nterraform/           # container Lambda, least-priv IAM, EventBridge, GitHub OIDC\n.github/workflows/   # OIDC build-push-deploy\nDockerfile           # AWS Lambda Python 3.11 base + uv deps"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["python"],"docsSourceLabel":"GITHUB REPOS","editorialOverview":"Hierarchical CrewAI research crew (Researcher/Analyst/Editor + manager) on Amazon Bedrock, scheduled on AWS Lambda, delivering briefs to Discord. 100% Terraform-managed, GitHub OIDC. <div align=\"center\"> 🤖 CrewAI Multi-Agent Research & Delivery Pipeline **A hierarchical AI crew that researches any topic, fact-checks its own sources, and ships a polished brief to Discord — on a schedule, serverless, and 100% Infrastructure-as-Code.** $1 $1 $1 $1 $1 $1 </div> --- ✨ What it does Give it a topic. A **manager agent** breaks the work apart and delegates to three specialists — one gathers real sources,","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":395,"uniquenessScore":67,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T17:02:03.386Z","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-09T17:02:03.386Z","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:40:34.343Z","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"}]}}}