Claude Code + Ollama /v1/messages?beta=true fails when Read tool reads PNG

用户在 VS Code 中使用 Claude Code 通过 Ollama 调用 /v1/messages?beta=true 端点。直接向该端点发送顶层图片内容请求可以正常工作,纯文本的 Read 工具调用也可以正常工作。但当 Read 工具读取 PNG 文件并返回嵌套的 image 内容到 to

Claude Code + Ollama /v1/messages?beta=true fails when Read tool reads PNG

Claude Code + Ollama /v1/messages?beta=true fails when Read tool reads PNG

快速结论:这个报错通常发生在 Claude Code 通过 Ollama 调用 /v1/messages?beta=true 端点时,当 Read 工具读取 PNG 图片并返回嵌套的 image 内容到 tool_result 结构中,Ollama 无法正确解析这些嵌套的图片内容,返回 400 错误。优先排查 Ollama 版本是否已包含对嵌套 tool_result(image) 负载的处理修复。

问题场景

用户在 VS Code 中使用 Claude Code 通过 Ollama 调用 /v1/messages?beta=true 端点。直接向该端点发送顶层图片内容请求可以正常工作,纯文本的 Read 工具调用也可以正常工作。但当 Read 工具读取 PNG 文件并返回嵌套的 image 内容到 tool_result 结构中时,请求失败,返回 API Error: 400 Input should be a valid string

报错原文

API Error: 400 Input should be a valid string

Ollama log:
POST "/v1/messages?beta=true" 400

原因分析

最可能的原因是 Ollama 在处理 /v1/messages?beta=true 端点的请求时,对嵌套在 tool_result 内部的 image 内容的解析逻辑与顶层用户图片内容的处理方式不一致。当 Read 工具读取 PNG 并将图片内容嵌套返回时,Ollama 无法正确解析这种嵌套结构,导致验证失败并返回 400 错误。

issue #16047 已经包含了针对嵌套 tool_result(image) 负载的核心修复,但仍可能因为版本差异或具体使用场景而存在未覆盖的边界情况。

环境排查

  • 确认 Ollama 版本:用户报告了 0.24.0 版本存在问题,另一用户报告在 0.30.10 版本仍然复现
  • 操作系统:Windows
  • GPU:其他(非 NVIDIA/AMD 主流 GPU)
  • CPU:Intel
  • 确认 Claude Code 版本和 VS Code 扩展版本
  • 确认使用的模型是否支持图片输入功能

解决步骤

  1. 开启 Ollama 调试日志:在 Windows PowerShell 中运行以下命令,查看完整的请求/响应日志,以便获取更详细的错误信息:
    $env:OLLAMA_DEBUG_LOG_REQUESTS="1"
    ollama serve
  2. 确认修复是否已包含:检查当前使用的 Ollama 版本是否已包含 PR #16047 的修复。该 PR 已经合入了对嵌套 tool_result(image) 负载的处理。
  3. 升级到最新版本:如果使用的 Ollama 版本较旧(如 0.24.0),建议升级到最新发布版本,查看问题是否得到解决。注意:0.30.10 版本仍有用户报告问题,因此升级到最新版不保证完全修复。
  4. 提交详细日志:如果升级后仍存在问题,在 GitHub issue 中提交开启 OLLAMA_DEBUG_LOG_REQUESTS 后的完整日志,包括请求体和响应体。
  5. 可优先尝试:作为临时替代方案,避免在 Read 工具调用中读取 PNG 文件,直接使用文本输入,或者手动将图片作为顶层请求内容发送。

验证方法

在 VS Code 中使用 Claude Code,尝试让 Read 工具读取一个 PNG 图片文件。如果不再出现 API Error: 400 Input should be a valid string 错误,且 Ollama 日志中不再返回 POST "/v1/messages?beta=true" 400,则表明问题已解决。

参考来源

ollama/ollama #16298

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 10000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注