前言¶
DeepSeek Harness (DSH) 採用插件化架構,接入智譜 BigModel 的能力(搜索、閱讀、視覺)通常需要分散的配置。dsh-zhipu 將這些能力整合到一個插件中,通過一把 ZAI_API_KEY 提供統一的入口,服務於 DSH 的 web 和 headless profile。
核心功能¶
該插件提供以下能力:
- 聯網搜索:集成
web_search_primeMCP,提供zhipu-prime引擎支持。 - 網頁閱讀:集成
webReaderMCP,支持服務端渲染(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 進程即可生效。
前置配置¶
- API Key:確保
~/.dsh/.env中配置了ZAI_API_KEY(智譜 GLM Coding Plan 的 key)。 - 圖片輸入聲明:在
~/.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 編碼問題,插件已做容錯處理。
- 視覺功能必須走 Coding Plan 端點(默認
- 貼圖識別:
- 鉤子會將圖片轉換爲文本描述,替換原始圖片塊。
- 帶有
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 並重新安裝以觸發更新。