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 /responsesrequest carrying the nativeweb_searchtool. - Citable sources:
web_search_call.search_results[]structured results, or message-levelurl_citationannotations 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.
- Open dsh Web Settings and go to the ‘Web Search’ card under ‘Search’.
- 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. - Switch the
searchProviderof the web channel toopenai. You can setweb.searchProviderin the profile’scordis.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_ERRORoccurs 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