deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
Brave Search API-backed web search provider for DeepSeek Harness (dsh). It registers a WebSearchProvider into the ctx.web seam, so the built-in web_search tool works out of the box when you have a Brave Search API key.
Requires BRAVE_API_KEY from brave.com/search/api.
From npm (recommended):
dsh plugin --profile web add @deads-inc/dsh-web-search-brave
export BRAVE_API_KEY=<your-key>
From this repo:
git clone https://github.com/ChrisDeadman/dsh-web-search-brave.git
cd dsh-web-search-brave
export BRAVE_API_KEY=<your-key>
bash install.sh
Restart dsh web. Verify the provider is active:
dsh --profile web --dump-config | grep -A3 brave
brave-search provider on the ctx.web seam.apiKey in the config (not recommended).BRAVE_API_KEY credential stored in the DSH credentials service.BRAVE_API_KEY env var at launch time.Retry-After, backs off with exponential + jittered backoff (capped at 30s), up to 3 attempts.All options are optional; sensible defaults are used.
| Option | Env / Config Key | Default | Notes |
|---|---|---|---|
| API key | BRAVE_API_KEY |
— | Required. |
| API base URL | BRAVE_SEARCH_BASE_URL |
https://api.search.brave.com/res/v1/web/search |
Override for proxies or testing. |
| Throttle (ms) | — | 1500 | Min gap between outbound requests. |
| Max attempts | — | 3 | Retries on 429/403 before failing. |
The plugin registers brave-search but does not forcibly enable it. To use it as your search backend, add this to your profile's cordis.patch.yml:
- id: web
config:
searchProvider: brave-search
bash install.sh does this automatically for you.
BRAVE_API_KEY is only ever sent to the configured baseURL (default: Brave's official endpoint).baseURL is an escape hatch for proxies or testing; use it deliberately. The plugin does not validate the URL's domain.This package is plain ESM with no build step and no runtime dependencies —
everything it imports (@deepseek-ai/*) is provided by the host DSH install
as peer dependencies.
To test a local change, run bash install.sh, then in a fresh terminal:
# 1. Confirm the bundle is wired into the composed profile config:
dsh --profile web --dump-config | grep -A3 brave
# 2. (Optional) Import the module directly. This needs the profile's
# node_modules to already carry the @deepseek-ai/* peers (a web profile
# that has any dshmarket package does). It fails harmlessly otherwise —
# dsh itself always resolves the peers from its own installation at boot:
node --input-type=module -e "
const m = await import('@deads-inc/dsh-web-search-brave');
if (typeof m.apply !== 'function' || m.name !== 'web-search-brave') throw new Error('bad module');
console.log('OK: exports:', Object.keys(m).join(', '));
"
# 3. With BRAVE_API_KEY set, run a real end-to-end search:
dsh --profile web "Use web_search to find one page about Node.js 24. Reply with just the URL."
See AGENTS.md for guidance for AI coding agents working on this repo.
MIT.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。