前言¶
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 并重新安装以触发更新。