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
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则