Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add OrinVoss/dsh-math-team --skill vision-subagentgit clone --depth 1 https://github.com/OrinVoss/dsh-math-teamWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/orinvoss/dsh-math-team/vision-subagent)<a href="https://agentmods.dev/skills/orinvoss/dsh-math-team/vision-subagent"><img src="https://agentmods.dev/badge/skills/orinvoss/dsh-math-team/vision-subagent/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/orinvoss/dsh-math-team/vision-subagent"><img src="https://agentmods.dev/badge/skills/orinvoss/dsh-math-team/vision-subagent.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00067 | $0.01822 |
| Opus 5.5 | $0.00027 | $0.00729 |
| Sonnet 5.5 | $0.00013 | $0.00364 |
| Haiku 4.5 | $0.00007 | $0.00182 |
Grade A, and why
vision-subagent scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 84 lines — stays where its author put it; the contents beside it link to each section on GitHub.
视觉子代理(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 的:
// 思路:遍历 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这类旗舰/大上下文模型——识图不需要它们的强推理与长上下文,成本不划算。除非便宜模型全部不可用且任务确需更强能力,才考虑它们。 - 换部署后先探测:按"便宜视觉模型优先 → 经济型 → 旗舰兜底"的顺序选。
- 同一批图片审查应尽量一次性派发(一次 workflow 调用审多张),减少调用次数与成本。
已验证候选(示例):deepseek-official/deepseek-flash、kimi-coding/kimi-for-coding、kimi-coding/kimi-for-coding-highspeed(均 text+image,经济型)。
⚠️ 图像能力靠配置声明:模型的
inputModalities在配置里默认是["text"]。若某模型实际支持读图却被拒(read_image报 "does not declare image input"),检查其配置是否声明了image(DSH 的dsh-llm-deepseek等适配器本身支持图像,声明后即可读图)。
用法模板
用 workflow 派发看图子代理(provider/model 替换为探测到的可用视觉模型):
await agent(
'用 read_image 工具读取 <图片绝对路径>,然后完成任务:<你的具体诉求,如描述内容 / 审查质量 / 判断是否达标>,并结构化返回结论。',
{ provider: '<探测到的provider>', model: '<探测到的视觉 model>' } // 指定视觉模型
)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago Changed · +5 lines c0e8304a6137
- 2mo ago First seen · 79 lines · 67 tokens per session scan A 89a6d73fa5b0
vision-subagent is a skill published in the GitHub repository OrinVoss/dsh-math-team (7 stars, last pushed 1mo ago), licensed MIT. It adds 67 tokens to every session and 1,822 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
vision-subagent compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| vision-subagentOrinVoss/dsh-math-team | Skill | 7 | 1mo ago | MIT | A | 67 | Claude Code, Codex |
| project-blueprintshuguang1994/project-blueprint | Skill | 23 | 24d ago | MIT | A | 114 | Claude Code, Codex |
| design-taste-frontendxiehuan123/coding-coach | Skill | 4 | 2mo ago | none | A | 79 | Claude Code |
| product-managerxiehuan123/coding-coach | Skill | 4 | 2mo ago | none | A | 69 | Claude Code |
| vercel-react-view-transitionsxiehuan123/coding-coach | Skill | 4 | 2mo ago | none | A | 127 | Claude Code |
| coach-playbookxiehuan123/coding-coach | Skill | 4 | 2mo ago | none | A | 130 | Claude Code |
| deploy-to-vercelxiehuan123/coding-coach | Skill | 4 | 2mo ago | none | A | 47 | Claude Code |