{"id":"1ab71c23-2560-4f66-ab70-661eed65acdb","entityType":"agent","slug":"crewai-nick-is-building-crewai-gemini-deep-research","name":"crewai-gemini-deep-research","canonicalUrl":"https://www.xpersona.co/agent/crewai-nick-is-building-crewai-gemini-deep-research","canonicalPath":"/agent/crewai-nick-is-building-crewai-gemini-deep-research","generatedAt":"2026-10-08T23:24:10.070Z","source":"GITHUB_OPENCLEW","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-05-31T06:18:14.026Z","emptyReason":null},"description":"A native CrewAI BaseTool for Google's Gemini Deep Research API — async polling, cost control, and timeout protection in a single drop-in tool. 🔬 CrewAI Gemini Deep Research Tool A native **CrewAI BaseTool** that wraps Google's **Gemini Deep Research Agent**, the most powerful autonomous web research API available today. **Drop it into any existing CrewAI pipeline. No MCP servers, no framework changes, no async headaches.** The Problem Google's Gemini Deep Research Agent autonomously searches the web, reads and cross-references sources, and returns detailed","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 5/31/2026.","installCommand":"git clone https://github.com/Nick-is-building/crewai-gemini-deep-research.git","sourceUrl":"https://github.com/Nick-is-building/crewai-gemini-deep-research","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/Nick-is-building/crewai-gemini-deep-research","kind":"source"}],"safetyScore":66,"overallRank":31.2,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"A native CrewAI BaseTool for Google's Gemini Deep Research API — async polling, cost control, and timeout protection in a single drop-in tool. 🔬 CrewAI Gemini "},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-05-31T06:18:14.026Z","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-31T06:18:14.026Z","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-31T06:18:14.026Z","emptyReason":null},"lastUpdatedAt":"2026-05-31T06:18:14.026Z","lastCrawledAt":"2026-05-31T06:18:14.026Z","lastIndexedAt":null,"nextCrawlAt":"2026-06-07T06:18:14.026Z","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/Nick-is-building/crewai-gemini-deep-research.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-nick-is-building-crewai-gemini-deep-research/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-nick-is-building-crewai-gemini-deep-research/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-nick-is-building-crewai-gemini-deep-research/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/crewai-nick-is-building-crewai-gemini-deep-research/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-nick-is-building-crewai-gemini-deep-research/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-nick-is-building-crewai-gemini-deep-research/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-08T23:24:10.070Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/crewai-nick-is-building-crewai-gemini-deep-research/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-nick-is-building-crewai-gemini-deep-research/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-nick-is-building-crewai-gemini-deep-research/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-nick-is-building-crewai-gemini-deep-research/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-31T06:18:14.026Z","emptyReason":null},"readme":"# 🔬 CrewAI Gemini Deep Research Tool\n\nA native **CrewAI BaseTool** that wraps Google's **Gemini Deep Research Agent**, the most powerful autonomous web research API available today.\n\n**Drop it into any existing CrewAI pipeline. No MCP servers, no framework changes, no async headaches.**\n\n## The Problem\n\nGoogle's Gemini Deep Research Agent autonomously searches the web, reads and cross-references sources, and returns detailed Markdown reports with inline citations. But it runs exclusively on the **Interactions API**, a completely different, asynchronous API surface that is incompatible with CrewAI's synchronous tool model.\n\nThis tool bridges that gap.\n\n## What It Does\n\n- **Async-to-sync bridging**: Handles the entire `background=True`, polling, and result extraction lifecycle inside CrewAI's `_run()` method\n- **Cost protection**: `max_usage_count=2` prevents runaway API calls\n- **Hard timeout**: 30-minute default prevents infinite polling loops\n- **Clean auth isolation**: Uses explicit API key, no conflicts with Vertex AI ADC credentials\n- **Breaking Change ready**: Updated for the May 2026 `outputs[]` to `steps[]` migration, with backward-compatible fallback\n\n## Quick Start\n\n### 1. Install dependencies\n\n```bash\npip install crewai google-genai pydantic python-dotenv\n```\n\n### 2. Set your API key\n\nGet a Gemini API key from [Google AI Studio](https://aistudio.google.com/apikey) and set it:\n\n```bash\nexport GEMINI_API_KEY=\"your-key-here\"\n```\n\n### 3. Use in your CrewAI pipeline\n\n```python\nfrom crewai import Agent, Task, Crew\nfrom deep_research_tool import GeminiDeepResearchTool\n\n# Initialize the tool\ndeep_research = GeminiDeepResearchTool()\n\n# Give it to an agent\nresearcher = Agent(\n    role=\"Senior Research Analyst\",\n    goal=\"Produce comprehensive research reports with verified sources\",\n    backstory=\"You are an expert analyst who uses deep research to investigate topics thoroughly.\",\n    tools=[deep_research],\n    max_iter=3,              # Low: each call takes minutes\n    max_execution_time=3600, # 60 min: must exceed tool timeout\n    verbose=True,\n)\n\n# Define a task\nresearch_task = Task(\n    description=\"Research the competitive landscape of solid-state batteries in 2026.\",\n    expected_output=\"A detailed research report with citations and data.\",\n    agent=researcher,\n)\n\n# Run\ncrew = Crew(agents=[researcher], tasks=[research_task])\nresult = crew.kickoff()\n```\n\nThat's it. The agent calls the tool, the tool handles the multi-minute Deep Research cycle in the background, and returns a full Markdown report with inline citations.\n\n## Configuration\n\nAll parameters are overridable at instantiation:\n\n```python\ntool = GeminiDeepResearchTool(\n    api_key=\"your-key\",                              # Or set GEMINI_API_KEY env var\n    agent_name=\"deep-research-max-preview-04-2026\",  # Use Max for deeper research\n    max_polling_time=2400,                           # 40 min timeout\n    polling_interval=20,                             # Poll every 20 sec\n    max_usage_count=3,                               # Allow 3 calls per task\n)\n```\n\n### Available Models\n\n| Model | Use Case | Speed |\n|-------|----------|-------|\n| `deep-research-preview-04-2026` (default) | Interactive research, user-facing | 3-15 min |\n| `deep-research-max-preview-04-2026` | Background batch jobs, due diligence | 10-40 min |\n\n## Cost Awareness\n\nDeep Research runs on **Gemini 3.1 Pro** at standard API rates. There is no additional markup for the agent layer. The key pricing components (as of May 2026, from [Google's official pricing](https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing)):\n\n| Component | Rate |\n|-----------|------|\n| Gemini 3.1 Pro input tokens | $2.00 / 1M tokens |\n| Gemini 3.1 Pro output tokens | $12.00 / 1M tokens |\n| Google Search grounding (Gemini 3.x) | $14.00 / 1K queries |\n| Long context (>200K tokens) | 2x standard rates |\n\nActual cost per Deep Research call depends on the complexity of your query and how many search iterations the agent performs. The `max_usage_count` parameter is your primary cost control. At default settings, a single agent can make at most 2 Deep Research calls per task.\n\nFor the latest pricing, always check [Google's official pricing page](https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing).\n\n## Multi-Agent Pipeline Tips\n\nWhen using this tool across multiple agents in a sequential pipeline:\n\n**Set `max_iter=3` on research agents.** Each Deep Research call is expensive. Two calls per agent (controlled by `max_usage_count=2`) is the sweet spot: first call broad, second call targeted.\n\n**Set `max_execution_time=3600` on research agents.** This must exceed the tool's `max_polling_time` (default 1800s), or CrewAI will kill the agent mid-research.\n\n**Keep audit/synthesis agents tool-free.** Agents that only analyze predecessor outputs don't need Deep Research. Removing the tool from these agents prevents accidental expensive calls and enforces clean separation between research and analysis.\n\n**Guide the queries in your task descriptions.** Deep Research performs dramatically better with specific, structured queries. Include example query structures in your `tasks.yaml`:\n\n```yaml\ndescription: >\n  Before calling the Deep Research Tool, formulate a precise query.\n  Include: company name, technical architecture, compliance exposure,\n  cloud providers, regulatory landscape.\n  Example: \"{company} technical infrastructure EU compliance GDPR 2026\"\n```\n\n## Why Is This Synchronous?\n\nBy design. CrewAI's tool execution model is synchronous. When an agent calls a tool, it waits for the result. Every built-in CrewAI tool works this way, including SerperDevTool, ScrapeWebsiteTool, and others that make network requests. This tool follows the same pattern.\n\nIf you need to run multiple Deep Research calls in parallel (for example, a pipeline with six research agents), the recommended architecture is to use CrewAI Flows to launch concurrent research tasks before feeding results into a sequential analysis crew. This keeps the tool simple and the parallelism where it belongs: at the orchestration layer, not inside the tool.\n\nFor web applications serving multiple users, wrap your crew execution in a background worker (Celery, `asyncio.to_thread`, or a task queue). This is standard practice for any long-running CrewAI pipeline, not specific to this tool.\n\n## How It Works Under the Hood\n\n```\nAgent calls tool._run(query)\n         |\n         v\n   POST interactions.create(background=True)\n         |\n         v\n   Receive interaction_id immediately\n         |\n         v\n   Poll loop (every 15s)\n   - GET interactions.get(id)\n   - Status: in_progress?    -> continue polling\n   - Status: completed?      -> extract report from steps[-1]\n   - Status: failed?         -> return error message\n   - Timeout reached?        -> return timeout message\n         |\n         v\n   Return Markdown report to agent\n```\n\n## Authentication Note\n\nDeep Research requires a **Google AI Studio API key**. It is NOT available on Vertex AI (as of May 2026). If you're already using Vertex AI for your LLM (via ADC), this tool keeps the two auth paths cleanly separated. Your Vertex AI agents use ADC, the Deep Research tool uses the explicit API key. No conflicts.\n\n## Requirements\n\n- Python 3.10+\n- CrewAI 0.80+\n- `google-genai` 1.55.0+\n- A Gemini API key ([get one here](https://aistudio.google.com/apikey))\n\n## License\n\nMIT\n\n---\n\nBuilt by a solo developer who needed Gemini Deep Research in CrewAI and couldn't find it anywhere. So I built it.\n","readmeExcerpt":"🔬 CrewAI Gemini Deep Research Tool A native **CrewAI BaseTool** that wraps Google's **Gemini Deep Research Agent**, the most powerful autonomous web research API available today. **Drop it into any existing CrewAI pipeline. No MCP servers, no framework changes, no async headaches.** The Problem Google's Gemini Deep Research Agent autonomously searches the web, reads and cross-references sources, and returns detailed","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"pip install crewai google-genai pydantic python-dotenv"},{"language":"bash","snippet":"export GEMINI_API_KEY=\"your-key-here\""},{"language":"python","snippet":"from crewai import Agent, Task, Crew\nfrom deep_research_tool import GeminiDeepResearchTool\n\n# Initialize the tool\ndeep_research = GeminiDeepResearchTool()\n\n# Give it to an agent\nresearcher = Agent(\n    role=\"Senior Research Analyst\",\n    goal=\"Produce comprehensive research reports with verified sources\",\n    backstory=\"You are an expert analyst who uses deep research to investigate topics thoroughly.\",\n    tools=[deep_research],\n    max_iter=3,              # Low: each call takes minutes\n    max_execution_time=3600, # 60 min: must exceed tool timeout\n    verbose=True,\n)\n\n# Define a task\nresearch_task = Task(\n    description=\"Research the competitive landscape of solid-state batteries in 2026.\",\n    expected_output=\"A detailed research report with citations and data.\",\n    agent=researcher,\n)\n\n# Run\ncrew = Crew(agents=[researcher], tasks=[research_task])\nresult = crew.kickoff()"},{"language":"python","snippet":"tool = GeminiDeepResearchTool(\n    api_key=\"your-key\",                              # Or set GEMINI_API_KEY env var\n    agent_name=\"deep-research-max-preview-04-2026\",  # Use Max for deeper research\n    max_polling_time=2400,                           # 40 min timeout\n    polling_interval=20,                             # Poll every 20 sec\n    max_usage_count=3,                               # Allow 3 calls per task\n)"},{"language":"yaml","snippet":"description: >\n  Before calling the Deep Research Tool, formulate a precise query.\n  Include: company name, technical architecture, compliance exposure,\n  cloud providers, regulatory landscape.\n  Example: \"{company} technical infrastructure EU compliance GDPR 2026\""},{"language":"text","snippet":"Agent calls tool._run(query)\n         |\n         v\n   POST interactions.create(background=True)\n         |\n         v\n   Receive interaction_id immediately\n         |\n         v\n   Poll loop (every 15s)\n   - GET interactions.get(id)\n   - Status: in_progress?    -> continue polling\n   - Status: completed?      -> extract report from steps[-1]\n   - Status: failed?         -> return error message\n   - Timeout reached?        -> return timeout message\n         |\n         v\n   Return Markdown report to agent"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["python"],"docsSourceLabel":"GITHUB OPENCLEW","editorialOverview":"A native CrewAI BaseTool for Google's Gemini Deep Research API — async polling, cost control, and timeout protection in a single drop-in tool. 🔬 CrewAI Gemini Deep Research Tool A native **CrewAI BaseTool** that wraps Google's **Gemini Deep Research Agent**, the most powerful autonomous web research API available today. **Drop it into any existing CrewAI pipeline. No MCP servers, no framework changes, no async headaches.** The Problem Google's Gemini Deep Research Agent autonomously searches the web, reads and cross-references sources, and returns detailed","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":405,"uniquenessScore":62,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-05-31T06:18:14.026Z","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-31T06:18:14.026Z","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-08T23:24:10.070Z","emptyReason":null},"items":[{"id":"959108e7-5f7c-45ac-bea0-9ab67f017226","entityType":"agent","canonicalPath":"/agent/langchain-x1pay-langchain","slug":"langchain-x1pay-langchain","name":"@x1pay/langchain","description":"LangChain/LangGraph tools for AI agent x402 payments on X1","url":"https://www.npmjs.com/package/@x1pay/langchain","homepage":null,"source":"GITHUB_OPENCLEW","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":70,"overallRank":65,"updatedAt":"2026-06-01T00:29:07.099Z","createdAt":"2026-05-23T06:52:58.553Z","downloads":null},{"id":"4f8f8f95-34f7-49a9-b516-391d1c355d6c","entityType":"agent","canonicalPath":"/agent/langchain-langchain-langgraph-swarm","slug":"langchain-langchain-langgraph-swarm","name":"@langchain/langgraph-swarm","description":"An implementation of a multi-agent swarm using LangGraph","url":"git+ssh://git@github.com/langchain-ai/langgraphjs.git","homepage":"https://github.com/langchain-ai/langgraphjs#readme","source":"GITHUB_OPENCLEW","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":70,"overallRank":65,"updatedAt":"2026-06-01T00:29:03.792Z","createdAt":"2026-05-23T06:52:55.396Z","downloads":null},{"id":"e36fd59b-38d7-4e73-aa20-c1431a8f7434","entityType":"agent","canonicalPath":"/agent/langchain-langchain-langgraph-supervisor","slug":"langchain-langchain-langgraph-supervisor","name":"@langchain/langgraph-supervisor","description":"LangGraph Multi-Agent Supervisor","url":"git+ssh://git@github.com/langchain-ai/langgraphjs.git","homepage":"https://github.com/langchain-ai/langgraphjs#readme","source":"GITHUB_OPENCLEW","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":70,"overallRank":65,"updatedAt":"2026-06-01T00:29:03.756Z","createdAt":"2026-05-23T06:52:55.353Z","downloads":null},{"id":"d1d0f93e-b722-4791-9bbf-2532470054c2","entityType":"agent","canonicalPath":"/agent/langchain-oceanbus-langchain","slug":"langchain-oceanbus-langchain","name":"oceanbus-langchain","description":"LangChain tools for OceanBus — give your LangChain and CrewAI agents a global identity, encrypted messaging, and Yellow Pages service discovery with a single import.","url":"git+https://github.com/oceanbus/oceanbus.git","homepage":"https://github.com/oceanbus/oceanbus#readme","source":"GITHUB_OPENCLEW","protocols":["OPENCLAW"],"capabilities":["oceanbus","langchain","langchain-tools","agent-to-agent","ai-agent","communication","messaging","e2ee","structured-tool","yellow-pages","service-discovery","reputation","crewai"],"safetyScore":70,"overallRank":65,"updatedAt":"2026-06-01T00:29:02.595Z","createdAt":"2026-05-23T06:52:54.240Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/github_openclew","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}