mcpField
V
vision

vision

github.com/xiincsAgent 工作流166160 次安装10 周前更新
代码仓库

关于 vision

vision 是供 Agent 使用的图像描述命令行工具,可将图片和提示词发送给指定视觉模型。它支持内置及通过环境变量配置的自定义提供方,并可检查是否应调用外部模型。

主要功能

  1. 01根据提示词和路径描述图片
  2. 02选择内置提供方
  3. 03通过环境变量配置自定义提供方
  4. 04检查本地或外部路由
  5. 05设置模型、端点和响应参数

适用场景

  1. 01描述截图或界面样稿
  2. 02用视觉模型解读图表
  3. 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 | anthropicopenai
VISION_TEMPERATURE回复创意度 0–10
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