我用JSON而不是截图来喂我的编程代理
作者开发了SlimSnap工具,将屏幕截图转换为结构化JSON,供AI编程代理使用。相比直接粘贴截图,JSON表示可节省37-85%的令牌,且代理能直接引用元素而无需每次重新解释像素。文章详细说明了令牌节省、结构化优势、技能集成及开放模式的重要性。
在AI编程代理(如Claude Code、Cursor、ChatGPT)能够直接读取图像的时代,作者却选择了一种看似倒退的方式:将屏幕截图转换为结构化的JSON数据再喂给代理。他开发的SlimSnap工具,正是为了解决一个实际问题——图像表示对于编程任务而言,成本高昂且信息有损。
令牌效能是首要考量。以Claude Sonnet为例,单张截图消耗约1,568令牌,而SlimSnap输出的JSON仅需700令牌,节省近55%。在长期迭代的编程会话中,这种差距更为显著:20轮屏幕截图在Sonnet上消耗约31K令牌,而JSON只需14K,为上下文窗口腾出了宝贵空间。
更关键的是结构化信息的优势。截图是像素的集合,代理需要从中推断元素含义,且每次调用都需重新理解。而JSON精确描述了每个元素的类型、位置、颜色和文本,代理可直接引用ID(如e4按钮),无需重复猜测。这对前端开发、设计转代码和缺陷复现等场景尤其重要,因为代理能立即明确用户所指。
SlimSnap的集成方式也体现了优雅的设计。桌面应用捕获屏幕并生成JSON,写入配置文件。Claude Code的技能(skill)自动读取配置文件并加载最新JSON,用户只需按快捷键、保存、输入“修复这里”,代理即可获得结构化上下文,无需额外命令。这种“技能自动触发”机制让工具几乎隐形。
作者强调,开放的模式和技能才是真正的产品。SlimSnap的桌面应用是闭源的,但模式定义(JSON Schema)和Claude Code技能都以MIT协议开源。这意味着即使SlimSnap停止维护,用户的工作流和数据不会受锁——任何人都可以基于开放模式构建新的注解器或消费者。
总之,SlimSnap并非要取代截图功能,而是为高频使用编程代理的场景提供一种更高效、精准的替代方案。它最适合那些需要反复向代理展示界面状态的前端工作流。对于单次临时查询,直接贴截图依然简单有效。