图像视觉
赋予智能体视觉能力。通过 WhatsApp 发送的图片将被处理并作为视觉内容传递给 Claude。
功能特性
- 自动处理通过 WhatsApp 附件发送的图片
- 使用 Sharp 调整图片尺寸,优化 token 用量
- 将图片以 base64 编码的多模态内容块形式传递给 Claude
- 将处理后的图片保存到群组工作区以供参考
- 智能体可直接看到并理解图片内容,无需额外提示
前置条件
- 已安装并运行 NanoClaw
- 已配置 WhatsApp 通道
安装
/add-image-vision 工作原理
/add-image-vision 技能让 NanoClaw 智能体能够看到图片。当有人在已注册的 WhatsApp 聊天中发送照片时,NanoClaw 会下载图片,使用 Sharp 调整尺寸(以控制 token 成本),将其保存到群组工作区,然后以多模态内容块的形式传递给 Claude。智能体会看到图片和文字消息,并能对图片内容进行描述、分析或回应。
该技能修改了代码库的两个部分。在宿主机端,它更新 WhatsApp 通道以检测图片附件、下载图片并通过 Sharp 进行尺寸调整。在容器端,它更新智能体运行器,将处理后的图片作为视觉内容块包含在发送给 Claude 的消息中。
技能应用后,你需要重新构建容器镜像并重启服务。此后,在已注册的聊天中发送的任何图片都会自动处理,无需额外配置。
智能体能用图片做什么
Claude 的视觉能力完全适用。智能体可以:
- 描述照片中的内容
- 从截图或文档中读取文字
- 识别物体、人物表情或场景
- 比较连续发送的多张图片
- 回答关于视觉内容的问题
智能体不需要被告知”看看这张图”——它会将图片作为消息的一部分接收,并据此作出回应。
图片处理
图片在发送给 Claude 之前会进行尺寸调整,以在质量和 token 用量之间取得平衡。Sharp 库负责格式转换和缩放。原始图片会保存到群组的工作区目录中,以便智能体后续参考。
处理管道支持常见的 WhatsApp 图片格式,包括 JPEG、PNG 和 WebP。如果图片无法处理(文件损坏、格式不支持),智能体会收到一条说明有图片附件但无法读取的提示,而不是静默丢弃。
故障排查
智能体未提及图片。 检查容器日志中是否有 “Loaded image” 消息。如果没有,智能体运行器源码可能尚未同步到现有群组缓存。将更新后的源文件复制到每个群组的 agent-runner-src/ 目录并重启。
“Image - download failed.” WhatsApp 媒体下载超时或失败。这通常发生在网络不稳定时。重新发送图片一般即可解决。
“Image - processing failed.” Sharp 可能未正确安装。运行 npm ls sharp 验证其是否存在。Sharp 使用原生绑定,如果你更换了 Node.js 版本,可能需要重新执行 npm install。
使用建议
- 图像视觉目前仅支持 WhatsApp。其他通道需要各自实现图片下载逻辑。
- 发送超大图片(10+ MB)可以正常工作,但下载和处理时间更长。WhatsApp 在发送前通常会压缩照片,因此实际使用中很少遇到此问题。
- 智能体可以处理单条消息中的多张图片,每张图片作为单独的内容块传递。