vision-subagent · diff
git:20260822.6d41464 to git:20260822.d100f0f
7 added, 8 removed. Audit A to A.
---
name: vision-subagent
description: 视觉子代理。当主模型不支持图像输入时,用 workflow 派生一个指定当前环境可用视觉模型的子代理,通过 read_image 查看或核验图片内容并结构化返回结论。适用于"需要看图、但主模型读不了图"的任何会话。
---
# 视觉子代理(Vision Sub-agent)
当**主模型不支持图像输入**(`read_image` 会拒读,如纯文本模型)时,用 **`workflow` 派生一个指定视觉模型的子代理**来"看"图——它可以用 `read_image` 读取图片,再根据你的要求描述内容或审查质量并返回结论。
本 skill 是**全局可用**的看图方案,任何预设/会话/项目都可加载,不限定业务场景。
## 触发条件
- 主模型 `read_image` 报错拒读(如 `deepseek-v4-flash` 不声明图像输入)
- 需要查看某张图片的实际内容、核对图片质量、或基于图片内容做判断,但主模型看不了
## 原理
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 })
```
已验证候选(示例):`opencode-go/mimo-v2.5`、`kimi-coding/k3`、`kimi-coding/k3-256k`(均 text+image)。
## 用法模板
用 workflow 派发看图子代理(`provider`/`model` 替换为探测到的可用视觉模型):
```js
await agent(
'用 read_image 工具读取 <图片绝对路径>,然后完成任务:<你的具体诉求,如描述内容 / 审查质量 / 判断是否达标>,并结构化返回结论。',
{ provider: '<探测到的provider>', model: '<探测到的视觉 model>' } // 指定视觉模型
)
```
> 把"任务诉求"填进 prompt,子代理会先看图,再按你的要求输出。例如:描述图里有什么、检查是否有空白/遮挡/文字重叠、核验图与某条结论是否一致等。
## 输出约定(建议)
按需要求子代理给出结构化结果,例如:
- **内容描述**:图中关键元素、布局、文字/标题等
- **质量核验**:是否空白、模糊、遮挡/重叠、要素缺失
- **目标核对**:图是否支撑它要支撑的结论或任务
- **判定**:`PASS` / `FAIL`,FAIL 时给原因与改进建议
## 复验闭环(FAIL → 修改 → 重审,强制)
- **图像审核不通过后,必须进入"修改-重审"循环,直到 PASS,才算完成。** 不得"审一次出个 FAIL 就当作已质检"。
+ **图片核验不通过后,必须进入"修改-重审"循环,直到 PASS,才算完成。** 不得"审一次出个 FAIL 就当作已核验"。
规则:
- 1. **FAIL 即回退**:子代理返回 `FAIL` 时,按它给出的缺陷与改进建议回到产出方(画图者/生成者)修改图片。
- 2. **修改后必须重审**:每次修改后,重新派发识图子代理对**同一张图(或新版本图)完整复审一遍**,不能只让产出方自称"改好了"。
- 3. **循环直至 PASS**:复审 `FAIL` 则继续"修改 → 重审",直到 `PASS` 为止;每次重审都记录结论(哪版图、审了什么、结果)。
- 4. **有界兜底**:允许的最大重审轮次由业务方定(如 ≤3 轮);超限仍不 PASS 时,如实标记"该图多次修改未通过审检,存在持续缺陷",不得降级成"视为通过"。
- 5. **记录留痕**:把每次"FAIL 原因 → 修改动作 → 重审结果"写进审查记录(如 `评审记录.md`),供追踪与验收。
+ 1. **FAIL 即回退修改**:子代理返回 `FAIL` 时,按它给出的缺陷与改进建议,把图片退回给制作/修改图片的一方进行修改。
+ 2. **修改后必须重审**:每次修改后,重新派发识图子代理对**修改后的图完整复审一遍**,不能只让修改方自称"改好了"。
+ 3. **循环直至 PASS**:复审 `FAIL` 则继续"修改 → 重审",直到 `PASS` 为止;每次重审都记录结论(哪一版图、审了什么、结果)。
+ 4. **有界兜底(可选)**:可约定最大重审轮次(如 ≤3 轮);超限仍不 PASS 时,如实标记"多次修改未通过核验,存在持续缺陷",不得降级成"视为通过"。
+ 5. **记录留痕**:把每次"FAIL 原因 → 修改动作 → 重审结果"写进审查/核验记录,供追踪与验收。
- > 真实案例(2023 国赛 C 题跑题实录):图 2(分布拟合)初检 PASS(非空、有坐标),但视觉子代理在视觉-结论一致性核查中发现坐标裁剪造成误导(图上像伽马更贴合,数据却是对数正态更优)→ 判定 FAIL → 重绘为双面板 → 复验 PASS。这个闭环抓住并修复了纯文本主模型发现不了的问题。
+ > 示例:某项目的一张图初检通过(非空、有内容),但在与文字结论的一致性核查中发现坐标/内容被裁剪造成误导(图上表现与结论相反)→ 判定 FAIL → 修改后重审 → PASS。这类问题纯文本主模型发现不了,必须靠复验闭环兜住。
## 兜底
- 若探测不到任何 `inputModalities` 含 `image` 的模型,如实标记"此环境无视觉模型,看图受限",不要假装通过。
- 主模型若是纯文本模型,直接 `read_image` 报错属预期行为;此时用本方案派生视觉子代理即可。
- 本 skill 只负责"让图能被看/被审"。若还需要**用与主模型不同厂商的模型做内容/推理审查**,那是另一个维度(独立模型审查),可与本方案组合使用。
-