see-glm:让 AI 编码助手都能“看懂“图片——6 大工具通用的视觉桥接方案
一个零依赖、跨平台的开源工具,让不支持图片输入的 AI 编码助手(Trae、Claude Code、Codex、ZCode、WorkBuddy、OpenCode)通过 GLM-4.6V-Flash 视觉模型"看懂"图片。本文从真实使用场景出发,讲清楚它解决什么问题、怎么跨 6 大工具适配、以及如何上手。
一、痛点:你的 AI 助手其实是"瞎子"
如果你在用 Trae、Claude Code、Codex 这类 AI 编码助手,大概率遇到过这些场景:
-
截图报错:把 IDE 报错截图丢给 AI,它回一句"我看不到图片"
-
UI 还原:给一张设计稿让它写前端代码,它说"无法识别图片内容"
-
流程图解读:发一张架构图让它讲解,它直接装聋作哑
-
差异对比:两张截图让它找不同,它表示无能为力
根源很统一:底层模型不支持图片输入。不管是 DeepSeek、Qwen 还是各种纯文本 LLM,遇到图片就歇菜。
解决办法传统有三种,都不好用:
| 方案 | 问题 |
|---|---|
| 人工转述 | 效率极低,复杂图表描述不到位 |
| OCR 提取文字 | 只能提文字,"整体氛围""颜色搭配"全废 |
| 换多模态模型 | 得换整个助手或模型,成本高 |
see-glm 给了第四条路:不换助手、不换主模型,给它外挂一个"眼睛"。
二、方案:一座桥,而不是一个新模型
核心思路是桥接——主模型还是你正在用的那个(DeepSeek、Qwen 都行),遇到图片时,自动调用一个视觉模型把图看明白,再把结果带回当前会话。
你的 AI 助手(不支持视觉) │ 用户发来图片路径,触发 Skill ▼ see.py ──base64 原图──▶ GLM-4.6V-Flash ──▶ 视觉理解结果 ◀─────────────────────────────────┘ 结果写回 Markdown,主模型直接读取
视觉端选的是智谱的 GLM-4.6V-Flash——思维链能力强、速度快、API Key 免费申请。整个桥接对用户透明:你只要把图片路径发给助手,它自己会"意识到看不见",然后去借一双眼睛。
三、跨工具适配:6 大编码助手一套方案
这是 see-glm 区别于"又一个 CLI 工具"的关键。它不只是命令行脚本,而是同时是 6 种 AI 助手的 Skill 插件。
支持的工具
| 工具 | 适配包 | 适用人群 |
|---|---|---|
| Trae | see-glm-trae.zip |
字节系 AI IDE 用户 |
| Claude Code | see-glm-claude.zip |
Anthropic 生态用户 |
| Codex | see-glm-codex.zip |
OpenAI Codex 用户 |
| ZCode | see-glm-zcode.zip |
ZCode 用户 |
| WorkBuddy | see-glm-workbuddy.zip |
WorkBuddy 用户 |
| OpenCode | see-glm-opencode.zip |
OpenCode 用户 |
适配原理:Skill 协议 + 统一内核
6 个工具虽然各自框架不同,但都支持一种类似机制——Skill:在指定目录放一个 SKILL.md 声明触发条件和用法,AI 助手看到匹配请求就自动加载执行。
see-glm 的适配策略是内核统一、外壳分身:
-
内核统一:所有包共享同一份
scripts/(Python 主逻辑),分析能力完全一致 -
外壳分身:每个包里的
SKILL.md按对应工具的协议格式编写,触发条件、路径占位符、输出约定都贴合该工具习惯 -
额外配置:Codex 和 ZCode 包额外带
agents/openai.yaml,适配各自的 Agent 框架
触发协议:三个关键约定
不管哪个工具,适配都靠这三条约定咬合:
1. 触发条件:用户消息出现图片路径(.png/.jpg/.jpeg/.gif/.webp/.bmp),或"查看/识别/分析图片"等意图时,Skill 自动触发。
2. 路径占位符:SKILL.md 里用 $SEE_DIR 表示 Skill 根目录,AI 执行时自行解析成绝对路径——装在哪都能跑,不用改配置。
3. 结果回传:脚本 stdout 只输出一行 output_path=/xxx/result.md,AI 助手读取这个 Markdown 文件,把视觉模型的分析带回会话。
对用户的体验是:装一次,以后直接发图片路径,剩下的事 AI 自己干。
四、真实使用场景
场景 1:报错截图秒诊断
把 IDE 报错截图发给 AI 助手:
帮我看看这张图:D:\screenshots\报错.png
AI 会自动调用 see-glm,视觉模型提取报错信息 + 分析可能原因,结果直接回到对话。不用手打报错文字,不用切窗口。
场景 2:UI 设计稿还原
根据这张设计稿写一个 React 组件:./design/login-page.png
视觉模型先描述设计稿的布局、配色、元素位置,主模型基于描述生成代码。比纯文字描述设计稿靠谱得多。
场景 3:多图差异对比
比较这两个版本的 UI 截图差异:./v1.png ./v2.png
用 --together 模式让两张图进同一次请求,视觉模型在同一上下文里对比,能找出肉眼容易漏的差异点。
场景 4:远程图片直接分析
不用先下载,直接丢 URL:
分析这张网络图片:https://example.com/architecture.png
see-glm 会下载、校验、分析一条龙。注意它做了 SSRF 防护——只允许 HTTPS、拒绝解析到内网/回环地址的 URL,不会被人当跳板探内网。
场景 5:流程图/架构图讲解
讲解这张架构图:./arch/microservices.png
视觉模型能识别框图、箭头、层级关系,把架构图的逻辑讲清楚。比 OCR 强在它能理解"整体结构",不只是提文字。
五、快速上手
第 1 步:下载适配包
到 Releases 页面(当前最新 v1.3.1),下载你用的工具对应的 ZIP,解压到该工具的 skill 目录即可。
各工具的 skill 目录(用户级):
| 工具 | 目录 |
|---|---|
| Trae | ~/.trae-cn/skills/ |
| Claude Code | ~/.claude/skills/ |
| ZCode | ~/.zcode/skills/ |
| 其他 | 参考各工具文档 |
也可以从源码运行:
git clone https://github.com/w-zjj/see-glm.git,要求 Python 3.6+。
第 2 步:配置 API Key
智谱 API Key 在 open.bigmodel.cn 免费申请,格式为 id.secret。
python scripts/onboard.py # 交互式引导配置 python scripts/onboard.py --status # 查看配置状态
Key 存在用户私有目录(Windows 为 %APPDATA%\see-glm\config.env,macOS/Linux 为 ~/.config/see-glm/config.env),绝不进仓库,Unix 下自动设 600 权限。
第 3 步:直接用
在你的 AI 助手对话里发图片路径就行,不用记任何命令。也可以命令行手动调:
# 单图分析 python scripts/see.py screenshot.png # 带自定义问题 python scripts/see.py error.png --task "提取报错信息并分析原因" # 多图并行(默认 3 并发) python scripts/see.py a.png b.png c.png --jobs 3 # 多图联合对比 python scripts/see.py --together before.png after.png --task "比较差异" # 分析远程图片 python scripts/see.py https://example.com/photo.jpg # 指定输出文件 python scripts/see.py image.png --output result.md
成功后 stdout 只有一行:output_path=/absolute/path/result.md。
六、命令参数速查
| 参数 | 说明 |
|---|---|
图片路径/URL |
必填,支持本地路径和 HTTPS URL |
--task, -t |
自定义问题,原样发给视觉模型 |
--together |
多图联合分析,所有图进同一次请求 |
--jobs, -j |
并行并发数,范围 1-64,默认 3 |
--allow-partial |
并行模式部分失败仍返回退出码 0 |
--model, -m |
临时覆盖模型名 |
--output, -o |
指定 Markdown 输出路径 |
--onboard |
启动交互式配置 |
七、安全与可靠性:不止是能跑
这部分是 see-glm 区别于"快速糊出来的脚本"的地方。
安全加固
-
SSRF 防护:远程图片只允许 HTTPS,每次请求都校验 DNS 解析结果,拒绝回环/私有/链路本地/保留地址,重定向逐跳校验
-
文件头校验:本地图片按 magic bytes 识别真实格式,拒绝伪造扩展名(把
.exe改成.png骗不过去) -
大小限制:单张本地图片 10MB、API 请求体 20MB、远程下载 50MB,防止超大文件拖垮会话
-
Key 隔离:API Key 只存用户私有目录,
.gitignore默认排除配置文件
可靠性
-
API 重试:408/429/500/502/503/504 自动重试,优先遵守服务端
Retry-After,否则指数退避,单次等待封顶 30 秒 -
并行保序:多图并行结果按输入顺序写入,不会乱序
-
部分失败友好:并行模式某张图失败不会让整批作废,失败项明确标记,默认退出码 2 提示部分失败,
--allow-partial可放行
八、配置项
配置优先级从高到低:环境变量 > 项目级 .env.local > 用户配置文件。
| 配置项 | 默认值 | 说明 |
|---|---|---|
GLM_API_KEY |
无 | 智谱 API Key |
GLM_BASE_URL |
https://open.bigmodel.cn/api/paas/v4 |
API 地址 |
GLM_MODEL |
glm-4.6v-flash |
视觉模型名 |
GLM_MAX_TOKENS |
8192 |
回复最大 token 数 |
GLM_MAX_RETRIES |
3 |
临时错误重试次数,范围 0-10 |
GLM_THINKING |
disabled |
思考模式,enabled/disabled |
想对接其他 OpenAI 兼容端点也行:
export GLM_BASE_URL="https://your-endpoint/v4" export GLM_MODEL="your-vision-model" export GLM_API_KEY="your-token"
不包含点号的 Key 会直接当 Bearer Token 用;智谱标准的点号分隔 Key 会按 JWT 规则生成请求 Token。
九、和旧版的区别(给老用户)
如果你看过我之前那篇 ZCode 专版文章,这里列一下从那时到现在的主要变化:
| 维度 | 旧版(v1.0 时期) | 现在(v1.3.1) |
|---|---|---|
| 视觉模型 | GLM-4.1V-Thinking-Flash | GLM-4.6V-Flash |
| 工具适配 | 仅 ZCode | Trae / Claude / Codex / ZCode / WorkBuddy / OpenCode 共 6 个 |
| 安装方式 | 手动 cp 到 skill 目录 |
Release 页下载对应 ZIP,解压即用 |
| 远程图片 | 基本下载,无防护 | SSRF 防护 + 文件头校验 + 大小限制 |
| 错误处理 | 基本捕获 | 重试 + 指数退避 + Retry-After + 部分失败策略 |
| 测试 | 无 | 18+ 单元测试,全 mock 无需真实 Key |
| 发布 | 无 Release | 6 个版本,每版按工具分包 + sha256 校验 |
十、小结
see-glm 解决的是一个具体而普遍的问题:AI 编码助手看不见图片。它不试图替代任何模型,而是做一座桥——让任何主流编码助手都能临时借一双眼睛。
如果你正在用 Trae、Claude Code、Codex 或其他几个支持的工具,并且经常被"模型看不见图片"卡住,可以试一下:
更多推荐

所有评论(0)