页面里已经出现图片缩略图,但模型回复“无法查看图片”;刷新后附件还在,重启进程后却读不到。

最快的处理方式是:不要把缩略图当作验收结果。我们建议按“模型能力声明 → 附件传输 → 持久化 → PTC Mode 嵌套转发 → 会话恢复 → 远程交接”逐项打勾。任何一项没有证据,都只能标记为“限制”或“拒收”,不能直接上线。

这篇文章适合三类人:需要让 Agent 根据截图排查 UI 或测试问题的开发者;通过 MCP、ACP 连接编辑器或外部工具的平台工程师;需要在远程 Mac 保存视觉任务证据并完成交接的测试与运维团队。

最后更新于 2026 年 8 月 18 日,数据核实自 DeepSeek Harness 官方 rc.7 Release官方仓库当前代码与说明 以及 DeepSeek API 模型与请求文档

01

先分清“界面收到”和“模型收到”

验收 DeepSeek Harness 图片附件时,第一道门不是上传按钮,而是模型能力声明。

官方 rc.7 发布说明确认:MCP 与 ACP 新增持久化图片附件,PTC Mode 支持嵌套图片转发。这个结论说明 Harness 链路具备相关功能,但没有说明任意模型都能处理图片。模型是否接受图片,仍取决于模型配置、Provider 声明和实际上游端点。

当前 DeepSeek 官方 Chat Completions 文档列出了 deepseek-v4-flashdeepseek-v4-pro 两个模型 ID,同时把用户消息 content 定义为文本字段。官方 Anthropic API 兼容文档也将 image 内容标为不支持。因此,不能因为模型名称、Web UI 或自定义 Provider 写着“视觉模型”,就推断图片已经进入推理请求。

验收对象 应检查的内容 通过证据 失败判定
模型配置 是否明确声明 image 输入 配置截图、导出的 Provider JSON 只有模型名称,没有能力字段
请求构造 是否生成图片内容块或附件引用 脱敏后的请求日志 只有图片文件名或本地路径
上游响应 是否返回模型可处理或拒绝的明确结果 HTTP 状态、错误体、响应记录 只有前端“发送成功”状态
自定义 Provider 声明与真实端点是否一致 配置、端点文档、一次成功请求 只看 Provider 自报能力

能力声明的检查动作

准备一张带有唯一标记的测试图,例如在四个区域分别放置不同字母。不要使用客户截图、真实密钥、仓库路径或包含个人信息的画面。

先用当前模型发送图片,再发送同样的文字但不附图。两次结果都要保存。若模型回复只复述提示词,或者错误信息明确指出不支持图片,应把问题归到“模型能力”节点,而不是 MCP 或 ACP 节点。

这里的关键证据是三件套:

  • 配置层:模型、Provider、输入类型声明。
  • 传输层:请求中是否存在真实图片内容或可读取附件引用。
  • 上游层:模型是否返回针对图片内容的可验证答案。
02

传输链路:附件顺序比上传图标更重要

图片附件传输通过后,第二关是确认“收到的是正确素材”。

MCP 的资源规范允许资源包含二进制数据,并使用 blob 表示经过编码的内容;这证明协议可以承载二进制资源,但不等于每个 MCP 客户端都会自动把它交给视觉模型。ACP 也定义了文件上传类型,但实际能否进入 Agent 上下文,仍要看实现和能力协商。可参考 MCP Resources 官方规范ACP 官方协议规范

我们建议使用两张外观相近、内部标记不同的图片:

  • 图片 A:左上角写入 RED-41
  • 图片 B:右下角写入 BLUE-82
  • 任务描述明确要求先回答 A,再回答 B。
  • 第二轮交换附件顺序,但不改变文字说明。

如果模型始终只回答“看到了两张图片”,这还不够。合格结果必须能把标记、位置和任务顺序对应起来。否则可能只是附件对象存在,模型上下文里却没有真实图像内容。

测试变化 观察重点 通过标准
单图 → 双图 是否识别附件数量与顺序 A、B 的标记对应正确
双图 → 交换顺序 是否重新读取实际内容 结果随顺序变化,不沿用旧答案
图片 → 文本描述 是否区分视觉输入与路径文本 没有图片时不应声称看见标记
MCP → ACP 是否出现链路特有丢失 两条链路分别有独立日志

不要只截取上传后的 UI。至少保留附件 ID、MIME 类型、任务序号、接收端记录和模型回答。对于远程 Web 工作流,还要记录浏览器端、Harness 服务端和 Provider 端各自的时间点,便于定位到底是前端、协议层还是上游拒绝。

03

持久化:刷新成功不等于重启成功

图片附件的持久化至少要拆成三层:

  1. 界面缓存:刷新后缩略图仍显示。
  2. 会话记录:历史消息中还保留附件 ID 或 URI。
  3. 真实资产:系统仍能读取图片二进制,并交给后续请求。

这三层经常被混为一谈。浏览器缓存可以让图片继续显示,但实际文件已经被清理;会话 JSON 可以保留一个路径,但远程进程已经没有读取权限;附件资产也可能存在,却因为 Provider 不支持图片而无法继续推理。

建议按以下顺序执行:

  • 打开新会话,发送带唯一标记的测试图。
  • 刷新 Web UI,重新要求模型回答标记。
  • 断开客户端,再重新连接 MCP 或 ACP。
  • 停止并重启 Harness 进程。
  • 清理浏览器缓存后再次打开旧会话。
  • 检查附件资产、会话文件和权限。
  • 记录每一步的读取结果与错误信息。

判定时不要只写“刷新后正常”。应明确写成“界面缓存通过、会话记录通过、进程重启失败”这类分层结论。只有真实资产可再次读取,且模型在恢复后的新请求中再次正确识别图片,才可以把该项标记为通过。

04

PTC Mode:主任务通过,子任务仍可能失败

PTC Mode 的嵌套任务需要单独验收。主任务能读图,不代表子任务收到了同一张原图。常见错误包括:子任务只收到图片文件名;收到的是缩略图;附件 URI 在子任务工作目录中无权限;任务链重放时使用了旧附件。

设计一个能区分责任节点的测试:

  • 主任务发送图片 A,要求识别左侧标记。
  • 嵌套任务发送或转发图片 B,要求识别右侧标记。
  • 主任务与子任务使用不同问题,避免只复述同一答案。
  • 保存父任务轨迹、子任务输入、子任务输出和最终汇总。
  • 故意移除 B 的读取权限,再执行一次,观察失败节点。

如果主任务正确、子任务错误,不能把结果记为“图片功能失败”。应进一步判断是 PTC Mode 转发、子任务上下文构造,还是远程权限导致。rc.7 的 Release 说明确认了嵌套图片转发能力,但正式上线前仍需要在实际模型和实际 Provider 上验证。

05

会话恢复:最危险的是“拒绝后循环重放”

图片被上游拒绝后,旧会话恢复可能再次发送相同附件。若恢复逻辑只保存了原始消息,没有保存“该模型拒绝图片”的失败状态,就可能出现以下循环:

图片进入队列 → 上游拒绝 → 会话保留附件 → 恢复旧会话 → 自动重放 → 再次拒绝。

我们建议至少测试三条安全回退路径:

  • 移除附件:保留文字任务,改用图片摘要或人工标注。
  • 切换模型:切换到明确声明支持图像输入的 Provider,并重新建立请求。
  • 新建会话:不继承旧附件,确认新会话不会自动重放。

验收记录中要写清“恢复后是否自动发送”“发送了几次”“失败后是否需要人工确认”。这里不必追求无限重试。视觉模型不支持图片时,继续重放不是容错,而是放大故障。

06

常见故障要按责任节点归类

下面的 FAQ 适合放在测试报告中部,作为故障初筛,而不是替代日志。

如果 DeepSeek Harness 拒绝发送图片,先看模型能力声明和请求体。若请求体根本没有图像内容,排查附件构造;若请求体有图片但上游拒绝,排查 Provider 与模型匹配;若上游成功但回答不识别标记,再检查格式、权限和实际资产。

MCP 与 ACP 的图片持久化不能只依据 rc.7 的功能说明下结论。应分别做刷新、重连、重启三次验证,并将两条链路的日志分开保存。

PTC Mode 嵌套任务必须验证子任务输入,而不是只看父任务最终回答。远程运行时则要同时检查文件存在性、会话引用和进程访问权限。恢复旧会话后反复发送图片,通常说明失败状态没有被安全处理。

07

远程 Mac:交付的是证据链,不是“天然持久化”

在远程 Mac 环境中,图片任务至少涉及四类责任:

  • 附件文件保存在哪里。
  • 会话记录由哪个进程写入。
  • 当前用户和服务进程是否有读取权限。
  • 交接后路径、密钥和运行目录是否仍然有效。

远程运行并不会天然提供持久化,也不会自动完成数据隔离。测试团队交接时,应交付脱敏后的测试图、会话 ID、附件引用、运行日志、模型配置摘要和恢复结果。不要直接交付真实客户截图或包含 API Key 的完整配置文件。

如果需要临时搭建独立环境,可以先查看 MESHLAUNCH 的 Mac 远程环境方案。对于需要固定 Mac 节点进行团队复核的任务,也可以参考 Mac mini M4 租赁与交付页面。但无论环境来自本地还是远程,都要重新执行附件恢复测试,不能把机器可访问等同于会话可恢复。

08

一张可直接执行的验收清单

  • [ ] 记录 Harness 版本,并核对是否为 rc.7 或后续版本。
  • [ ] 保存模型配置、Provider 名称和 image 输入声明。
  • [ ] 使用不含敏感内容、带唯一标记的测试图片。
  • [ ] 核对请求体中是否存在真实图片内容或可读取附件引用。
  • [ ] 保存上游响应、错误码和错误文本。
  • [ ] 分别测试单图、双图、附件顺序交换。
  • [ ] 分别验证 MCP 与 ACP,不把一条链路的结果复制给另一条。
  • [ ] 刷新页面后重新要求模型识别图片标记。
  • [ ] 重连客户端后重新读取附件。
  • [ ] 重启 Harness 进程后验证真实资产是否仍可读取。
  • [ ] 检查附件文件、会话文件和服务进程权限。
  • [ ] 在 PTC Mode 中让主任务与子任务读取不同图片细节。
  • [ ] 保存父任务轨迹、子任务输入和子任务输出。
  • [ ] 模拟上游拒绝图片,观察是否出现自动循环重放。
  • [ ] 验证移除附件、切换模型、新建会话三条回退路径。
  • [ ] 交接前用另一名工程师完成一次独立复现。
  • [ ] 删除真实密钥、客户截图和仓库敏感内容后再归档证据。
09

最终结论:通过、限制,还是拒收

我们建议将结果分为三档:

结论 必须满足的条件 可上线范围
通过 模型、传输、持久化、嵌套转发和恢复均有证据 可用于视觉任务与团队交接
限制 基础链路可用,但重启、嵌套或某个 Provider 不稳定 仅限试用,必须保留人工复核
拒收 模型不支持图片、附件无法读取或恢复会循环重放 切回文本证据或更换模型

如果当前方案是普通本地开发机或一次性 Windows/Linux 远程主机,常见缺点是附件路径依赖个人环境、会话文件没有统一交接、重启后的权限状态不透明,团队也很难复现同一张测试图片。相比之下,使用 MESHLAUNCH 的独立 Mac 环境,可以把远程运行、权限检查和交接流程放进同一份验收记录里;但长期高负载、必须持有物理接口或需要永久保存大量资产的团队,仍应评估自购设备和专用存储。

若只是临时验收一轮图片任务,先准备脱敏测试图和空白记录表,在独立远程环境完成一次完整复现即可。若附件还要长期保存、供多人复核,再继续查看 云端 Mac 交付验收相关环境,并把会话恢复结果纳入交接标准。