dsh-plugin-verified-search
f0909172434
Verified current-source search workflow for DeepSeek Harness
PROJECT TOPICS
PROJECT README
Multi-provider Web Search / Fetch plugin for DeepSeek Harness.
Supports Tavily, Exa, Firecrawl, Parallel, Brave, You.com, Jina, and SearXNG with provider ordering, automatic fallback, multiple API keys, and quota display.
Uses the native DSH web_search / web_fetch tools.
English | 简体中文
The plugin does not provide shared API keys or a proxy service. Requests go directly from the local DSH Host to each provider.
dsh plugin --profile web add github:A3Boy/dsh-web-tools
Restart dsh web, then open:
Settings → Web Search
Check the plugin:
dsh --profile web --dump-config
Update:
dsh plugin --profile web update dsh-web-tools
Remove:
dsh plugin --profile web remove dsh-web-tools
Currently developed and tested against DeepSeek Harness 0.1.0-rc.6.
| Provider | Search | Fetch | Quota |
|---|---|---|---|
| Tavily | ✅ | ✅ | ✅ |
| Exa | ✅ | ✅ | — |
| Firecrawl | ✅ | ✅ | ✅ |
| Parallel | ✅ | ✅ | coding |
| Brave Search | ✅ | — | ✅ |
| You.com | ✅ | — | ✅ |
| Jina | ✅ | ✅ | Best effort |
| SearXNG | ✅ | — | Self-hosted |
A simple starting point:
| Use case | Try |
|---|---|
| General search | Tavily |
| Semantic / technical search | Exa |
| Search + page content | Firecrawl / Parallel / Jina |
| General Web search | Brave |
| Web / News | You.com |
| Self-hosted | SearXNG |
You do not need to configure every provider.
One provider is enough to use the plugin. Multiple providers enable fallback.
Updated 2026-08-16. Pricing and free tiers may change. Check the provider website for current details.
| Provider | Free / signup credits |
|---|---|
| Tavily | 1,000 credits / month |
| Exa | $20 on signup + $10 / month |
| Firecrawl | 1,000 credits / month |
| Parallel | Up to $80 on signup + $5 / month |
| Brave Search | $5 credits / month |
| You.com | $100 for new accounts |
| Jina | 10M tokens for a new API key |
| SearXNG | Self-hosted, no platform quota |
Recurring monthly free allowances:
Tavily 1,000 credits
Exa $10
Firecrawl 1,000 credits
Parallel $5
Brave $5
Signup / one-time credits:
Parallel up to $80
Exa $20
You.com $100
Jina 10M tokens
Some free tiers require account registration or a payment method. Check the upstream provider rules.
Parallel and You.com also offer separate free MCP Search endpoints. The providers in this plugin currently use their REST APIs and therefore still use API keys.
Set the order in which providers are used:
Tavily → Firecrawl → Exa → Parallel → Brave
The first provider is the default.
Providers in the search chain can be reordered by dragging.
Removing a provider from the chain does not delete its configuration, so it can still be tested manually.
The plugin tries the next provider when the current one has problems such as:
rate limit
timeout
network error
service error
quota exhausted
Example:
Tavily
↓ timeout
Firecrawl
↓
success
If an API key fails authentication and the provider has multiple keys, another available key is tried first.
Each provider can have multiple API keys:
Tavily
├── Key A
├── Key B
└── Key C
The plugin automatically selects an available key.
Keys can be separated by:
newlines
commas
spaces
semicolons
Full API keys are never returned to the browser. The Settings page only receives masked credential information.
Current quota support:
| Provider | Quota |
|---|---|
| Tavily | ✅ |
| Firecrawl | ✅ |
| Brave | ✅ |
| You.com | ✅ |
| Jina | ✅ |
| Exa | — |
| Parallel | coding…… |
| SearXNG | Self-hosted |
For supported providers, quota from multiple API keys is combined.
Example:
Key A: 950 / 1000
Key B: 982 / 1000
Pool: 1932 / 2000
Quota is refreshed in the background with a default 5-minute cache.
Brave quota is read from the X-RateLimit-* information returned by Search and the latest result is saved.
Quota information is only used for display and does not block Search.
The Settings page can run a real search through the configured provider chain.
It shows:
Test Search uses the same provider chain as normal agent searches.
Providers with page-content support:
Tavily
Exa
Firecrawl
Parallel
Jina
A normal flow can be:
web_search
↓
URL
↓
web_fetch
↓
page content
Search and Fetch do not have to use the same provider.
For example:
Brave Search
↓
Parallel Fetch
Supports:
HTTPS_PROXY
HTTP_PROXY
Windows system proxy
Local addresses bypass the proxy by default:
localhost
127.0.0.1
::1
*.local
NO_PROXY is also supported.
SearXNG does not require an API key.
Configure only the instance URL:
http://127.0.0.1:8080
It can be used alone:
SearXNG
or as part of the fallback chain:
Tavily → Exa → Brave → SearXNG
The Web Search page supports:
Follow system
中文
English
The language setting only affects this plugin page.
Install:
npm install
Test:
npm test
Type-check:
npx tsc -p tsconfig.json --noEmit
npx tsc -p tsconfig.client.json --noEmit
Build:
npm run build
Provider adapters are in:
src/host/providers/
See CONTRIBUTING.md for more information.
If the plugin still behaves like an older version after updating and restarting:
cd ~/.dsh/profiles/web
pnpm install
For local development, file: may use a copied snapshot.
Using link: is usually more convenient.
Issues and pull requests are welcome.
New Search Provider suggestions are welcome too.
MIT © A3Boy
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。