针对DSH:添加第三方模型时,模型被默认没有视觉能力的问题(DeepSeek Harness小完善计划其三)(DSH视觉封禁解禁)
August 20, 2026 · View on GitHub
DSH: Vision-Capable Models Blocked from Image Input by Default (DeepSeek Harness Improvement Plan, Part 3 — Vision Unblock)
DSH(DeepSeek Harness)模型视觉能力开启技能(Agent Skills 标准格式)。
A DSH (DeepSeek Harness) vision capability unblock skill (Agent Skills standard format).
中文文档
技能标识:
03-vision-input| 系列:DeepSeek Harness 小完善计划(其一:上下文窗口 · 其二:思考强度调节)
这是什么
一个符合 Agent Skills 标准(SKILL.md + YAML frontmatter + references/ 渐进披露)的独立技能仓库。它告诉 AI:当模型本身支持图像输入、但 DSH 的 read_image 工具报 "does not declare image input" 时,如何通过配置声明(模型条目 input 含 image)开启视觉能力——以及开启前如何查证、模型没有视觉时如何兜底。
项目目的
DSH 0.1.0-rc.7 手工接入第三方模型时,能力闸门默认按声明拦截图像输入:即使模型本身支持视觉,read_image 也会报 "does not declare image input",图片在发送前就被拒绝。
本仓库是一个 Agent Skill——给 AI 看的"维修手册",不是可执行软件。AI 读完 SKILL.md 后,即可按规程自行查证模型能力并修复 settings.yaml(在模型条目声明 input 含 image,保存即生效)。
⚠️ 前置铁律:先查证模型确实支持视觉,再声明。高估的代价大于低估——高估会让会话反复重发一个必败的请求(详见
SKILL.md的"核心原理")。
症状速查
出现以下任一现象,本技能适用:
read_image报错:model "<模型id>" does not declare image input- 模型本身支持看图,但 DSH 在发送前拒绝发图(能力闸门拦截)
- 消息含图片时适配器报
UNSUPPORTED_CONTENT
仓库结构
03-vision-input/
├── SKILL.md # 技能入口(AI 读这个)
├── README.md # 仓库说明(人读这个)
├── AGENTS.md # 维护守则(给维护本仓库的 AI 看)
└── references/
├── deep-dive.md # 闸门源码、查证细节、无视觉兜底方案、排障表
└── examples.yaml # 完整配置示例
使用方法
-
安装:把本目录整体放入 AI 的 skills 目录(各 AI 的 skills 目录位置不同,按其文档放置;也可以是项目级技能目录)。
-
触发:对 AI 描述症状或直接贴报错,例如:
read_image读图时报错:model "<模型id>" does not declare image inputAI 识别到"模型未声明图像输入"类症状后会自动加载
SKILL.md。 -
AI 会做什么(按
SKILL.md规程):- 查证模型视觉能力(本机 pi-ai 内置目录 / 官方文档);
- 定位
settings.yaml(跨平台路径见SKILL.md); - 在对应模型条目声明
input: [text, image](保存即生效,无需重启); - 提示验证:用
read_image读任意 jpg/png,模型能"看图说话"即成功。
-
用户要配合什么:
- 审批提升权限:
settings.yaml在工作区外,写入需提升权限并经你审批; - 确认网关透传:中转站网关必须透传图片消息——闸门过了 ≠ 能看图;
- 改完自行备份:通过 DSH 界面改供应商设置可能重写配置、抹掉手工加的字段;
- 模型真没视觉时:参考
references/deep-dive.md的兜底方案(OCR / PPT 整图提取 / 时间轴对齐)。
- 审批提升权限:
版本基线
内容基于 DSH 0.1.0-rc.7 + @earendil-works/pi-ai 0.82.1(2026-08 实战验证)。DSH 升级后字段名可能变化,请按 references/deep-dive.md 的源码定位入口重新核实并更新 frontmatter 的 metadata.baseline。
许可
本文档以 CC BY 4.0 协议发布(署名 4.0 国际)。引用、转载、二次创作请保留署名:xiaohui5206。
English
Skill ID:
03-vision-input| Series: DeepSeek Harness Improvement Plan (Part 1: Context Window · Part 2: Reasoning Effort)
What This Is
A standalone skill repository following the Agent Skills standard (SKILL.md + YAML frontmatter + progressive disclosure via references/). It tells the AI: when a model natively supports image input but DSH's read_image tool reports "does not declare image input", how to enable vision capability through a config declaration (image in the model entry's input) — plus how to verify capability beforehand, and what to fall back on when the model has no vision.
Project Purpose
When manually integrating third-party models in DSH 0.1.0-rc.7, the capability gate blocks image input by default based on declarations: even when a model natively supports vision, read_image reports "does not declare image input" and the image is rejected before it is ever sent.
This repository is an Agent Skill — a "repair manual" written for AI, not executable software. After reading SKILL.md, the AI follows the procedure to verify model capabilities and fix settings.yaml on its own (declare image in the model entry's input; takes effect on save).
⚠️ Iron rule: verify that the model truly supports vision before declaring it. Over-declaring costs more than under-declaring — over-declaring makes the session repeatedly resend a doomed request (see "Core Mechanism" in
SKILL.md).
Symptom Quick Reference
This skill applies when any of the following occurs:
read_imageerrors:model "<model-id>" does not declare image input- The model natively supports image input, but DSH refuses to send images before the request (capability gate interception)
- The adapter reports
UNSUPPORTED_CONTENTwhen a message contains an image
Repository Structure
03-vision-input/
├── SKILL.md # Skill entry point (read by the AI)
├── README.md # Repository overview (read by humans)
├── AGENTS.md # Maintenance rules (for AIs maintaining this repo)
└── references/
├── deep-dive.md # Gate source code, verification details, no-vision fallback workarounds, troubleshooting table
└── examples.yaml # Complete config examples
How to Use
-
Install: Copy this entire directory into your AI's skills directory (locations vary by AI — follow its documentation; a project-level skills directory also works).
-
Trigger: Describe the symptom to the AI or paste the error directly, e.g.:
read_imagefails with:model "<model-id>" does not declare image inputThe AI loads
SKILL.mdautomatically once it recognizes an "image input not declared" symptom. -
What the AI does (per the
SKILL.mdprocedure):- Verify the model's vision capability (local pi-ai built-in catalog / official docs);
- Locate
settings.yaml(cross-platform paths inSKILL.md); - Declare
input: [text, image]on the model entry (takes effect on save, no restart needed). Note: declareinputonly — in0.1.0-rc.7,inputModalitiesis not a config key; writing it is silently ignored; - Prompt verification: read any jpg/png with
read_image; success means the model starts describing the image.
-
What you need to do:
- Approve elevated permissions:
settings.yamllives outside the workspace; writing requires elevation and your approval; - Confirm gateway passthrough: the relay gateway must pass image messages through — passing the gate ≠ being able to see images;
- Back up after editing: changing provider settings via the DSH UI may rewrite the config and silently remove hand-added fields;
- If the model truly has no vision: see the fallback workarounds in
references/deep-dive.md(OCR / PPT full-slide image extraction / timeline alignment).
- Approve elevated permissions:
Version Baseline
Content is based on DSH 0.1.0-rc.7 + @earendil-works/pi-ai 0.82.1 (verified in practice, 2026-08). Field names may change after DSH upgrades; re-verify against the source-code entry points in references/deep-dive.md and update metadata.baseline in the frontmatter.
License
This document is released under CC BY 4.0 (Attribution 4.0 International). Please keep the attribution when quoting, reposting, or creating derivatives: xiaohui5206.