DeepSeek Harness Headless 模式
内置 headless profile 会从命令行运行一个 DSH 任务、打印最终回答并自动退出,不启动 Web UI,也不会打开监听端口。
本页内容
DeepSeek Harness 可以不启动 Web UI 吗?
可以。 DSH 自带 headless profile,用于一次性的命令行任务。它会创建新的持久化 Agent 会话,执行一个任务,打印最终 Assistant 回答,然后退出。
Headless 不打开浏览器,也不监听 Web 端口,因此适合脚本、CI、批处理和纯终端自动化。
运行一个 DeepSeek Harness Headless 任务
npx @deepseek-ai/dsh --profile headless "run the tests"引号里的内容就是本次调用唯一的任务。替换成你希望 Agent 完成的工作即可。
npx @deepseek-ai/dsh --profile headless "summarize this repository"只想查看当前命令说明而不执行任务时,可以使用 --help。
Headless 会输出什么?
stdout
任务结束后,最后一个非空的 Assistant 回答会写到标准输出。
stderr
模型服务商产生的 reasoning delta 可能写到标准错误;运行错误也会在这里报告。
退出码 0
最终 turn 正常完成。
退出码 1
任务被中止、发生错误,或没有得到正常完成的最终 turn。
任务结束后进程会退出,因此成功运行不会留下 Web Server 或后台 Agent 等待下一条消息。
在脚本或 CI 中使用 DSH Headless
对自动化最有用的边界是进程退出码:0 可以作为完成信号,非 0 则交给 Shell 或 CI Runner 当作失败处理。
npx @deepseek-ai/dsh --profile headless "review the failing tests"
status=$?
if [ "$status" -ne 0 ]; then
echo "DSH task failed" >&2
exit "$status"
fi注意日志敏感信息
Reasoning 可能写入 stderr,而很多 CI 平台会长期保存 stderr。应把这些日志视作可能包含敏感模型输出的内容,并控制访问权限。
当前 Headless 模式的限制
- 每次只运行一个任务。回答完成后进程就会退出,不提供交互式追问。
- Headless 通过 DSH Launcher 运行,并依赖 Launcher 提供退出机制。
- 命令行主要打印 Reasoning 与最终 Assistant 回答,不会把所有中间工具输出当作通用 CLI Transcript 持续打印。
- 模型产生第一段输出之前没有额外 Heartbeat,因此首 Token 较慢时终端可能暂时没有新内容。
Headless 模式和 DSH Web UI 怎么选?
适合 Headless
一次自动化任务、需要 Shell 可读取的结果、退出码、CI 集成,或完全不需要图形界面的任务。
适合 Web UI
多轮交互、可视化授权、会话浏览,以及需要图形界面持续操作的工作流。
主要来源
DeepSeek Harness 官方 dsh-headless 中文 README。DSH 仍处于开发者预览阶段,CLI 行为可能随版本变化。