Skip to content

web_search: evaluate switching default provider from Bing to DuckDuckGo #2132

@Hmbown

Description

@Hmbown

Context

The web_search tool defaults to provider = "bing" (HTML scraping, no API key needed). Research (#2130, #964) shows:

  • Bing works for simple one-word queries but silently returns empty results for technical/compound queries (e.g. "Claude Code tool architecture agent loop")
  • DuckDuckGo HTML scraping returns relevant results for the same queries, and already has a Bing fallback when DDG itself returns a bot challenge
  • web.run (which uses DuckDuckGo) is the more reliable path today

Proposal

Consider changing the default SearchProvider from Bing to DuckDuckGo in crates/tui/src/config.rs (line 608: #[default] Bing#[default] DuckDuckGo).

Trade-offs

Bing (current default) DuckDuckGo (proposed)
Reliability Empty results for technical queries Good results; falls back to Bing on bot challenge
Privacy Microsoft tracking Privacy-respecting
No API key Yes Yes
Regional Blocked in China Blocked in China
Latency ~300ms ~800ms

For users in mainland China, neither Bing HTML scraping nor DuckDuckGo works — they need Tavily or Bocha API keys (#1681). So the default change doesn't hurt the China use case (it's already broken either way).

Decision needed

  1. Switch default now (v0.8.47)?
  2. Switch after web_search: fall back to DuckDuckGo when Bing returns zero results #2130 (Bing→DDG fallback) lands and has field time?
  3. Keep Bing as default but add a startup warning in codewhale doctor?

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingenhancementNew feature or requestquestionFurther information is requested

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions