mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-27 09:21:35 +07:00
docs(tools): add DuckDuckGo Search provider page
New page: tools/duckduckgo-search.md - Key-free fallback provider, no API key needed - Clear Warning about unofficial HTML-based integration - Limitations section covering bot-challenge risk and reliability - CardGroup showing good-for vs not-recommended-for use cases Updated: tools/web.md with DuckDuckGo in CardGroup and comparison table Updated: docs.json nav and redirect
This commit is contained in:
@@ -88,6 +88,10 @@
|
||||
"source": "/web-fetch",
|
||||
"destination": "/tools/web-fetch"
|
||||
},
|
||||
{
|
||||
"source": "/duckduckgo-search",
|
||||
"destination": "/tools/duckduckgo-search"
|
||||
},
|
||||
{
|
||||
"source": "/gemini-search",
|
||||
"destination": "/tools/gemini-search"
|
||||
@@ -1122,6 +1126,7 @@
|
||||
"tools/web-fetch",
|
||||
"tools/web",
|
||||
"tools/brave-search",
|
||||
"tools/duckduckgo-search",
|
||||
"tools/firecrawl",
|
||||
"tools/gemini-search",
|
||||
"tools/grok-search",
|
||||
|
||||
117
docs/tools/duckduckgo-search.md
Normal file
117
docs/tools/duckduckgo-search.md
Normal file
@@ -0,0 +1,117 @@
|
||||
---
|
||||
summary: "DuckDuckGo web search -- key-free fallback provider (unofficial, HTML-based)"
|
||||
read_when:
|
||||
- You want a web search provider that requires no API key
|
||||
- You want to use DuckDuckGo for web_search
|
||||
- You need a zero-config search fallback
|
||||
title: "DuckDuckGo Search"
|
||||
---
|
||||
|
||||
# DuckDuckGo Search
|
||||
|
||||
OpenClaw supports DuckDuckGo as a **key-free** `web_search` provider. No API
|
||||
key or account is required.
|
||||
|
||||
<Warning>
|
||||
DuckDuckGo is an **unofficial, HTML-based** integration. It scrapes
|
||||
DuckDuckGo's non-JavaScript search pages, not an official API or SDK.
|
||||
Expect occasional breakage from bot-challenge pages or HTML changes.
|
||||
Use it as a convenient fallback, not a production-grade provider.
|
||||
</Warning>
|
||||
|
||||
## Quick start
|
||||
|
||||
DuckDuckGo requires no API key. Just set it as your provider:
|
||||
|
||||
```bash
|
||||
openclaw configure --section web
|
||||
# Select "duckduckgo" as the provider
|
||||
```
|
||||
|
||||
Or set the provider directly in config:
|
||||
|
||||
```json5
|
||||
{
|
||||
tools: {
|
||||
web: {
|
||||
search: {
|
||||
provider: "duckduckgo",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
That's it — no keys, no plugin config, no environment variables.
|
||||
|
||||
## How it works
|
||||
|
||||
Unlike API-backed providers (Brave, Perplexity, Tavily), DuckDuckGo search
|
||||
works by:
|
||||
|
||||
1. Sending an HTTP request to DuckDuckGo's non-JavaScript search endpoint
|
||||
2. Parsing the HTML response to extract search results
|
||||
3. Returning structured results with titles, URLs, and snippets
|
||||
|
||||
This approach means:
|
||||
|
||||
- **No API key needed** — works out of the box
|
||||
- **No rate limits from an API plan** — but DuckDuckGo may serve bot-challenge
|
||||
pages under heavy use
|
||||
- **Results may differ** from what you see in DuckDuckGo's full web interface
|
||||
|
||||
## Config
|
||||
|
||||
```json5
|
||||
{
|
||||
tools: {
|
||||
web: {
|
||||
search: {
|
||||
enabled: true,
|
||||
provider: "duckduckgo",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
No `plugins.entries` config is needed — DuckDuckGo has no API key or plugin-specific settings.
|
||||
|
||||
## Supported parameters
|
||||
|
||||
DuckDuckGo search supports the standard `query` and `count` parameters.
|
||||
Provider-specific filters like `country`, `language`, `freshness`, and
|
||||
`domain_filter` are not supported.
|
||||
|
||||
## Limitations
|
||||
|
||||
- **Unofficial integration** — not backed by a DuckDuckGo API or SDK
|
||||
- **Bot-challenge risk** — DuckDuckGo may serve CAPTCHAs or block requests
|
||||
under heavy or automated use
|
||||
- **HTML parsing** — results depend on DuckDuckGo's page structure, which can
|
||||
change without notice
|
||||
- **No advanced filters** — only `query` and `count` are supported
|
||||
- **Best-effort reliability** — treat this as a fallback, not a primary
|
||||
provider for production use
|
||||
|
||||
## When to use DuckDuckGo
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Good for" icon="check">
|
||||
Quick local development, demos, testing, or environments where no API key
|
||||
is available
|
||||
</Card>
|
||||
<Card title="Not recommended for" icon="x">
|
||||
Production gateways, high-volume search, or workflows requiring reliable
|
||||
uptime
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
For production use, consider [Brave Search](/tools/brave-search) (free tier
|
||||
available) or another API-backed provider.
|
||||
|
||||
## Related
|
||||
|
||||
- [Web Search overview](/tools/web) -- all providers and auto-detection
|
||||
- [Brave Search](/tools/brave-search) -- structured results with free tier
|
||||
- [Gemini Search](/tools/gemini-search) -- AI-synthesized answers (also no search-specific key if you have a Gemini key)
|
||||
@@ -49,6 +49,9 @@ returns results. Results are cached by query for 15 minutes (configurable).
|
||||
<Card title="Brave Search" icon="shield" href="/tools/brave-search">
|
||||
Structured results with snippets. Supports `llm-context` mode, country/language filters. Free tier available.
|
||||
</Card>
|
||||
<Card title="DuckDuckGo" icon="bird" href="/tools/duckduckgo-search">
|
||||
Key-free fallback. No API key needed. Unofficial HTML-based integration.
|
||||
</Card>
|
||||
<Card title="Firecrawl" icon="flame" href="/tools/firecrawl">
|
||||
Structured results. Best paired with `firecrawl_search` and `firecrawl_scrape` for deep extraction.
|
||||
</Card>
|
||||
@@ -74,6 +77,7 @@ returns results. Results are cached by query for 15 minutes (configurable).
|
||||
| Provider | Result style | Filters | API key |
|
||||
| -------------------------------------- | -------------------------- | ------------------------------------------------ | ------------------------------------------- |
|
||||
| [Brave](/tools/brave-search) | Structured snippets | Country, language, time, `llm-context` mode | `BRAVE_API_KEY` |
|
||||
| [DuckDuckGo](/tools/duckduckgo-search) | Structured snippets | -- | None (key-free) |
|
||||
| [Firecrawl](/tools/firecrawl) | Structured snippets | Via `firecrawl_search` tool | `FIRECRAWL_API_KEY` |
|
||||
| [Gemini](/tools/gemini-search) | AI-synthesized + citations | -- | `GEMINI_API_KEY` |
|
||||
| [Grok](/tools/grok-search) | AI-synthesized + citations | -- | `XAI_API_KEY` |
|
||||
|
||||
Reference in New Issue
Block a user