Web search for elizaOS agents through SERPdive. One call returns the extracted, answer-ready content of each source page instead of a list of links, cleaned and sized for a context window, so your agent can quote and cite facts straight from the response.
Measured, not asserted: on a public, replayable 1,000-question benchmark judged blind by an independent model, SERPdive runs at the same speed as Tavily, feeds the LLM 20.2% fewer tokens, and wins 60.7% of decided quality duels against Tavily's default search.
elizaOS 2.x (@elizaos/core >= 2.0.3-beta.7). This plugin implements the
2.x web-search contract — ServiceType.WEB_SEARCH via IWebSearchService, plus
the search-category registration added in 2.x. Those APIs do not exist in the
1.7 line, so the plugin will not load there. elizaOS main and develop are
both on 2.0.3-beta.7; if elizaos --version reports 1.x, install the 2.x core
(@elizaos/core@beta) before adding this plugin.
bun add plugin-serpdiveSet your API key — free at serpdive.com, 1,000 credits every month, no card:
SERPDIVE_API_KEY=sd_live_...Then add the plugin to your character:
import { serpdivePlugin } from "plugin-serpdive";
export const character = {
name: "Researcher",
plugins: [serpdivePlugin],
};Registers a ServiceType.WEB_SEARCH service and the "web" search category, so web, news, and current-information queries route to SERPdive. It is opt-in and registers no actions, providers, evaluators, or routes.
Only one web-search provider is active per agent — pick this one or another provider, not both.
elizaOS searchDepth |
SERPdive model | Behaviour |
|---|---|---|
basic (default) |
mako |
The fact-carrying sentences of each source. Fast, 1 credit. |
advanced |
moby |
The full readable content of every page. Slower, 1.5 credits. |
A native model option takes precedence when provided.
- News is plain search: SERPdive infers freshness and locale from the query itself, so
daysandfreshnessare accepted for compatibility but not forwarded. - Images and videos reuse web search and the
imagesarray stays empty — SERPdive returns no images, and results are never fabricated. getPageInfois a direct fetch, not a SERPdive call, matching the behaviour ofplugin-web-search.- Without
SERPDIVE_API_KEYthe service boots inert and throws a descriptive error on first use rather than crashing agent startup.
bun install
bun run build # tsup, ESM + types
bun run test # vitest
bun run typecheckMIT
