DeepSeek Harness plugin

dsh-web-search-responses

DSH ctx.web search provider that reuses the conversation model's OpenAI Responses web_search tool

Jump to install

Source facts

Repository
herminger/dsh-web-search-responses
Latest update
Aug 14, 2026
Category
Docs & Rendering
GitHub stars
1
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/herminger/dsh-web-search-responses
Plugin: dsh-web-search-responses
Author: herminger

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer4 files
README.mdSource · read only
README language

dsh-web-search-responses

A DeepSeek Harness (DSH) ctx.web search provider that reuses the conversation model's OpenAI Responses built-in web_search tool, instead of DSH's built-in Anthropic Messages search provider.

Why

DSH's model-facing web_search goes through dsh-tool-webctx.web.search() → a registered search provider. The shipped web-search-deepseek provider only speaks the Anthropic-compatible /messages API with web_search_20250305, so a custom model whose Responses endpoint supports built-in web_search cannot be reused by configuration alone.

This plugin registers a provider (responses-web) that sends a Responses API request to the same endpoint the conversation model uses, with:

{
  "tools": [{ "type": "web_search" }],
  "tool_choice": { "type": "web_search" }
}

It parses the web_search_call item and message citations back into DSH's standard WebSearchResult.

Install

From GitHub (recommended)

Requires pnpm on PATH:

dsh plugin --profile web add github:herminger/dsh-web-search-responses

If you previously installed a local link copy and want to switch to the GitHub source:

dsh plugin --profile web remove dsh-web-search-responses
dsh plugin --profile web add github:herminger/dsh-web-search-responses

From a local checkout

dsh plugin --profile web add /path/to/dsh-web-search-responses

Quick test without pnpm (keep overlay.patch.yml next to index.mjs, or use an absolute path):

dsh --profile web --patch /path/to/overlay.patch.yml

Then fully restart dsh web so the new bundle loads.

Configuration

The provider auto-follows the current model by default:

  • provider/model come from the executing agent, the DSH default model, or the single configured llm-pi-ai Responses route
  • baseURL, apiKeyEnv, and api come from that route's llm-pi-ai settings

To pin a route explicitly, edit the profile's cordis.patch.yml:

- id: web-search-responses
  config:
    provider: cpa
FieldMeaningDefault
providerllm-pi-ai route to reusecurrent model route
modelmodel for the search requestcurrent model
baseURLResponses endpoint prefix (/responses is appended)route baseURL
apiKeyEnvcredential reference, e.g. CPA_API_KEYroute apiKeyEnv
includeSourcessend include: ["web_search_call.action.sources"]false
searchContextSizelow / medium / highunset
toolChoice{ type: "web_search" } or "required"{ type: "web_search" }
maxOutputTokensoutput token cap for the search request4096

Troubleshooting

  • configured web provider "responses-web" is registered but unavailable — the plugin's config was parsed as YAML null (empty config:). Update to the latest index.mjs, which normalizes config ?? {}, and restart DSH.
  • Responses API returned no web_search_call item — the endpoint/model does not actually support the built-in web_search tool.
  • no API key for "..." — check the route's apiKeyEnv and the credential stored in DSH.

Chinese docs: README.zh.md