dsh-web-search-litellm

前言

DeepSeek Harness (DSH) 采用插件化架构。在使用 ctx.web 绑定进行联网搜索时,开发者常遇到协议不兼容或 API Key 配置错误的问题。dsh-web-search-litellm 插件通过 LiteLLM 代理和 OpenAI Responses 协议,提供了一套标准的 Web 搜索解决方案。

插件简介

这是 DeepSeek Harness ctx.web 的 Web 搜索提供方。它通过 LiteLLM 代理调用 DeepSeek 原生服务端的 web_search 能力,返回带真实来源 URL 的答案。

安装

使用 DSH 官方命令安装插件:

dsh plugin --profile <name> add dsh-web-search-litellm

配置与启用

安装完成后,需在 profile 的配置文件 cordis.patch.yml 中启用该提供方。

  1. 在 cordis.patch.yml 中配置 web 绑定的 searchProvider:
   - id: web
     config:
       searchProvider: litellm-responses
  1. 可选:禁用默认的 Anthropic 协议提供方:
   - id: web-search-deepseek
     disabled: true
  1. 安装后重启 profile 以使配置生效。

核心功能

  • 协议支持:使用 OpenAI Responses 协议(POST {baseURL}/responses),不支持 Anthropic 协议。
  • 密钥复用:复用现有的 LITELLM_API_KEY 凭据,无需配置新的 API Key。
  • 服务端搜索:搜索任务在 DeepSeek 官方服务端执行,不依赖任何第三方搜索服务。
  • 可视化配置:所有设置项可在 Harness 的设置 UI 中完全配置。

配置项说明

该提供方支持以下配置项。未设置的项会从当前活跃的模型配置中自动派生。

配置项 默认值/来源 说明
baseURL 派生($LITELLM_SEARCH_BASE_URL) LiteLLM 代理根地址,请求路径会追加 /responses
apiKeyEnv 派生(LITELLM_API_KEY) 密钥环境变量名称,每次搜索时解析
model 派生(当前活跃模型 ID) 首选的搜索模型 ID
candidateModels 派生(活跃提供方的模型列表) 备选模型池,用于竞速搜索
maxTokens 4096 单次搜索请求的输出 Token 上限
timeoutMs 60000 响应流的连接及空闲超时时间

工作原理

  1. 模型调用 web_search 工具。
  2. 插件向 {baseURL}/responses 发起 POST 请求,携带 tools: [{"type": "web_search"}] 和 stream: true。
  3. LiteLLM 代理将请求转发至 DeepSeek,服务端执行搜索并将结果流式返回。
  4. 插件解析 SSE 流,提取 output_text 作为内容,将 web_search_call 中 action: open_page 的 URL 汇总为 sources。

注意事项

  • 计费:每次搜索消耗一次 DeepSeek 模型调用。
  • 会话兼容性:插件不追加自定义会话事件,以确保与旧版本 Harness 的兼容性。
  • 结果格式:DeepSeek 文档未明确支持结构化 include 字段,因此结果仅包含 URL,不包含标题和摘要。
  • 权限:插件作为当前 DSH 进程运行,安装前建议检查源码与许可证。

生态信息

  • 维护者:yunxiyang
  • 许可:MIT
  • 仓库:https://github.com/yunxiyang/dsh-web-search-litellm
  • 目录:https://www.skillhub.cn/plugins/yunxiyang/dsh-web-search-litellm
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜