Add a keyless web search tool (KeenableSearchTool) to crewai-tools
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 58.8k
- Forks
- 8.5k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 109
Description
Feature Area
Integration with external tools
Is your feature request related to a an existing bug? Please link it here.
NA
Describe the solution you'd like
A web search tool in lib/crewai-tools that works without an API key. Every search tool in the package today (SerperDevTool, BraveSearchTool, TavilySearchTool, EXASearchTool, ...) needs a key before the first query, so a new crew cannot search the web until someone signs up somewhere.
KeenableSearchTool would call the Keenable Search API, which has a keyless public endpoint. The tool follows the BraveSearchTool shape (requests, n_results, JSON list of {title, url, description}), and an optional KEENABLE_API_KEY only lifts the per-IP rate limits. Results carry the page text, so the tool caps each result (max_snippet_chars, default 500) to keep n_results=10 at a sane context size.
Implementation is ready in #6279 (5 files, +206, ruff clean, live-verified keyless); the PR was closed by the issue-link check and will be reopened against this issue.
Describe alternatives you've considered
Using one of the existing keyed tools: works, but the first-run experience needs a signup. Scraping DuckDuckGo: no key either, but brittle and against their terms. A standalone package outside crewai-tools: possible, but every other search vendor is in-tree, and discoverability is the point.
Additional context
Disclosure: I work at Keenable. The tool is opt-in and changes no defaults.
Willingness to Contribute
Yes, I'd be happy to submit a pull request
Per CONTRIBUTING, this issue was prepared with an AI coding assistant, so it should carry the llm-generated label; I do not have permission to add labels here.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in lib/crewai-tools by reviewing BraveSearchTool and the implementation prepared in closed PR #6279. Run the relevant checks and ruff; done means the keyless KeenableSearchTool supports the stated request shape, optional KEENABLE_API_KEY, result snippet cap, and package integration.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 25/100