Skip to content

Multi-provider web search orchestration for AI apps — parallel fanout, policy routing, dedup, rerank

License

Notifications You must be signed in to change notification settings

npow/evidencekit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

evidencekit

Stop babysitting search providers. Get reliable web results for your AI app.

EvidenceKit handles the messy reality of production web search: providers go down, return garbage, or give you duplicate results. You get a single clean API that routes across 12+ providers, fans out queries in parallel, deduplicates and reranks results, and keeps your agent running even when individual providers fail.

npm install evidencekit

What you get

  • One API, 12+ providers — Tavily, Exa, Brave, Perplexity, Firecrawl, Serper, SerpAPI, SearxNG, Jina, DataForSEO, Tinyfish, and more
  • Policy-based routing — pick fast, cheap, balanced, or quality and EvidenceKit selects and fans out across the right providers automatically
  • Parallel fanout with timeout isolation — slow providers don't block your response
  • Automatic retry with backoff — transient failures are handled transparently
  • Dedup + rerank pipeline — merged results from multiple providers, citations preserved
  • Built-in telemetry — per-provider latency and health data for monitoring and evals

Quick start

import { EvidenceKit, TavilyProvider, ExaProvider, FirecrawlProvider } from "evidencekit"

const kit = new EvidenceKit({
  providers: [
    new TavilyProvider({ apiKey: process.env.TAVILY_API_KEY! }),
    new ExaProvider({ apiKey: process.env.EXA_API_KEY! }),
    new FirecrawlProvider({ apiKey: process.env.FIRECRAWL_API_KEY! }),
  ],
  defaultPolicy: "balanced",
  timeoutMs: 15000,
  retry: { retries: 1, backoffMs: 250 },
})

const result = await kit.search({
  query: "startup pricing page benchmarks b2b saas",
  limit: 10,
  requireCitations: true,
}, "quality")

console.log(result.results)   // normalized, deduped, reranked
console.log(result.telemetry) // per-provider latency + status

Routing policies

Policy When to use
fast Latency-sensitive — picks the lowest-latency providers
cheap Cost-sensitive — picks the lowest-cost providers
balanced Good default — blends cost and latency
quality Max recall — fans out across a broader provider set

Register your own with kit.registerPolicy(name, selectorFn).

Supported providers

Brave · DataForSEO · Exa · Firecrawl · Jina · Perplexity · SearxNG · Serper · SerpAPI · Tavily · Tinyfish

Local dev

npm install
npm run test
npm run build

License

MIT

About

Multi-provider web search orchestration for AI apps — parallel fanout, policy routing, dedup, rerank

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors