feat(nodes): add SERPdive web search provider node - #518
Conversation
Adds SERPdive as a search provider node next to the Tavily node, following the same ProviderNode shape. SERPdive returns extracted, answer-ready page content instead of a list of links, so the agent reads the sentences that answer the query rather than fetching and cleaning pages itself. Two models: mako (fast, key sentences) and moby (full readable page text). - backend/app/nodes/tools/serpdive_search.py: the node, mirroring tavily_search.py (metadata, get_required_packages, execute, tool factory), built on the official serpdive SDK - registered in nodes/tools/__init__.py, nodes/__init__.py, dynamic_type_detection, graph_builder/types and dynamic_node_analyzer - credentials: serpdive_search service type with an async connection test in credentials.py, plus the frontend credential entry in credentials.ts - client/public/icons/serpdive_search.svg No existing node is modified; Tavily and the others are untouched.
Replaces the PNG-embedded placeholder with a true vector SVG (traced from the logo, two brand colors, 4.6KB), matching the repo's other icons which are all vectors rather than embedded raster.
fb9266d to
91d3c86
Compare
The node imports serpdive at module level (same pattern as the Tavily node with langchain-tavily), and app.nodes.__init__ imports every node, so a backend without the package would fail at import time. The credential test already degrades gracefully via its lazy import; this makes the node itself sound.
|
Update while this is open: SERPdive now has a free tier, which changes the calculus for this integration.
Why it matters here: the usual objection to adding a search provider is that reviewers and users need a paid key just to try it. That objection is gone — anyone can run this integration end to end for free, including whoever reviews this PR. Nothing in this PR needs to change for that: the default stays |
The node exposed two of the three models SERPdive serves, so the free one was not selectable. `krill` is free and unlimited under fair use — no card, no credits — returning a smaller set of the same sentences, one request at a time, at low priority. Added to the input choices, the select options and the two descriptions that list the models. The default stays `mako`, so existing flows are unchanged.
What this adds
A SERPdive web search provider node, alongside the existing Tavily node.
SERPdive returns extracted, answer-ready page content instead of a list of
links, so the agent reads the sentences that answer the query rather than
fetching and cleaning pages itself. Two models:
mako(fast, key sentences)and
moby(full readable page text).Changes
backend/app/nodes/tools/serpdive_search.py— the node, mirroringtavily_search.py: metadata,get_required_packages,execute, and theagent-ready
Toolfactory. Built on the officialserpdivePython SDK.nodes/tools/__init__.py,nodes/__init__.py,dynamic_type_detection,graph_builder/typesand thepackage map in
dynamic_node_analyzer.serpdive_searchservice type with an async connection testin
credentials.py, plus the matching frontend entry incredentials.ts.client/public/icons/serpdive_search.svg.No existing node is touched; Tavily and the rest are unchanged.
Why it might be useful here
For a visual agent builder, the value of a search node is what it hands the
model. SERPdive returns extracted content sized for a context window, which is
one call instead of search-then-scrape. On a public 1,000-question benchmark
judged blind by an independent model, it won 60.7% of decided duels against
Tavily's default search while returning 20.2% fewer tokens (1,001 vs
1,255 on average), at comparable latency. The harness, prompts and
per-question results are public and replayable:
https://github.com/edendalexis/serpdive-benchmark
Scope note, since an honest benchmark states its limits: that comparison is
against Tavily's default (basic) search, the tier in the same price class.
Tavily's advanced mode was not tested and no claim is made about it.
Every account gets 1,000 free credits per month with no card
(https://serpdive.com/dashboard/keys), so the node can be tried without a paid
plan.
Notes
serpdive, theofficial SDK.
to swap it for a hand-drawn SVG if you prefer a lighter asset.
the default model, or the parameter set to match your conventions.