跳到主内容

headless 使用指南

DSH 一次性任务执行组合包,跳过 Web 与浏览器,直接在命令行跑一次 Agent 并退出。

本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。

本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。

快速上手

pilot-harness / @deepseek-ai/dsh-headless

— 源: plugin_wiki.wiki_content

安装与验证

dsh plugin --profile web add @deepseek-ai/dsh-headless

复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。

— 源: plugins.install

关键要点

  • 真正的桌面客户端——Electron 将本地 Harness 运行时打包到 macOS、Windows 与 Linux,负责原生窗口行为,并在启动异常时提供恢复页面。
  • 更安静的 CodePilot 风格界面——统一 Token、圆角、菜单、Hover、设置卡片、Markdown、对话/轨迹切换与平台化标题栏。
  • 服务商与模型管理——连接受支持的服务商,声明 OpenAI 兼容接口,将凭证和普通设置分开管理,浏览实时模型目录,并识别支持图片输入的模型。
  • 不杂乱的工作区上下文——对话列表可展示分支、状态、提醒摘要、模式与模型,Files 则作为真正的右侧栏打开。
  • 插件优先的扩展方式——主题、Worktree 侧栏、Schedule 摘要与 Session 日志导出仍是 Cordis/DeepSeek Harness 配置行,而不是写死在桌面端的业务逻辑。

— 源: plugin_wiki.readme_zh (fallback readme_raw)

常见问题

为什么要叫 headless?

因为这个组合包不挂载 Host、HTTP server、Web runtime 或浏览器插件,进程不开放任何监听端口,只通过 stdout、stderr 与退出码和外部交互。

一次运行能提交多个任务吗?

不能。runner 只会把命令行上的那段任务文本作为一条用户消息提交给 Agent,等 Agent 处理完就退出,没有交互式追问入口。

退出码 0 和 1 分别代表什么?

退出码 0 表示最终 turn 以"completed"结束;其他情况(含中止、模型报错、没有 turn 发生)均为 1,并在 stderr 上写出失败原因。

任务的回答出现在哪?

最后一条非空 Assistant 文本写到 stdout;模型报错的错误码和消息以"dsh: CODE: message"格式写到 stderr;正常情况下 stderr 为空。

不传任务文本会怎样?

启动器在解析阶段就会拒绝,提示"a task is required"并以退出码 1 退出,runner 不会被激活,整个进程不进入 Agent 创建流程。

会打开端口吗?

不会。这个组合包不挂载 Host、HTTP server 或 Web runtime,进程不监听任何端口,适合容器或受限网络环境下执行。

数据存在哪里?

退出前会调用 sessions.flush 把这次会话持久化到宿主配置的 Session 存储,具体路径由 DSH 启动器和 Session 插件决定,本组合包不另设本地文件。

这个组合包会修改提示词吗?

会。它的 cordis 补丁把 system-prompt 的人格改为"You are a coding agent powered by the {{model}} model",并把当前工作目录注入到 persona。

— 源: plugin_wiki.faq_json

兼容性

  • DSH: 0.1.0-rc.7+
  • Node: ^22.19.0 || >=24.0.0 (来自 monorepo 根 package.json)

— 源: plugin_wiki.compatibility_json

踩坑提醒

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

— 来源:通用规则