我目前使用的 AI 工具是 Zcode,然后搭配 Opencode Go 套餐里面的 deepseek-v4-flash 模型。性价比很高,速度和模型能力都非常棒,所以被我当成主力模型。
但是它存在一个巨大的问题就是不支持多模态,官网目前好像是支持视觉识别了,但是我是调用了 api 在第三方客户端。而我恰好非常需要这个场景,所以我就想了一个办法,如果能在不更改当前会话模型的情况下,进行图片识别,那就很完美。
首先我想到了利用 skills,调用多模态模型工具去识别图片,把识别到的结果返回给当前会话模型。
这个思路听着简单,但一开始我也有点拿不准:skill 这东西,说白了就是给模型的一份 Markdown 说明书,它本身不会”跑在别的模型上”。真正干活的是当前模型——它照着说明书,用自己手头的工具(比如跑个 Python 脚本)去调外部 API。
也就是说,关键不是 skill 本身多厉害,而是它能不能把”调用外部多模态模型”这件事,变成当前模型随手就能做的动作。
于是整个流程就成了这样:
- 使用者发给客户端一张图,但当前模型没眼睛,图片直接被省略,只留下一个文件路径
- 模型发现自己看不了图,翻开这份说明书:哦,要先跑一下 analyze_image.py
- 脚本把图片 base64 编码,POST 给多模态模型(我用的是 DashScope 的 qwen3.7-plus,走 Anthropic 兼容接口)
- 多模态模型看完图,返回一段文字描述
- 当前模型拿着这段文字,继续帮使用者干活
整个链路对使用者来说来说是无感的,图还是那张图,任务还是那个任务,中间只是多了一个”帮我看了看”的环节。
代码上其实就两个文件:一个 SKILL.md 负责告诉模型”什么时候该用、怎么用”,一个 analyze_image.py 负责真正调 API。配置放在 config.json 里,填上 API key 就行。
而且兼容了不同 API 格式,不管是 OpenAI 格式还是 Anthropic 都可以兼容,参考下面的说明文档即可。
我目前搭配的是阿里百炼的 qwen3.7-plus,效果非常不错。可以手动下载,也可以通过指令下载
具体代码我也已经开源出来了,下载到你的AI Agent目录下即可,README 中也有详细说明,如果有类似的需求可以试试看。
Github: https://github.com/anghunk/image-analysis-fallback
git clone https://github.com/anghunk/image-analysis-fallback.git ~/.zcode/skills/image-analysis-fallback
评论