Skip to content

feat(crewai-tools): add SerpdiveSearchTool#6594

Open
edendalexis wants to merge 1 commit into
crewAIInc:mainfrom
edendalexis:serpdive-search-tool
Open

feat(crewai-tools): add SerpdiveSearchTool#6594
edendalexis wants to merge 1 commit into
crewAIInc:mainfrom
edendalexis:serpdive-search-tool

Conversation

@edendalexis

Copy link
Copy Markdown

Add SerpdiveSearchTool

Adds a search tool for SERPdive, an AI search API that returns answer-ready web content: every result carries the actual text of the page (url, title, date, content), already extracted, cleaned, and sized for LLM consumption, so agents can quote and cite straight from the tool output. On a public, replayable 1,000-question benchmark, SERPdive runs at the same speed as Tavily, feeds your LLM 20.2% fewer tokens, and wins 60.7% of decided quality duels.

What's included

  • lib/crewai-tools/src/crewai_tools/tools/serpdive_search_tool/: SerpdiveSearchTool (sync _run + async _arun) over the official serpdive SDK, following the structure and current style of the existing search tools (import guard, package_dependencies, env_vars, JSON string output) + tool README
  • Exports in crewai_tools/__init__.py and crewai_tools/tools/__init__.py (imports and __all__), serpdive optional dependency group in lib/crewai-tools/pyproject.toml
  • lib/crewai-tools/tests/tools/serpdive_search_tool_test.py: 4 stubbed unit tests (no network), passing locally; the tool was also run live against the production API
  • Docs page docs/edge/en/tools/search-research/serpdivesearchtool.mdx + overview card + docs/docs.json nav entry (edge only, no frozen docs/v* touched)
  • lib/crewai-tools/tool.specs.json regenerated with generate_tool_specs.py: the diff is additive only (the new tool's entry), no existing entry changed

Notes

  • Auth via SERPDIVE_API_KEY (free key, no card required). No country or locale parameter: the language of the query picks where the search runs automatically.
  • Heads-up on exclude-newer = "3 days": the serpdive SDK's latest release was published on 2026-07-18, so uv sync --all-extras resolves it once the release is more than 3 days old. No config change is included; if CI runs before then and you prefer, we can add a temporary exclude-newer-package override instead.

🤖 Generated with Claude Code

Web search over the SERPdive Search API. Returns a JSON string whose
results carry the extracted, answer-ready text of each page (url,
title, date, content), plus an optional synthesized answer. Sync and
async via the official serpdive SDK, exported from crewai_tools, with
a serpdive optional dependency group, stubbed unit tests, a docs page
under tools/search-research, and the regenerated tool.specs.json.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: eba0f7cb-4408-4f8f-9bbf-1c74eb7130d7

📥 Commits

Reviewing files that changed from the base of the PR and between 69c0308 and e78771b.

📒 Files selected for processing (11)
  • docs/docs.json
  • docs/edge/en/tools/search-research/overview.mdx
  • docs/edge/en/tools/search-research/serpdivesearchtool.mdx
  • lib/crewai-tools/pyproject.toml
  • lib/crewai-tools/src/crewai_tools/__init__.py
  • lib/crewai-tools/src/crewai_tools/tools/__init__.py
  • lib/crewai-tools/src/crewai_tools/tools/serpdive_search_tool/README.md
  • lib/crewai-tools/src/crewai_tools/tools/serpdive_search_tool/__init__.py
  • lib/crewai-tools/src/crewai_tools/tools/serpdive_search_tool/serpdive_search_tool.py
  • lib/crewai-tools/tests/tools/serpdive_search_tool_test.py
  • lib/crewai-tools/tool.specs.json

📝 Walkthrough

Walkthrough

Changes

SERPdive Search Tool

Layer / File(s) Summary
Tool contract and package wiring
lib/crewai-tools/pyproject.toml, lib/crewai-tools/tool.specs.json, lib/crewai-tools/src/crewai_tools/.../__init__.py
Adds the optional serpdive dependency, tool schemas, environment configuration, and public package exports.
Search implementation and validation
lib/crewai-tools/src/crewai_tools/tools/serpdive_search_tool/serpdive_search_tool.py, lib/crewai-tools/tests/tools/serpdive_search_tool_test.py
Implements SERPdive sync and async searches, JSON response formatting, optional parameters, and mocked behavioral tests.
Documentation and tool discovery
lib/crewai-tools/src/crewai_tools/tools/serpdive_search_tool/README.md, docs/edge/en/tools/search-research/*, docs/docs.json
Documents installation, configuration, usage, parameters, output, references, and adds the tool to the search-research documentation index.

Sequence Diagram(s)

sequenceDiagram
  participant Agent
  participant SerpdiveSearchTool
  participant SERPdive
  Agent->>SerpdiveSearchTool: Submit query
  SerpdiveSearchTool->>SERPdive: Execute search with configured parameters
  SERPdive-->>SerpdiveSearchTool: Return search response
  SerpdiveSearchTool-->>Agent: Return formatted JSON
Loading

Suggested reviewers: lorenzejay

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: adding SerpdiveSearchTool to crewai-tools.
Description check ✅ Passed The description matches the changeset and explains the new tool, docs, exports, dependency, tests, and specs.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant