Introduction

When building agent workflows in DSH, web search typically needs to be mounted to a specific provider. If your search backend wants to use the OpenAI Responses API’s server-side retrieval but you don’t want to modify the DSH source code, here is a DSH plugin: flg1217/dsh-web-search-openai.

Overview

dsh-web-search-openai is a DSH plugin maintained by flg1217, used to register an OpenAI Responses API-driven web_search provider for dsh’s ctx.web. It integrates the OpenAI Responses API’s web_search tool into the DSH web search channel, providing search results and citable sources; licensed under MIT.

Core Features

First, here are a few verified capabilities:

  • Register an OpenAI Responses API-driven search provider with ctx.web.
  • Server-side retrieval: Each search call sends a POST /responses request carrying the native web_search tool.
  • Citable sources: web_search_call.search_results[] structured results, or message-level url_citation annotations as a fallback, are unified into citable sources.
  • Web Settings Card: Configurable endpoint, model, API Key, max output tokens, and retrieval context; API Key is written but not echoed back.
  • Hot-swappable assembly: Integrated via profile bundle patch, registerSearchProvider, and client slot, without modifying the DSH source code.

Installation and Enablement

First, confirm the version requirements:

dsh >= 0.1.0-rc.6

The lib/ directory has been committed to the repo, so no local build is required. Run the following command to install the plugin into the web profile:

dsh plugin --profile web add <本仓库目录>

After installation, restart dsh web for the bundle layer to load the plugin.

Typical Usage

After enabling, prepare the configuration first, then switch the provider.

  1. Open dsh Web Settings and go to the ‘Web Search’ card under ‘Search’.
  2. Fill in the endpoint, model, and API Key; you can also leave the API Key blank to let the plugin read the environment variable OPENAI_API_KEY.
  3. Switch the searchProvider of the web channel to openai. You can set web.searchProvider in the profile’s cordis.patch.yml, or switch it in the settings panel.

The default values are as follows:

Config Item Default Value
Endpoint https://api.openai.com/v1
Retrieval Path /responses (automatically appended)
Model gpt-5.6-luna
Max Output Tokens 2048
Retrieval Context medium

Following the steps above, dsh’s web search can utilize the OpenAI Responses API’s web_search tool and normalize the returned sources into citable sources.

Use Cases and Notes

Suitable for developers who want to switch the search backend of a specific web channel to the OpenAI Responses API within a plugin-based DSH search pipeline.

Usage notes:

  • The plugin runs with the current dsh process permissions. It is recommended to check the source code and license before installing.
  • The API Key is written but not echoed back in the settings card.
  • If the settings card save fails, check the endpoint accessibility and API Key validity.
  • If a WEB_PROVIDER_ERROR occurs during search, it indicates that the OpenAI gateway returned a non-2xx status.
  • If the settings card does not appear, confirm that the bundle layer has loaded and restart dsh web.

Conclusion

The value of dsh-web-search-openai is concrete: it adds a configurable OpenAI Responses API web_search provider to DSH web search without modifying the source code, handling source citations and the settings card. The directory page and source code entry are as follows:

  • Community Directory: https://www.skillhub.cn/plugins/flg1217/dsh-web-search-openai
  • GitHub: https://github.com/flg1217/dsh-web-search-openai