【免费下载链接】agent-vision-toolkit
为纯文本模型"看图“设计更好的视觉工具箱和技能,支持多图理解,图片问答,前端UI还原、GUI 自动化等,并可选无缝接入多个主流agent,直接识别粘贴图片| A vision toolkit and skill designed for text-only llms — image Q&A, long-screenshot OCR, frontend UI restoration, and GUI automation, with optional seamless integration for Codex, Claude Code, Pi, Oh My Pi, and OpenCode
agent-vision-toolkit是专为纯文本大模型设计的视觉工具箱与技能集,支持多图理解、图片问答、长截图 OCR 与前端 UI 还原。它的核心机制focus hint(焦点提示)会自动从对话中提取"任务意图",随图片一起传给视觉模型——拿回来的图片描述聚焦于当前步骤真正要紧的细节,而不是一段泛泛的"详细描述"。本文从原理、实现和实测数据三个角度拆解这套机制。
为什么通用的图片描述帮不上忙?
大多数纯文本模型的"视觉转接"方案是:视觉模型先看图,输出一段通用描述,再交给纯文本模型自行拼凑答案。问题在于——同一张图,在不同任务里真正重要的细节完全不同。
项目做过一次严格的同图 A/B 实验:同一张"图标对照预览图"跑两次describe_image,唯一的区别是有没有 focus hint。结果很有代表性:
- 无 hint:视觉模型陷入自由联想模式,把空白格子里根本不存在的图标"脑补"了出来,还把一堆损坏的描摹结果说成"更清晰的版本";
- 有 hint:描述成对核验、直击问题,甚至更短(3611 字符 vs 4761 字符)。
💡 无 hint 不是"中性的安全默认"——它把模型放进自由联想模式,反而更容易虚构内容。
完整实验记录见 research/2026-08-03-hint-ab-comparison.md。
focus hint 从哪来:两种来源自动提取
focus hint 不需要任何手动配置,它来自对话本身:
| 图片来源 | hint 取自哪里 |
|---|---|
| 用户直接粘贴的图片 | 该条消息自身的文本(也就是用户的请求) |
agent 调用view_image等工具取回的图 | 模型调用工具前自述的动机(收尾段落) |
下图是第二个场景:agent 在执行 UI 复刻任务时,对自己的"图标对比预览"调用view_image,focus hint 就是它刚说的那句"让我看一下——它会准确显示哪些图标坏了"。
一个有意思的细节:提示里只会告诉视觉模型"当前这一步什么最重要",不会添加任何新的视觉事实。也就是说,hint 改变的是描述的侧重点和回答质量,而不是往图里"塞"信息。
实现细节:500 字符与"收尾段落"策略
核心逻辑在 vision_proxy.py 中,规则相当克制:
- 只取尾部 500 字符:长消息往往"前面堆材料、最后才提问",保留尾部即可;
- 只取收尾段落:模型在看图前会写一段 reasoning,动辄几千字符(文件列表、被放弃的猜想),真正表达"我接下来要看什么"的往往就是最后一段——实测 49 次真实调用中,88% 的看图意图出现在最后 300 字符内(见 research/2026-08-03-view-image-hint.md);
- 拼装成视觉 prompt:角色契约 + 描述指令 + hint + 输出约束,见
_vision_prompt。
对应的 prompt 结构大致如下(research/2026-08-03-hint-ab-comparison.md 与生产代码一致):
你是帮助纯文本编程助手理解图片的。 仔细读图中的所有文字并做足够详细的描述。 【focus hint:以下是最近的请求,只用于判断图中哪些部分最重要, 若无关则忽略它、描述整张图】 {hint 尾部 500 字符} 不要自行完成请求,只描述图中可见的内容。 现在输出图片描述。Codex / Claude Code 走透明代理 vision_proxy.py,Pi 与 OpenCode 则通过单文件扩展实现同一套 hint 策略(extensions/pi/vision.ts、extensions/opencode/vision.ts),行为完全一致。相关单元测试在 tests/test_focus_hint.py。
实测数据:focus hint 到底省在哪?
项目在看到数据之前先写好了评测设计(预注册),随后跑了 230 道单图问答题、5 组对照条件,结论写进了 research/2026-08-04-focus-hint-eval.md。这里如实汇报,包括"不那么好听"的部分:
✅ 站得住的正面结论
- hint不是靠写得更长赢的:带上 hint 后描述更短(2108 字 vs 2284 字)、视觉 token 更少(2741 vs 2763),答题模型推理量还少了 9%;
- 排除替代解释:"hint 让模型多写所以撞对更多"不成立——它是更省的那一条。
⚠️ 诚实的零结果
- 在"自带明确问题"的单图问答上,hint 测不出统计显著的准确率增益(全部配对检验 p ≥ 0.227)。作者解释:题目本身就锚定了要找什么,替代了 hint 的一部分作用——而真实场景里,用户粘一张图并不附带"请看第 47 行的报错";
- 文字中转本身的代价被首次量化:相比原生视觉模型直接作答,约3.2 倍延迟 / 2.1 倍 token。
换句话说:focus hint 的价值不在"让答案更对",而在让描述更聚焦、更短、更贴合当前任务——这正是 agent 流水线里最需要的性质。
快速上手:三步让 agent 拥有聚焦的"眼睛"
- 按 AGENT_INSTALL.md 安装:复制
vision_proxy.py与vision_client.py,配置VISION_API_KEY、VISION_BASE_URL、VISION_MODEL三个环境变量; - 将 Codex 的 base_url(或 Claude Code 的
ANTHROPIC_BASE_URL)指向本地代理端口19100,重启 agent; - 直接在对话里粘贴截图即可——focus hint 全程自动,无需任何额外操作。
独立使用glance等五个命令行工具时,也可以通过-q "<问题>"显式指定关注点,获得同样的聚焦效果。更多接入细节见 README_CN.md。
总结 🎯
- focus hint 的本质:把 agent "为什么要看这张图"变成一条 500 字符以内的提示,随图传给视觉模型;
- 它不添加任何视觉事实,只决定描述侧重点——同图不同任务,拿到不同的、各取所需的描述;
- 实测:描述更短、token 更少、回答更贴合任务;项目在文档中如实标注了机制层评测的零结果边界,这种克制反而值得借鉴。
【免费下载链接】agent-vision-toolkit
为纯文本模型"看图“设计更好的视觉工具箱和技能,支持多图理解,图片问答,前端UI还原、GUI 自动化等,并可选无缝接入多个主流agent,直接识别粘贴图片| A vision toolkit and skill designed for text-only llms — image Q&A, long-screenshot OCR, frontend UI restoration, and GUI automation, with optional seamless integration for Codex, Claude Code, Pi, Oh My Pi, and OpenCode
相关推荐
CrewAI 如何用 DALL-E 工具让 Agent 在任务中生成图片
CrewAI 如何用 DALL E 工具让 Agent 在任务中生成图片 如果你的 CrewAI Agent 需要在执行任务的同时产出图片(比如为目标公司生成一
人工智能AI AgentAgent 框架多智能体工作流自动化后端EasyGank网络层设计:Retrofit + RxJava的完整实践指南
EasyGank网络层设计:Retrofit + RxJava的完整实践指南 想要构建一个优雅、高效且易于维护的Android网络层吗?🤔 EasyGank项
BLIP图像描述生成:让AI看懂图片并生成精准描述
BLIP图像描述生成模型是一个革命性的视觉 语言预训练框架,能够为任何图片生成高质量的自然语言描述。该模型在COCO数据集上进行预训练,采用基础的ViT架构作为
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考