cloudwego / cloudwego/eino-ext
[Feature Request] add serply search tool
- Dominant language
- Go
- Stars
- 811
- Forks
- 368
- Avg merge
- 16h 22m
- Merged PRs (30d)
- 13
Description
**Feature Request**
Add a Serply search tool to `components/tool`, alongside the existing bingsearch, googlesearch, searxng and wikipedia tools.
Serply (https://serply.io) is a SERP API that returns Google web, Google News and Google Scholar results as JSON behind one API key. The news and scholar endpoints are the useful part for agents: the current tools cover general web search, but there is no tool for recent news or for academic papers with authors and citation counts.
**Describe the solution you'd like**
A `components/tool/serply` module that implements `tool.InvokableTool` via `utils.InferTool`, following the wikipedia and bingsearch tools: a `Config` with `APIKey`, `BaseURL`, `SearchType` (web, news, scholar), `Num`, `Headers`, `Timeout` and `HttpClient`, and a normalized `SearchResult` (title, link, description, plus source and published for news, authors and cited_by for scholar).
**Additional context**
I work with Serply. The module is implemented and tested (httptest server, no network in tests) in my fork and I will open a PR referencing this issue: https://github.com/googio/eino-ext/tree/feat/serply-search/components/tool/serply
Contributor guide
Research direction
Start in components/tool and compare the existing bingsearch, googlesearch, searxng, and wikipedia tools with the Serply module in the linked fork. Review the fork's implementation and httptest coverage first; done means the requested web, news, and scholar search types and normalized results are covered without network access in tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100