ModelEngine-Group / ModelEngine-Group/nexent
[Request] Add Serply as a web search tool option
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 5.9k
- Forks
- 731
- Avg merge
- 19h 34m
- Merged PRs (30d)
- 172
Description
Feature Description
Nexent's SDK ships a family of interchangeable web-search tools (TavilySearchTool, ExaSearchTool, LinkupSearchTool, ...), but there is no option backed by Google SERP results. Users whose agents need Google-flavored organic results (or who already hold a Serply subscription) currently cannot use their key with Nexent.
Proposed Solution
Add a SerplySearchTool that mirrors TavilySearchTool: an HTTP wrapper around the Serply SERP API (GET https://api.serply.io/v1/search/), subclassing the same smolagents Tool base, emitting the same observer messages and SearchResultTextMessage card format, registered via the standard three touch points (tools/__init__.py, ToolSign, tool_labels.py). The tool is optional and only active when a user supplies their own SERPLY_API_KEY.
I have a working implementation with unit tests (network mocked) and have live-tested it against the real API; I will open a PR right after this issue.
Additional Information
Serply API docs: https://serply.io/docs
Disclosure: I work with Serply. The integration follows the existing house pattern and adds no required dependency (plain httpx, already used by the SDK).
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 by comparing the existing TavilySearchTool pattern, then inspect tools/init.py, ToolSign, and tool_labels.py for the three registration points. Run the mocked unit tests mentioned in the issue; done means the optional Serply tool follows the existing message and result-card conventions when SERPLY_API_KEY is supplied.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100