Skip to main content

What it does

Two complementary tools:
  • Web Search — returns structured search results (title, URL, snippet) from Brave Search or SearXNG
  • Web Answer — returns AI-synthesized answers with citations from Perplexity Sonar
The assistant chooses between them based on the query. Factual lookups typically use search; complex questions use answer.

Requirements

You need at least one search provider configured:
ProviderWhat you need
Brave SearchAPI key from brave.com/search/api
SearXNGA running SearXNG instance URL
Perplexity Sonar (answers)API key from perplexity.ai or an OpenRouter key

Configuration

Configure search providers in Settings > Tools, or via the CLI:
# Brave Search
spaceduck config set /tools/webSearch/provider brave
spaceduck config secret set /tools/webSearch/braveApiKey

# SearXNG (self-hosted)
spaceduck config set /tools/webSearch/provider searxng
spaceduck config set /tools/webSearch/searxngUrl http://localhost:8888

# Perplexity Sonar (for AI answers)
spaceduck config secret set /tools/webAnswer/perplexityApiKey

Features

FeatureDetails
Max results5 by default, up to 10
Rate limitingBrave: 3 req/s, SearXNG: 5 req/s
Caching15-minute in-memory cache (skipped for time-sensitive queries)
Freshness filterPast day, week, month, or year
Locale/countryConfigurable per query

Answer

FeatureDetails
Modelsonar-pro by default
CitationsReturned with source URLs
Caching5-minute in-memory cache
FallbackUses OpenRouter if no Perplexity key
Search results are never synthesized — you get raw titles, URLs, and snippets. The assistant interprets them. AI answers from Perplexity Sonar are clearly marked as synthesized.