dsh-zhipu: 智譜 BigModel 全家桶插件

前言

DeepSeek Harness (DSH) 採用插件化架構,接入智譜 BigModel 的能力(搜索、閱讀、視覺)通常需要分散的配置。dsh-zhipu 將這些能力整合到一個插件中,通過一把 ZAI_API_KEY 提供統一的入口,服務於 DSH 的 web 和 headless profile。

核心功能

該插件提供以下能力:

  • 聯網搜索:集成 web_search_prime MCP,提供 zhipu-prime 引擎支持。
  • 網頁閱讀:集成 webReader MCP,支持服務端渲染(SSR),不直接訪問目標 URL。
  • 視覺理解:提供 vision_analyze 工具,基於 GLM-4.6V 模型。
  • 貼圖識別:通過 agent/pre-step 鉤子,將對話中的貼圖自動轉換爲文字描述。

安裝與啓用

使用以下命令安裝插件:

dsh plugin --profile web add github:<you>/dsh-zhipu

安裝後,需將包名加入 profile 的 bundle 列表(例如 ~/.dsh/profiles/web/package.json):

"dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-zhipu"] } }

插件通過 cordis.patch.yml 自動配置搜索、閱讀和視覺工具。重啓 dsh web 進程即可生效。

前置配置

  1. API Key:確保 ~/.dsh/.env 中配置了 ZAI_API_KEY(智譜 GLM Coding Plan 的 key)。
  2. 圖片輸入聲明:在 ~/.dsh/settings.yaml 中,爲聊天模型聲明支持圖片輸入,否則貼圖鉤子無法介入:
llm-pi-ai:
  providers:
    zai-coding-cn:
      models:
        - id: glm-5.3
          input: [text, image] # 關鍵配置

功能說明

  • 搜索與閱讀:
    • 出站請求僅指向 open.bigmodel.cn。
    • 搜索結果與官方搜索同源,不可直接作爲事實引用。
    • web_fetch 工具會抓取目標頁面內容,URL 會記錄在智譜側。
  • 視覺分析:
    • 視覺功能必須走 Coding Plan 端點(默認 codingBaseURL),按量端點會報 429 錯誤。
    • MCP 響應中的 content[0].text 存在雙重 JSON 編碼問題,插件已做容錯處理。
  • 貼圖識別:
    • 鉤子會將圖片轉換爲文本描述,替換原始圖片塊。
    • 帶有 attachmentId 前綴的描述是會話日誌中的唯一事實。
    • 若描述失敗,會保留原始圖片塊(誠實失敗)。

配置覆蓋

可通過覆蓋 cordis.patch.yml 調整行爲:

# ~/.dsh/profiles/<name>/cordis.patch.yml
- id: zhipu
  config:
    apiKeyEnv: ZAI_API_KEY
    enableTool: false    # 關閉 vision_analyze
    enablePreStep: false # 關閉貼圖鉤子
    passthroughModels: [] # 原生喫圖的模型列表

數據與已知行爲

  • 數據外發:搜索詞、目標 URL、圖片字節(base64)均發送至 open.bigmodel.cn;圖片字節不落盤、不進會話日誌。
  • 搜索限制:search_pro 引擎忽略 count 參數,固定返回 10 條,按 maxResults 截斷並標記 truncated: true。
  • 會話恢復:含圖片的舊會話在純文本模型下會報錯,需使用 vision_analyze 配合 attachmentId 重新分析。

開發與測試

提供測試腳本以驗證功能(約消耗 3 次額度):

node "$env:USERPROFILE\.dsh\plugins\dsh-zhipu\test\smoke.mjs" web

修改代碼後需刪除舊的 node_modules 並重新安裝以觸發更新。

羽毛球分组比赛记分
小程序二维码

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

小夜