跳到主内容

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

踩坑提醒

安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。

— 来源:通用规则

headless 使用指南