关于 vision
vision 是供 Agent 使用的图像描述命令行工具,可将图片和提示词发送给指定视觉模型。它支持内置及通过环境变量配置的自定义提供方,并可检查是否应调用外部模型。
主要功能
- 01根据提示词和路径描述图片
- 02选择内置提供方
- 03通过环境变量配置自定义提供方
- 04检查本地或外部路由
- 05设置模型、端点和响应参数
适用场景
- 01描述截图或界面样稿
- 02用视觉模型解读图表
- 03调用自定义视觉端点
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ xiincs/ claude-code-vision-skill --skill vision安装后在 Claude Code 中输入/vision确认已加载。
附带文件vision.py
详细介绍
vision
多提供商视觉工具。调用各种视觉模型来描述图像。提供提示词 + 图像路径,即可获得文本描述。
何时使用此工具
如果你已经能自行查看并理解图像(原生多模态模型),请跳过此工具,直接进行分析。
SessionStart 钩子通常会在会话开始时告知路由状态。如果看不到相关上下文(例如,长对话被压缩后上下文不再可见,或未安装钩子),请在调用此工具前检查:
python vision.py --check-routing
native→ 当前会话已具备原生图像理解能力;不要调用此工具。external(默认)→ 按照以下快速入门操作。
快速入门
python vision.py [--provider <name>] <image_path> <prompt>
省略 --provider 时,提供商按以下优先级确定:--provider 标志 > VISION_PROVIDER 环境变量 > 首个找到的 API 密钥。
提供商
doubao(Volcengine Ark)
- API 密钥:
DOUBAO_API_KEY - 默认模型:
doubao-seed-2-0-pro-260215 - 自定义端点:
DOUBAO_BASE_URL
qwen(DashScope)
- API 密钥:
DASHSCOPE_API_KEY - 默认模型:
qwen-vl-max - 自定义端点:
DASHSCOPE_BASE_URL - 可用模型:
qwen-vl-max、qwen-vl-plus、qvq-max
deepseek(DeepSeek)
- API 密钥:
DEEPSEEK_API_KEY - 默认模型:
deepseek-v4-flash-vision-exp - 自定义端点:
DEEPSEEK_BASE_URL - 只有
deepseek-v4-flash-vision-exp接受图像;deepseek-v4-flash和deepseek-v4-pro仅支持文本,输入图像时会报错。
openai(GPT-4o)
- API 密钥:
OPENAI_API_KEY - 默认模型:
gpt-4o - 自定义端点:
OPENAI_BASE_URL - 也适用于任何兼容 OpenAI 的端点。
anthropic(Claude)
- API 密钥:
ANTHROPIC_API_KEY - 默认模型:
claude-sonnet-5 - 自定义端点:
ANTHROPIC_BASE_URL - 需要
anthropic包(pip install anthropic);该包会延迟导入,因此其他提供商无需安装此包也能正常工作。
任意自定义提供商
任何内置提供商之外的 --provider 名称,都会根据以该名称命名的环境变量动态解析,无需修改代码:
| 环境变量 | 必需 | 说明 |
|---|---|---|
{NAME}_API_KEY | 是 | 在请求时检查,与内置提供商相同 |
{NAME}_BASE_URL | 是 | 无默认值,可使用任意端点 |
{NAME}_MODEL | 是 | 无默认值(也可改为设置全局 VISION_MODEL) |
{NAME}_PROTOCOL | 否 | openai(默认)或 anthropic — 用于选择请求格式 |
openai 几乎适用于所有兼容 OpenAI 的端点(vLLM、Ollama、
LiteLLM、OpenRouter、Azure OpenAI、可自托管的代理等)。仅当端点使用 Anthropic Messages
API 格式时,才使用
{NAME}_PROTOCOL=anthropic。
export MYAPI_API_KEY="sk-xxx"
export MYAPI_BASE_URL="https://my-endpoint.example.com/v1"
export MYAPI_MODEL="my-vision-model"
python vision.py --provider myapi "screenshot.png" "describe this"
如果缺少 {NAME}_BASE_URL 或 {NAME}_MODEL,工具会准确打印需要设置的变量,而不是显示笼统的“未知提供商”错误。
配置
| 环境变量 | 范围 | 默认值 |
|---|---|---|
VISION_PROVIDER | 默认提供商(内置或自定义名称) | 自动检测(仅内置提供商) |
VISION_MODEL | 覆盖模型(所有提供商) | 提供商默认值 |
{PROVIDER}_MODEL | 覆盖模型(按提供商) | — |
{PROVIDER}_BASE_URL | 覆盖/定义端点(按提供商) | 内置默认值;自定义提供商则为必填 |
{PROVIDER}_PROTOCOL | 自定义提供商的请求格式:openai | anthropic | openai |
VISION_TEMPERATURE | 回复创意度 0–1 | 0 |
VISION_MAX_TOKENS | 回复最大 token 数 | 4096 |
注意:自动检测(未设置 --provider / VISION_PROVIDER)只会检查内置提供商的 API 密钥;自定义提供商必须始终明确指定。
示例
# Auto-detect provider from API keys
python vision.py "screenshot.png" "Describe the page layout and any visible UI issues."
# Explicit provider
python vision.py --provider qwen "mockup.png" "List all components, colors, and spacing patterns."
# Custom model
QWEN_MODEL=qvq-max python vision.py --provider qwen "diagram.png" "Explain the architecture."
# GPT-4o for visual regression
python vision.py -p openai "after.png" "Compare with app design spec, flag differences."
# Fully custom provider (self-hosted, third-party proxy, any OpenAI-compatible endpoint)
MYAPI_API_KEY=sk-xxx MYAPI_BASE_URL=https://host/v1 MYAPI_MODEL=my-model \
python vision.py --provider myapi "ui.png" "Analyze layout issues"
评论
支持 Markdown