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

dsh-web-search-glm

智谱 GLM 联网搜索 provider:以 glm 注册到 ctx.web 缝,经 GLM 的 Anthropic 兼容 API 执行原生 web_search 服务端工具(走 Coding Plan 计费)。

网页浏览
访问 GitHub
文档README

dsh-web-search-glm

面向 dsh ctx.web 插缝的智谱 GLM 联网搜索 provider。通过 GLM 的 Anthropic 兼容端点执行原生 web_search_20250305 服务端工具,并把 GLM 的 web_search_prime 结果块映射为规范化的搜索 sources。

工作原理

发出的请求与官方 @deepseek-ai/dsh-web-search-deepseek provider 完全同形:POST {baseURL}/messages,携带 web_search_20250305 服务端工具(由 max_uses 限定次数)、anthropic-version 头、redirect: "error",并完整支持 AbortSignal。

差异全部在响应映射层。GLM 不返回 Anthropic 标准的 web_search_tool_result 块,而是返回自家的一对块:

  • 名为 web_search_prime 的 server_tool_use 块,配对
  • tool_result 块,其 content 是字符串化的 Python repr 搜索结果列表。

provider 按 id 将 server_tool_use 与 tool_result 配对(一次响应内的多次搜索会合并),解析 content(先 JSON.parse,失败则用手写的小型 Python repr 分词器),把每条 {title, link, content} 映射为 {url, title, snippet},并按 url 去重。

若响应中没有可用的结构化搜索结果,搜索以 WEB_PROVIDER_ERROR 失败——不做抓取/摘要兜底,与官方 provider 语义一致。HTTP 非 2xx 时服务端错误消息原文透传(同为 WEB_PROVIDER_ERROR)。其余错误码:无法解析出 API key 时为 WEB_PROVIDER_CREDENTIAL_MISSING,取消时为 WEB_ABORTED。

端点实测行为(2026-08-27 实跑):GLM 不会拒绝无意义查询——照常执行 web search 并返回约 10 条 sources,因此很少走到「无结果」分支;这是端点自身行为,provider 侧没有(也无需)相应配置。该端点的搜索与对话流量一样走 GLM Coding Plan 计费。

安装

从 dsh 插件市场安装(包上架后):

▼
bash
复制代码
dsh plugin --profile <profile> add dsh-web-search-glm

或从本地路径安装:

▼
bash
复制代码
dsh plugin --profile <profile> add /path/to/dsh-web-search-glm

无论哪种方式,都必须显式选择 provider。 dsh-web 从 web 行的 config 读取选择——dsh-base bundle 写死了 deepseek-official,而 ~/.dsh/settings.yaml 里的 web: 节对它不生效。请在 profile 自己的补丁层 ~/.dsh/profiles/<profile>/cordis.patch.yml(在所有 bundle 层之后应用)覆盖:

▼
yaml
复制代码
# ~/.dsh/profiles/web/cordis.patch.yml - id: web config: searchProvider: glm

id 定向 patch 会整体替换目标行的 config——需复述 base 行拥有的全部键(目前只有 searchProvider)。

在启动环境导出 DSH_WEB_SEARCH_PROVIDER=glm 也可以。

若不写这一段,而官方 @deepseek-ai/dsh-web-search-deepseek provider 也已安装且 available,则多个搜索 provider 同时 available(),dsh-web 会抛 WEB_PROVIDER_AMBIGUOUS 而不是猜测。

配置

配置位于 ~/.dsh/settings.yaml 的 web-search-glm 节:

键默认值说明
apiKey—字面 API key(secret)。推荐改用 apiKeyEnv 凭据引用。
apiKeyEnvZAI_API_KEY凭据引用名。与你 dsh settings 中 zai provider 的 apiKeyEnv 保持一致,即可共用同一把已存储的 key。
baseURLhttps://open.bigmodel.cn/api/anthropic/v1Anthropic 兼容端点;/messages 由 provider 拼接。海外部署可指向 https://api.z.ai/api/anthropic/v1。
modelglm-5.3执行原生 web search 的模型。已实测可用——见模型说明。
apiVersion2023-06-01anthropic-version 头的取值。
maxTokens4096Messages 请求生成 token 的上限。
maxUses5每次请求 web_search 服务端工具的最大使用次数。

示例:

▼
yaml
复制代码
# ~/.dsh/settings.yaml —— 插件选项(provider 选择在 profile 补丁层,见「安装」): web-search-glm: apiKeyEnv: ZAI_API_KEY # baseURL: https://api.z.ai/api/anthropic/v1 # 海外端点 # model: glm-5.3-flash # 实测可用的备选,见「模型说明」

凭据解析链。 key 按每次搜索解析,顺序为:web-search-glm 节中设置的字面 apiKey → 凭据服务(经 apiKeyEnv 引用)→ 启动环境中的同名变量。全部解析不到时,搜索以 WEB_PROVIDER_CREDENTIAL_MISSING 失败。

端点环境变量兜底。 若 web-search-glm 节未设置 baseURL,先查启动环境的 GLM_SEARCH_BASE_URL,再落到内置默认值。该变量刻意与任何 chat-completions base URL 变量区分命名——搜索走 Anthropic 兼容 Messages API、有独立地址(对齐上游 DEEPSEEK_SEARCH_BASE_URL 的模式)。

模型说明

  • glm-5.3(默认)——2026-08-27 实测可用:英文、中文查询各返回 10 条 sources,原生 web search 确已执行。
  • glm-5.3-flash——2026-08-27 实测可用:四案例(english / chinese / nonsense / bad-key)行为与 glm-5.3 完全一致,真实搜索确已执行(英文、中文各返回 10 条 sources)。可作为备选——把配置设为 model: glm-5.3-flash 即可。
  • glm-5-flash——该端点上不存在此模型名。每次请求都被服务端以 [1214][modelCode:不存在] 拒绝(以 WEB_PROVIDER_ERROR 呈现)。请勿使用此名称。

包的默认值仍为 glm-5.3;不因 flash 变体可用而更改默认。

兼容性

  • 面向 dsh >= 0.1.1-rc.2 的 dsh 插缝协议(peer 依赖 @deepseek-ai/dsh-* ^0.1.1-rc.2)。
  • MIT License——见 LICENSE。

开发

  • npm test——基于内置 node:test 运行器的解析器单测;无额外 dev 依赖。fixtures 为实抓的 GLM 响应样本,位于 test/fixtures/。
  • npm run capture——一次性实跑抓取,刷新 test/fixtures/(scripts/capture.mjs)。需要 ZAI_API_KEY(回落 ANTHROPIC_AUTH_TOKEN)。
  • npm run smoke——实跑端点的冒烟,四案例(english / chinese / nonsense / bad-key):node scripts/smoke.mjs [model]。需要 ZAI_API_KEY(回落 ANTHROPIC_AUTH_TOKEN)。

live 脚本刻意放在 scripts/ 而非 test/——否则 Node 26 的 node --test 自动发现会在 npm test 时执行它们——且它们不随 npm 包发布。

网页浏览

快捷安装

复制到终端去安装插件

dshplugin--profilewebaddgithub:Noemm/dsh-web-search-glm

温馨提示

装插件等于在本机跑第三方代码,权限与你相同,能读文件、用凭据、访问网络,工具审批管不到。请只装可信来源,并尽量锁定 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-ollama
让 DSH 的 web_search 工具走 Ollama 联网搜索 API,复用 OLLAMA_API_KEY,无需 DeepSeek 官方 Key。
dsh-web-search-tavily
为原生 web_search 提供 Tavily 搜索后端,并在设置 → 插件中提供 API Key 管理与是否替换 DeepSeek 的开关。
dsh-search-hub
可配置的原生 web_search 后端:在 DeepSeek 官方原生搜索与智谱 GLM web_search 之间切换当前生效入口,并在设置页管理搜索入口与凭证引用。