headless 使用指南
dsh 一次性任务组合包:在 dsh-base 之上挂上 CLI 启动器与直接驱动,将任务作为普通用户消息提交给 Agent,把最后一条 assistant 文本打到 stdout 后退出
本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。
本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。
快速上手
deepseek-harness-desktop — bundle/headless
— 源: plugin_wiki.wiki_content
安装与验证
dsh plugin --profile web add @deepseek-ai/dsh-headless
复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。
— 源: plugins.install
关键要点
- Node.js
^22.19.0 || >=24.0.0 - Rust stable toolchain
- Windows:Microsoft C++ Build Tools 与 WebView2
- macOS:Xcode Command Line Tools
- Linux:WebKitGTK 4.1、Ayatana AppIndicator、RSVG 与 XDO 开发包
— 源: plugin_wiki.readme_zh (fallback readme_raw)
常见问题
这个 bundle 跑起来会打开本地端口吗?
不会。patch 明确不挂载 Host、HTTP server、Web runtime 或浏览器插件,整个进程不监听任何端口。
一定要通过 dsh --profile headless 启动吗?
是。runner 在挂载时强制读取启动器提供的退出钩子;在 dsh 启动器之外以 headless profile 启动会在激活时明确报错。
可以让 agent 多轮追问或者多轮执行吗?
不可以。runner 一次只提交一条用户消息,等待 agent 从忙到闲、打印该区间内最后一条非空 assistant 文本后立即请求退出,没有交互式追问面。
退出码代表什么?
进程退出码由最后一轮 turn/end 决定:completed → 0,其它原因(包括 error、aborted、或整段区间内没有 turn)一律 → 1。
出错信息会写到哪里?
成功时 stderr 保持空;当轮结束原因为 error 时,code: message 写到 stderr,正常运行文本仍写到 stdout。
任务文本从哪来?
来自命令行。headless-startup 通过 commander 解析 dsh --profile headless "<task>" 的位置参数(多词以空格拼接),任务为空或仅空白时直接报错退出,不会启动 runner。
想改默认模型或工具模式该动哪里?
工具模式由环境变量 DSH_TOOLS_MODE 控制(patch 透传到 tools.mode);模型走 dsh-base 的默认模型选择,从 settings 或 Models 页面管理即可,无需改本 bundle。
— 源: plugin_wiki.faq_json
兼容性
- DSH: 0.1.0-rc.5
- Node: >=22.19.0
— 源: plugin_wiki.compatibility_json
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则