鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册

dsh-web-search-ollama

让 DSH 的 web_search 工具走 Ollama 联网搜索 API,复用 OLLAMA_API_KEY,无需 DeepSeek 官方 Key。

网页浏览
访问 GitHub
文档README

dsh-web-search-ollama

让 DeepSeek Harness 的 web_search 工具走 Ollama 的联网搜索 API,无需 DeepSeek 官方 Key,复用你已有的 OLLAMA_API_KEY。


这是什么

DeepSeek Harness 自带的 @deepseek-ai/dsh-web-search-deepseek 只支持 DeepSeek 官方 Anthropic 兼容端点(web_search_20250305 服务端工具),并要求一个 DeepSeek 官方 API key。如果你用 Ollama 跑模型(云端或本地),这个插件让 DSH 的 web_search 工具改走 Ollama Web Search API,认证使用与聊天模型相同的 OLLAMA_API_KEY。

内置 DeepSeek 插件本插件
依赖 KeyDEEPSEEK_API_KEY(DeepSeek 官方)OLLAMA_API_KEY(Ollama)
协议Anthropic Messages + web_search_20250305Ollama REST /api/web_search
适用场景使用 DeepSeek 官方 API使用 Ollama(云/本地)

工作原理

插件在 DSH 的 ctx.web seam 上注册一个 id 为 ollama 的搜索 provider:

  1. 收到 web_search 工具的 query
  2. 以 Authorization: Bearer $OLLAMA_API_KEY 调用 POST https://ollama.com/api/web_search
  3. 将 Ollama 返回的 {title, url, content} 映射为 DSH 标准的 {url, title, snippet} 结果

没有命中时返回空 sources 列表(不是报错),模型会看到"没搜到"而不是"搜索失败"。结果里缺 url 的条目会被丢弃,不会把坏形状传给 seam。

插件不向会话日志写入任何自定义事件(早期版本用 session.append("web/ollama-search-request", ...) 记录请求,会让 harness 的会话解析器拒绝整个日志、导致历史加载失败——已移除)。

安装

1. 添加插件

▼
bash
复制代码
cd $DSH_HOME/profiles/<你的profile> pnpm add dsh-web-search-ollama@github:sryimnoob123/dsh-web-search-ollama # 或本地开发时使用 link: # pnpm add link:/绝对路径/dsh-web-search-ollama

然后将插件加入 profile 的 package.json bundles 列表:

▼
json
复制代码
"dsh": { "profile": { "bundles": [ "...原有 bundle...", "dsh-web-search-ollama" ] } }

2. 安装依赖并配置 web seam(一键)

▼
bash
复制代码
cd $DSH_HOME/profiles/<你的profile> pnpm install # 一键写入 web seam 配置(自动追加 searchProvider: ollama + 禁用内置 DeepSeek 搜索) node node_modules/dsh-web-search-ollama/scripts/install-patch.mjs # 或指定 profile 目录: # node node_modules/dsh-web-search-ollama/scripts/install-patch.mjs C:/Users/你/.dsh-v4lite/profiles/web-desktop # 只检查不写入: # node node_modules/dsh-web-search-ollama/scripts/install-patch.mjs --check

脚本幂等、自动备份、UTF-8 无 BOM 写入(避免手动编辑 YAML 时被工具转坏编码——那会让 searchProvider 配置失效、搜索回落到内置 DeepSeek provider)。

脚本还会设置用户级环境变量 DSH_WEB_SEARCH_PROVIDER=ollama(Windows 用 setx,其他平台提示手动设置)。这是双保险:dsh-web 在 patch 配置缺失时读这个环境变量选 provider,所以即使 cordis.patch.yml 被外部工具写坏,搜索也不会静默回落到内置 DeepSeek provider。

如果不想用脚本,手动在 profile 的 cordis.patch.yml 末尾追加(务必用 UTF-8 无 BOM 保存):

▼
yaml
复制代码
# web seam 选择 ollama provider(覆盖 base 的 deepseek-official) - id: web config: searchProvider: ollama # 禁用 DeepSeek 官方搜索,避免两个 provider 并存(WEB_PROVIDER_AMBIGUOUS) - id: web-search-deepseek disabled: true

3. 配置 API Key

确保 $DSH_HOME/.credentials.yaml 中有:

▼
yaml
复制代码
OLLAMA_API_KEY: <你的Ollama API Key>

4. 重启

重启 DSH 后即可使用。

验证

▼
bash
复制代码
curl https://ollama.com/api/web_search \ -H "Authorization: Bearer $OLLAMA_API_KEY" \ -d '{"query":"what is ollama?"}'

在 DSH 中让模型执行一次联网搜索,应看到结构化来源列表而非报错。

配置项

可在 $DSH_HOME/settings.yaml 的 web-search-ollama: 段覆盖默认值:

▼
yaml
复制代码
web-search-ollama: apiKeyEnv: OLLAMA_API_KEY # 凭据引用(默认 OLLAMA_API_KEY) maxResults: 5 # 每查询最大结果数(默认 5,1-10,超界自动收敛) # baseURL: https://ollama.com/api/web_search
配置项默认值说明
apiKeyEnvOLLAMA_API_KEY凭据引用名
maxResults5每查询最大结果数,范围 1-10(自动 clamp)
timeoutMs30000单次搜索超时(毫秒),超时报 WEB_PROVIDER_ERROR
baseURLhttps://ollama.com/api/web_search端点地址;也可用环境变量 OLLAMA_WEB_SEARCH_BASE_URL 覆盖

available() 只在配置可解析且有凭据来源(字面 key / 环境变量 / credentials 服务)时为 true; 非法 apiKeyEnv 会让 provider 标记为不可用而不是抛错。

切换搜索源

本插件只是注册 ollama 搜索 provider,选不选由配置决定——不会强制任何用户。想换回 DeepSeek 官方搜索:

▼
powershell
复制代码
# 1. 改环境变量(用户级) [Environment]::SetEnvironmentVariable("DSH_WEB_SEARCH_PROVIDER", "deepseek-official", "User") # 或删掉环境变量,让 patch 配置决定: # [Environment]::SetEnvironmentVariable("DSH_WEB_SEARCH_PROVIDER", $null, "User") # 2. 去掉 patch 里对 web-search-deepseek 的禁用(把 disabled: true 删掉) # 3. 重启 DSH

注意 patch 配置优先于环境变量:patch 里写了 searchProvider: ollama 时,环境变量改了也不生效,需要两处一起改。

常见问题

搜索报 no web_search_tool_result blocks

这是把内置 web-search-deepseek 的 baseURL 指向 Ollama 时的典型错误:Ollama 的 Anthropic 兼容端点不会返回 DSH 期望的 web_search_tool_result 块。请按上文安装步骤使用本插件,并清除 settings.yaml 中 web-search-deepseek.baseURL 的覆盖。

报 WEB_PROVIDER_UNAVAILABLE / 搜索不可用

确认 .credentials.yaml 中存在 OLLAMA_API_KEY,且 web 行的 searchProvider 已设为 ollama。

License

MIT

网页浏览

快捷安装

复制到终端去安装插件

dshplugin--profilewebaddgithub:sryimnoob123/dsh-web-search-ollama

温馨提示

装插件等于在本机跑第三方代码,权限与你相同,能读文件、用凭据、访问网络,工具审批管不到。请只装可信来源,并尽量锁定 commit。

站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题
dsh 插件推荐
dsh-chrome-cdp
Chrome DevTools Protocol 插件 for DeepSeek Harness。通过 chromremote-interface 以 CDP 连接并操控 Chrome。连接带有图形界面。
dsh-webmcp
WebMCP 桥接器:让 agent 通过内置无头 Chromium,发现并调用网站按 W3C WebMCP 协议暴露的站点工具。
dsh-web-search-tavily
为原生 web_search 提供 Tavily 搜索后端,并在设置 → 插件中提供 API Key 管理与是否替换 DeepSeek 的开关。
dsh-search-hub
可配置的原生 web_search 后端:在 DeepSeek 官方原生搜索与智谱 GLM web_search 之间切换当前生效入口,并在设置页管理搜索入口与凭证引用。
dsh-web-search-zhipu
GLM(智谱)网页搜索 provider——把 web_search 后端切到智谱 Anthropic 兼容端点的服务端搜索工具,直接复用你现有的 GLM 额度或 Coding Plan,替代 DeepSeek 官方搜索通道,并内置智谱私有响应格式的翻译层。