我用一个 skill 把视觉活外包了
内容提要
作者主力使用Zcode搭配deepseek-v4-flash模型,性价比高但该模型不支持多模态。为在不切换会话模型的情况下识别图片,作者利用skill机制,让当前模型按SKILL.md说明调用analyze_image.py脚本,通过外部多模态API(如阿里百炼qwen3.7-plus)识别图片并返回结果,兼容OpenAI与Anthropic格式。代码已开源在GitHub的image-analysis-fallback项目。
延伸解读
skill 机制的本质:说明书而非执行者
文章澄清了一个常见误解:skill 本身不会运行在别的模型上,它只是一份 Markdown 说明书,指导当前模型如何调用外部工具。真正执行图片识别的是当前模型按照 SKILL.md 的指示,运行 analyze_image.py 脚本,通过外部多模态 API 完成识别。这意味着 skill 的价值在于将“调用外部多模态模型”这一动作标准化,让当前模型能无缝执行,而不需要切换会话模型。
兼容性设计:OpenAI 与 Anthropic 格式通吃
作者在实现中考虑了不同 API 格式的兼容性,无论是 OpenAI 格式还是 Anthropic 格式的接口都能适配。这降低了用户更换多模态服务商的门槛,只需在 config.json 中填入对应的 API key 即可。这种设计让方案更具通用性,不绑定特定厂商,读者可以根据自身需求选择合适的多模态模型,如文中提到的阿里百炼 qwen3.7-plus。
实际体验:无感集成与效果验证
整个流程对使用者来说是无感的:图片还是那张图片,任务还是那个任务,中间只是多了一个“帮我看了看”的环节。作者搭配阿里百炼的 qwen3.7-plus 模型,效果非常不错。这表明该方案在保持主力模型性价比优势的同时,有效弥补了其不支持多模态的短板,适合有类似需求的用户参考。代码已开源,可直接下载到 AI Agent 目录使用。
Q&A
deepseek-v4-flash 模型不支持多模态,有什么办法在不切换模型的情况下识别图片?
可以利用 skill 机制,让当前模型按照 SKILL.md 的说明调用 analyze_image.py 脚本,通过外部多模态 API 识别图片并返回结果,整个过程无需切换会话模型。
skill 机制是怎么让当前模型调用外部多模态 API 的?
skill 本质是给模型的一份 Markdown 说明书,本身不会运行在别的模型上。真正干活的是当前模型,它照着 SKILL.md 的说明,用自己手头的工具(比如跑 Python 脚本)去调外部 API,从而把调用外部多模态模型变成随手可做的动作。
这个图片识别方案需要哪些文件,怎么配置?
代码上只有两个文件:SKILL.md 负责告诉模型什么时候该用、怎么用,analyze_image.py 负责真正调 API。配置放在 config.json 里,填上 API key 即可。
这个方案兼容哪些 API 格式?推荐搭配哪个多模态模型?
兼容 OpenAI 格式和 Anthropic 格式。作者目前搭配的是阿里百炼的 qwen3.7-plus,效果非常不错。
这个图片识别方案的代码在哪里可以获取?
代码已开源在 GitHub 的 image-analysis-fallback 项目,地址是 https://github.com/anghunk/image-analysis-fallback,可以手动下载,也可以通过指令下载,下载到 AI Agent 目录下即可,README 中有详细说明。
使用这个方案识别图片时,用户需要手动切换模型吗?
不需要。整个链路对使用者来说是无感的,图还是那张图,任务还是那个任务,中间只是多了一个“帮我看了看”的环节,不会更改当前会话模型。