{"id":"3c0b45e6-ba02-4a4c-9205-e751d3c641a7","entityType":"agent","slug":"crewai-anurag1210-crew-stock","name":"crew_stock","canonicalUrl":"https://www.xpersona.co/agent/crewai-anurag1210-crew-stock","canonicalPath":"/agent/crewai-anurag1210-crew-stock","generatedAt":"2026-10-10T03:18:57.269Z","source":"GITHUB_REPOS","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T19:19:40.920Z","emptyReason":null},"description":"Multi-agent stock analysis system — CrewAI, live market data, Yahoo Finance, SerpAPI FinStock Agent 📈 A multi-agent AI system that researches, analyses, and writes institutional-grade stock reports in seconds — powered by CrewAI, live market data, and real-time news. Ask it about any publicly traded stock and two specialised AI agents collaborate: a **Senior Market Analyst** that gathers live financial data and news, and a **Financial Content Writer** that synthesises everything into a publication-r","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/anurag1210/crew_stock","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/anurag1210/crew_stock","kind":"source"}],"safetyScore":66,"overallRank":18.4,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Multi-agent stock analysis system — CrewAI, live market data, Yahoo Finance, SerpAPI FinStock Agent 📈 A multi-agent AI system that researches, analyses, and wr"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T19:19:40.920Z","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-09T19:19:40.920Z","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-09T19:19:40.914Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T19:19:40.920Z","lastCrawledAt":"2026-10-09T19:19:40.914Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-16T19:19:40.914Z","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-anurag1210-crew-stock/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-anurag1210-crew-stock/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-anurag1210-crew-stock/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/crewai-anurag1210-crew-stock/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-anurag1210-crew-stock/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-anurag1210-crew-stock/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-10T03:18:57.268Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/crewai-anurag1210-crew-stock/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-anurag1210-crew-stock/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-anurag1210-crew-stock/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-anurag1210-crew-stock/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-09T19:19:40.920Z","emptyReason":null},"readme":"# FinStock Agent 📈\n\n> A multi-agent AI system that researches, analyses, and writes institutional-grade stock reports in seconds — powered by CrewAI, live market data, and real-time news.\n\nAsk it about any publicly traded stock and two specialised AI agents collaborate: a **Senior Market Analyst** that gathers live financial data and news, and a **Financial Content Writer** that synthesises everything into a publication-ready report.\n\n---\n\n## What It Does\n\nEnter a stock ticker — **AAPL**, **TCS**, **NVDA**, **TSLA** — and FinStock Agent:\n\n1. **Searches live news** via SerpAPI — latest headlines, sentiment, corporate developments\n2. **Fetches real market data** via Yahoo Finance — current price, 1-month trajectory, daily highs/lows\n3. **Synthesises a report** — the writer agent combines both into a clean, coherent analyst-style narrative\n4. **Delivers a downloadable report** — save as `.txt` for sharing or record-keeping\n\n---\n\n## Sample Output\n\n> *\"TCS is currently navigating a complex landscape of partnerships and challenges with significant implications for its financial performance. The company's partnership with Anthropic to bring Claude to regulated industries is expected to drive growth and innovation, with the stock reflecting a 5% increase over the past quarter...\"*\n\nClean, objective, institutional tone — not a chatbot summary.\n\n---\n\n## Architecture\n\n```\nUser Input (Ticker Symbol)\n          │\n          ▼\n┌─────────────────────────────────────────────┐\n│              CrewAI Crew                     │\n│                                              │\n│  ┌──────────────────────────────────────┐   │\n│  │       Agent 1: Market Analyst        │   │\n│  │  role: Senior Market Analyst         │   │\n│  │  tools: StockNewsSearch              │   │\n│  │         YahooFinanceData             │   │\n│  │                                      │   │\n│  │  Task 1: Fetch latest news           │   │\n│  │  Task 2: Fetch price data            │   │\n│  └──────────────┬───────────────────────┘   │\n│                 │ context passed             │\n│                 ▼                            │\n│  ┌──────────────────────────────────────┐   │\n│  │       Agent 2: Content Writer        │   │\n│  │  role: Editor-in-Chief               │   │\n│  │  tools: none                         │   │\n│  │                                      │   │\n│  │  Task 3: Synthesise final report     │   │\n│  └──────────────────────────────────────┘   │\n└─────────────────────────────────────────────┘\n          │\n          ▼\n  Publication-Ready Report (Streamlit UI + Download)\n```\n\n**Key design decision:** The writer agent has no tools — it receives structured context from the analyst's completed tasks and focuses purely on synthesis and narrative. Clean separation of responsibilities mirrors real analyst/editor workflows.\n\n---\n\n## Multi-Agent Pattern\n\nThis project demonstrates the **sequential multi-agent pattern** with **task context passing**:\n\n```\nnews_task  ──────────────────────┐\n                                  ├──► context=[news_task, price_task] ──► report_task\nprice_task ──────────────────────┘\n```\n\nThe report agent only executes after both upstream tasks complete — it synthesises from evidence, not from hallucination. This is the core value of multi-agent over single-agent: specialist roles producing better outputs than one generalist agent trying to do everything.\n\n---\n\n## Tools\n\n| Tool | Data Source | Purpose |\n|---|---|---|\n| `StockNewsSearch` | SerpAPI (Google News) | Latest headlines, corporate developments, market sentiment |\n| `YahooFinanceData` | Yahoo Finance (yfinance) | Current price, 1-month trajectory, daily high/low |\n\nBoth tools are built as **CrewAI `BaseTool` subclasses** with Pydantic input schemas — production-grade tool design compatible with any CrewAI agent.\n\n---\n\n## Tech Stack\n\n| Layer | Technology | Purpose |\n|---|---|---|\n| Agent Framework | CrewAI | Multi-agent orchestration, task management |\n| LLM | Groq (Llama 3.3 70B) | Fast inference for analyst and writer agents |\n| News Search | SerpAPI | Real-time Google News results |\n| Market Data | yfinance | Live stock prices, historical data |\n| Tool Design | Pydantic + BaseTool | Type-safe tool input schemas |\n| LLM Abstraction | LiteLLM | Provider-agnostic LLM routing under CrewAI |\n| UI | Streamlit | Interactive web interface |\n\n---\n\n## Project Structure\n\n```\n## Project Structure\napp.py          # Main application — agents, tools, tasks, and UI\nREADME.md\nrequirements.txt\n```\n\n---\n\n## Getting Started\n\n**Prerequisites:**\n- Python 3.10+\n- Groq API key (free at [console.groq.com](https://console.groq.com/keys))\n- SerpAPI key (free tier at [serpapi.com](https://serpapi.com))\n\n**Installation:**\n```bash\ngit clone https://github.com/anurag1210/finstock-agent\ncd finstock-agent\npip install -r requirements.txt\n```\n\n**Run:**\n```bash\nstreamlit run app.py\n```\n\nEnter your API keys in the sidebar, input a ticker symbol, and click **Analyze Stock**.\n\n---\n\n## Requirements\n\n```txt\ncrewai\nstreamlit\nyfinance\ngoogle-search-results\nlitellm\npydantic\n```\n\n---\n\n## Agents in Detail\n\n**Agent 1 — Senior Market Analyst**\n```\nRole:      Senior Market Analyst\nGoal:      Analyse stocks based on latest news and financial \n           data, provide insights and recommendations\nTools:     StockNewsSearch, YahooFinanceData\nApproach:  Data-driven, skeptical of market hype, \n           relies strictly on hard data and factual indicators\n```\n\n**Agent 2 — Financial Content Writer**\n```\nRole:      Editor-in-Chief\nGoal:      Transform raw quantitative data and analysis \n           into publication-ready market reports\nTools:     None — synthesis only\nApproach:  Bloomberg/FT style — clear, objective, \n           structured narrative without jargon\n```\n\n---\n\n## How It Differs from a Single LLM Call\n\n| | Single LLM Call | FinStock Agent |\n|---|---|---|\n| **Data** | LLM knowledge only (stale) | Live news + live prices |\n| **Pattern** | One prompt, one response | Specialist agents, task pipeline |\n| **Output quality** | Generic summary | Analyst-style synthesis |\n| **Fact grounding** | Hallucination risk | Tool-verified data |\n| **Separation of concerns** | None | Research vs writing separated |\n\n---\n\n## Known Limitations\n\n- **SerpAPI free tier** — limited to 100 searches/month; upgrade for production use\n- **Report length** — currently fixed at ~300 words; configurable via task description\n- **Provider latency** — Groq is fast but Llama 3.3 70B responses vary by load\n- **Ticker validation** — invalid tickers fail at yfinance call rather than upfront; input validation planned\n\n---\n\n## Roadmap\n\n- [ ] Modularise into `agents.py`, `tasks.py`, `tools/`, `crew.py`\n- [ ] Add ticker validation before crew kickoff\n- [ ] Add sentiment score (bullish/bearish/neutral) to report header\n- [ ] Add 6-month price chart via `matplotlib` or `plotly`\n- [ ] Support multi-ticker comparison (e.g. AAPL vs MSFT)\n- [ ] Add PDF export option\n- [ ] Replace monkey-patch with proper LiteLLM version pin\n\n---\n\n## What I Learned Building This\n\n- **Multi-agent task context** — passing `context=[task1, task2]` to a downstream task is the CrewAI equivalent of LangGraph's state accumulation — the writer agent receives structured evidence, not raw tool outputs\n- **BaseTool design** — Pydantic input schemas enforce type safety on tool inputs before the agent ever calls them — catches malformed inputs early\n- **LLM provider abstraction** — CrewAI uses LiteLLM under the hood, so switching providers is a model string change (`groq/...` → `gemini/...`) — experienced this directly when resolving a Groq/LiteLLM cache header incompatibility\n- **Agent role prompting** — detailed `backstory` fields are not cosmetic — they constrain the LLM's tone, approach, and output style measurably. The writer's Bloomberg/FT framing produced noticeably more structured output than a generic prompt\n\n---\n\n## Related Projects\n\n**[FinSight RAG](https://github.com/anurag1210/finsight)** — Production RAG system over SEC filings with dual-layer evaluation, LLM-as-judge scoring, guardrails, and Docker deployment.\n\n**[FinSight Agent](https://github.com/anurag1210/finsight-agent)** — LangGraph ReAct agent for autonomous financial research with dynamic tool selection and persistent state.\n\n**[AI Resume Screener](https://github.com/anurag1210/AI_Resume_Scanner)** — Resume vs job description analysis using Gemini embeddings, ChromaDB, and MMR retrieval.\n\n---\n\n## Author\n\n**Anurag Gupta** — Senior Software Engineer (17 years) transitioning into AI Engineering.\nBuilding production AI systems alongside an MSc in Data Science at the University of Exeter.\n\n[LinkedIn](https://linkedin.com/in/anurag-gupta) · [FinSight RAG](https://github.com/anurag1210/finsight) · [FinSight Agent](https://github.com/anurag1210/finsight-agent)","readmeExcerpt":"FinStock Agent 📈 A multi-agent AI system that researches, analyses, and writes institutional-grade stock reports in seconds — powered by CrewAI, live market data, and real-time news. Ask it about any publicly traded stock and two specialised AI agents collaborate: a **Senior Market Analyst** that gathers live financial data and news, and a **Financial Content Writer** that synthesises everything into a publication-r","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"User Input (Ticker Symbol)\n          │\n          ▼\n┌─────────────────────────────────────────────┐\n│              CrewAI Crew                     │\n│                                              │\n│  ┌──────────────────────────────────────┐   │\n│  │       Agent 1: Market Analyst        │   │\n│  │  role: Senior Market Analyst         │   │\n│  │  tools: StockNewsSearch              │   │\n│  │         YahooFinanceData             │   │\n│  │                                      │   │\n│  │  Task 1: Fetch latest news           │   │\n│  │  Task 2: Fetch price data            │   │\n│  └──────────────┬───────────────────────┘   │\n│                 │ context passed             │\n│                 ▼                            │\n│  ┌──────────────────────────────────────┐   │\n│  │       Agent 2: Content Writer        │   │\n│  │  role: Editor-in-Chief               │   │\n│  │  tools: none                         │   │\n│  │                                      │   │\n│  │  Task 3: Synthesise final report     │   │\n│  └──────────────────────────────────────┘   │\n└─────────────────────────────────────────────┘\n          │\n          ▼\n  Publication-Ready Report (Streamlit UI + Download)"},{"language":"text","snippet":"news_task  ──────────────────────┐\n                                  ├──► context=[news_task, price_task] ──► report_task\nprice_task ──────────────────────┘"},{"language":"text","snippet":"## Project Structure\napp.py          # Main application — agents, tools, tasks, and UI\nREADME.md\nrequirements.txt"},{"language":"bash","snippet":"git clone https://github.com/anurag1210/finstock-agent\ncd finstock-agent\npip install -r requirements.txt"},{"language":"bash","snippet":"streamlit run app.py"},{"language":"txt","snippet":"crewai\nstreamlit\nyfinance\ngoogle-search-results\nlitellm\npydantic"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["python"],"docsSourceLabel":"GITHUB REPOS","editorialOverview":"Multi-agent stock analysis system — CrewAI, live market data, Yahoo Finance, SerpAPI FinStock Agent 📈 A multi-agent AI system that researches, analyses, and writes institutional-grade stock reports in seconds — powered by CrewAI, live market data, and real-time news. Ask it about any publicly traded stock and two specialised AI agents collaborate: a **Senior Market Analyst** that gathers live financial data and news, and a **Financial Content Writer** that synthesises everything into a publication-r","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":374,"uniquenessScore":67,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T19:19:40.920Z","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-09T19:19:40.920Z","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-10T03:18:57.269Z","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"}]}}}