herminger/dsh-web-search-responses ↗★ 0
dsh-web-search-responses
DSH ctx.web search provider that reuses the conversation model's OpenAI Responses web_search tool
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:herminger/dsh-web-search-responses说明文档
阅读完整 README ↗dsh-web-search-responses
让 DSH 的 web_search 工具改走“会话模型自己的 OpenAI Responses 内置 web_search”,而不是 DSH 自带的 Anthropic Messages 搜索链路(web-search-deepseek)。
为什么需要它
DSH 的 web_search 是独立于会话模型的一条链路:dsh-tool-web → ctx.web.search() → 已注册的搜索提供方。自带的 web-search-deepseek 只会向 Anthropic 兼容的 /messages 端点发送 web_search_20250305,所以即使你的 cpa 自定义模型走 Responses 且支持内置 web_search,DSH 也不会自动复用。光改 settings.yaml 做不到;需要一个注册进 ctx.web 的 Responses 搜索提供方。
这个插件就是那个提供方。默认情况下它会自动跟随当前会话的模型:
- provider/model 取当前 agent 正在用的模型;
- baseURL、apiKeyEnv、api 从
llm-pi-ai的对应路由读取(也就是你 Models 页面里配置的cpa); - 你也可以用
provider、model、baseURL、apiKeyEnv显式覆盖。
快速试用(不改安装)
先编辑 overlay.patch.yml:把里面 name: 的值改成你机器上 index.mjs 的绝对路径(DSH 解析相对路径时是相对于 profile 目录,不是相对于 overlay 文件)。然后运行:
dsh --profile web --port 3081 --patch /绝对路径/overlay.patch.yml
--port 3081 是为了避开 3080 端口被另一个 dsh 实例占用的情况;没有占用时可以去掉。
如果自动跟随没生效(例如当前模型不是 llm-pi-ai 的 Responses 路由),把 overlay.patch.yml 里的 # provider: cpa 取消注释,改成你的路由名。
正式安装(推荐)
在插件目录里执行:
dsh plugin --profile web add .
安装后无需额外配置:DSH 会把 web.searchProvider 切成 responses-web,并停用自带的 DeepSeek 搜索提供方。
注意:dsh plugin 需要 pnpm 在 PATH 上;如果没装 pnpm,直接用上面的 --patch 快速方式即可。
如果以后想显式固定路由,编辑 $DSH_HOME/profiles/web/cordis.patch.yml:
- id: web-search-responses
config:
provider: cpa
# model: your-model
# baseURL: https://your-gateway/v1
# apiKeyEnv: CPA_API_KEY
配置项
| 字段 | 含义 | 默认 |
|---|---|---|
provider | 复用的 llm-pi-ai 路由名 | 当前 agent 的 provider |
model | 搜索请求使用的模型 | 当前 agent 的 model |