DeepSeek Harness 公测刚满一周,就发布了 v0.1.0-rc.8。这次版本包含 14 项更新,表面上看是命令、子 Agent、Windows 会话和默认模式的持续完善,真正改变使用方式的却是多模态能力:图片可以作为原生请求输入,也可以和文字混合发送,甚至能被 /goal、/plan 等工作流命令直接接收。
这意味着终端里的 AI 助手不再只处理日志、代码和自然语言描述。截图、架构图、报错图片、产品原型,都可以进入同一个任务上下文。
多模态变化在哪里
v0.1.0-rc.8 的多模态更新可以拆成两层:
- 支持原生图片请求。
- 支持图文混合输入,并让
/goal、/plan等命令处理图片。
第二点更值得关注。单独让模型“描述一张图片”,价值有限;把图片放进目标拆解和计划生成流程,才会影响开发者的日常工作。例如,开发者可以把一张 CI 失败截图和一句“定位问题并给出修复计划”一起交给 Harness,让图片成为任务上下文的一部分。
这里需要区分一个容易混淆的概念:终端工具支持看图,并不等于底层使用的纯文本模型突然获得了视觉能力。Harness 可能在请求层完成图片接收、预处理、模型路由或上下文转换。具体实现要以实际配置和模型适配情况为准,但从使用者角度看,图片已经可以参与工作流,而不必先手动转写成文字。
从“聊天输入”走向“任务输入”
/goal 和 /plan 这类命令本质上不是普通聊天,它们会影响后续任务的拆解方式。图片进入这些命令后,终端助手可以处理更多原本难以用文本完整表达的信息:
- 浏览器或桌面应用的错误提示截图。
- 终端中截取的构建失败信息。
- 系统架构图、时序图和网络拓扑图。
- UI 原型或页面异常截图。
- 监控面板中的曲线和告警状态。
实际使用时,建议把图片和明确动作绑定起来,而不是只问“这是什么”。例如:
/goal
请阅读这张 CI 失败截图,判断最可能的故障类别,并输出一个按优先级排序的排查目标。
或者:
/plan
根据这张页面报错截图和当前仓库代码,制定修复计划。计划需要包含:
1. 可能涉及的文件
2. 验证假设所需的命令
3. 修改后的测试方式
4. 仍然需要人工确认的风险
上面的命令格式表达的是使用思路。具体图片附加语法、命令行参数和模型配置,应以本地安装版本的帮助信息为准。
一个可改造的图文请求示例
如果你需要把 Harness 接入已有脚本或内部工具,可以先把本地图片编码成 Data URI,再组合成图文消息。下面的脚本只负责生成请求 JSON,不依赖第三方库;其中请求地址和认证字段是假设配置,需要按实际服务端接口修改。
运行前把 IMAGE_PATH 改成真实图片路径:
#!/usr/bin/env python3
import base64
import json
import mimetypes
from pathlib import Path
IMAGE_PATH = Path("ci-failure.png")
TEXT = "阅读这张 CI 失败截图,提取错误信息,并给出三步排查计划。"
if not IMAGE_PATH.is_file():
raise SystemExit(f"图片不存在: {IMAGE_PATH}")
mime_type = mimetypes.guess_type(IMAGE_PATH.name)[0] or "application/octet-stream"
encoded = base64.b64encode(IMAGE_PATH.read_bytes()).decode("ascii")
payload = {
"input": [
{"type": "text", "text": TEXT},
{
"type": "image_url",
"image_url": {
"url": f"data:{mime_type};base64,{encoded}"
},
},
]
}
Path("multimodal-request.json").write_text(
json.dumps(payload, ensure_ascii=False, indent=2),
encoding="utf-8",
)
print("已生成 multimodal-request.json")
如果你的 Harness 兼容类似 OpenAI 的 HTTP 消息格式,可以这样发送。HARNESS_ENDPOINT、认证头和 JSON 字段只是示例,使用前需要对照 v0.1.0-rc.8 的实际帮助信息或服务配置调整:
export HARNESS_ENDPOINT="http://127.0.0.1:8000/v1/messages"
export HARNESS_TOKEN="replace-with-your-token"
curl --fail-with-body "$HARNESS_ENDPOINT" \
-H "Authorization: Bearer $HARNESS_TOKEN" \
-H "Content-Type: application/json" \
--data-binary @multimodal-request.json
这个模式的重点不是 Data URI 本身,而是把图片和任务指令放进同一个结构化请求。生产环境中还要考虑图片大小、压缩、格式白名单、敏感信息脱敏以及请求日志中是否会保存图片内容。
子 Agent、PowerShell 与极简模式
这次更新并不只有多模态能力。
Claude Code 和 Codex 进一步接入子 Agent 体系,说明 Harness 的工作重点正在从单轮助手转向可分工的任务执行器。一个主 Agent 可以把代码分析、测试检查或文档整理交给子 Agent,再汇总结果。这样的结构适合复杂任务,但也会带来上下文传递、权限边界、重复调用和成本控制问题。启用前应明确每个子 Agent 能访问哪些目录、能执行哪些命令,以及失败时如何回收状态。
Windows 终端加入持久 PowerShell 会话,则解决了另一类非常具体的问题:环境变量、当前目录、虚拟环境和前一条命令的状态可以在连续操作中保留。对于需要多步执行的构建、调试和部署任务,这比每次启动全新 shell 更接近真实开发环境。
极简模式预设默认开启,代表工具希望降低初次使用时的界面和配置负担。它适合快速试用,但团队落地时仍应检查默认权限、模型选择、会话持久化和命令执行策略,避免“能跑起来”被误认为“已经适合自动化运行”。
采用前的检查清单
可以按下面的顺序验证这次更新是否适合你的工作流:
- 用一张无敏感信息的错误截图测试原生图片请求。
- 分别验证普通对话、
/goal和/plan是否能正确接收图文输入。 - 检查当前模型或后端是否真的支持图片处理,避免把图片静默丢弃。
- 限制图片大小和格式,必要时在发送前压缩或打码。
- 为子 Agent 配置最小目录和命令权限。
- 在 Windows 上确认持久 PowerShell 会话不会复用错误的环境状态。
- 记录多模态请求的耗时、失败率和额外成本。
v0.1.0-rc.8 的价值不只是增加了一个“上传图片”的入口。更重要的变化是,图像开始成为目标定义、计划生成和工程执行的一等输入。对个人开发者来说,这能减少从截图到文字的手工转录;对团队来说,则需要同步建立权限、隐私、模型能力和可观测性边界。把它当作任务编排能力的一部分来验证,会比只测试图片能否被识别更接近真实收益。