vision-subagentlisted
Install: claude install-skill OrinVoss/dsh-math-team
# 视觉子代理(Vision Sub-agent)
当**主模型不支持图像输入**(`read_image` 会拒读,如纯文本模型)时,用 **`workflow` 派生一个指定视觉模型的子代理**来"看"图——它可以用 `read_image` 读取图片,再根据你的要求描述内容或审查质量并返回结论。
本 skill 是**全局可用**的看图方案,任何预设/会话/项目都可加载,不限定业务场景。
## 触发条件(先判断,再决定用不用本 skill)
**先试一下**:直接调 `read_image`,或查 `llm.resolveModelInfo(provider, model)` 的 `inputModalities`。
- ✅ **主模型支持图像**(`inputModalities` 含 `image`)→ **直接 `read_image` 读图即可,不必派子代理**(更快、少一层)。注意能力靠配置声明——若报 `does not declare image input`,先按本文末"图像能力靠配置声明"排查,可能只是配置漏声明。
- ❌ **主模型不支持图像**(`read_image` 拒读)→ 用本 skill 派生视觉子代理来看图。
- 🔀 **仍值得用子代理的两种情形**:① 想要**独立/隔离的看图结论**(不让主模型既产出又自查);② 想用**更便宜的视觉模型**替代主模型读图。
## 原理
DeepSeek Harness 的 `workflow` 工具允许在 `agent()` 上独立指定 `provider` 与 `model`。只要选一个**当前部署里真正支持图像输入的模型**(其 `inputModalities` 含 `image`),派生的子代理就能用 `read_image` 读取并处理图片。
不同部署注册的视觉模型名可能不同,**不要硬编码模型名**,应先探测。
## 如何找可用的视觉模型
用 `llm` 服务遍历各 provider 的模型,过滤出 `inputModalities` 含 `image` 的:
```js
// 思路:遍历 provider -> resolveModelInfo -> 过滤 inputModalities 含 'image',得到 { provider, model }
const vision = /* inputModalities 含 'image' 的 {provider, model} */
await agent(prompt, { provider: vision.provider, model: vision.model })
```
**成本优先(重要)**:识图/看图是高频、轻量任务,**优先选择便宜的经济型视觉模型,不要使用贵的大模型**。具体原则:
- **首选**:`deepseek-official/deepseek-flash`(DeepSeek V4.1 Flash,官方"快·高效·经济"定位,text+image)、`kimi-coding/kimi-for-coding`(K2.7 Code)、`kimi-coding/kimi-for-coding-highspeed` 等经济型视觉模型。
- **避免**:`kimi-coding/k3`、`k3-256k` 这类旗舰/大上下文模型——识图不需要它们的强推理与长上下文,成本不划算。除非便宜模型全部不可用且任务确需更强能力,才考虑它们。
- 换部署后先探测:按