Introduction¶
A common issue when configuring DeepSeek Harness (DSH) with Trae credits or WorkBuddy credits is: model chat works normally, but web_search keeps returning 401 errors. This happens because DSH’s built-in search module only accepts a DEEPSEEK_API_KEY, which does not exist in credit-based configurations.
The dsh-web-search-nokey plugin fixes this issue by registering a credential-free WebSearchProvider on ctx.web and forwarding queries directly to public search pages.
Overview¶
- Name: dsh-web-search-nokey
- One-liner: Keyless web search for DeepSeek Harness
- Author: a1435473620
- Category: Web tools
- License: MIT
Core Features¶
- Keyless search: No API key configuration is required; it calls public search interfaces directly.
- Fixes 401 errors: Specifically resolves the issue where
web_searchreturns 401 under Trae / WorkBuddy credit configurations. - Multiple backend support: Uses Bing RSS, Bing HTML, and 360 Search as search backends.
- Environment variable support: Parameters can be configured via environment variables prefixed with
DSH_WEB_SEARCH_NOKEY_*. - Proxy support: Proxies can be configured through a config file or environment variables.
Installation¶
Install it using DSH’s plugin command. It takes effect immediately after installation without modifying configuration or restarting.
dsh plugin --profile web add github:a1435473620/dsh-web-search-nokey
After installing on npm, you can also use the short name:
dsh plugin --profile web add dsh-web-search-nokey
Uninstall:
dsh plugin --profile web remove dsh-web-search-nokey
Configuration and Usage¶
Call web_search directly, and requests will be automatically routed to this plugin.
The plugin package includes cordis.patch.yml, which pins web.searchProvider to this plugin to prevent conflicts with DSH’s built-in backend from causing search failures.
Usually, no configuration changes are required. If adjustments are needed, you can edit cordis.patch.yml in the profile (or set environment variables instead):
| Field | Default | Description |
|---|---|---|
engines |
bing-rss, bing-html, so360 |
Backend order, i.e., fallback order |
maxResults |
8 |
Maximum number of search results per request |
timeoutMs |
12000 |
Timeout for a single upstream request |
proxy |
empty | Fill in when a proxy is required, for example http://127.0.0.1:7897 |
The environment variable override format is DSH_WEB_SEARCH_NOKEY_ plus the configuration item name (for example, DSH_WEB_SEARCH_NOKEY_PROXY). System environment variables HTTPS_PROXY / HTTP_PROXY are also supported.
Notes¶
- 360 Search behavior: 360 Search results are redirect shells, meaning a click is required to reach the actual page. It is only used as a fallback backend.
- Missing dates: Most results do not include a publication date (Bing RSS returns fetch time rather than publication time), so older pages may appear more recent.
- Rate-limit risk: This uses public search pages, not an official API. Excessive usage may be rate-limited. Logs record
engine=xxx failedand the plugin automatically switches backends. - Zero dependencies: No extra tools or UI are included, and it does not depend on any external libraries.
Conclusion¶
For DSH users who use Trae or WorkBuddy credits, this is a practical solution to web_search 401 errors. It does not add extra features; it focuses on solving the core pain point: searching without an API key.