dsh-exec-extension:DeepSeek Harness 的一次性執行 Bundle

前言

DeepSeek Harness (DSH) 的默認 headless-startup 插件通常要求在配置文件中聲明任務,或者通過固定的命令行參數運行。這限制了在 CI 流水線或臨時會話中進行“一次性”任務執行的場景。dsh-exec-extension 提供了一個 bundle,旨在讓開發者通過 CLI 直接注入任務和配置,無需在磁盤上持久化 settings.yaml。

插件定位

該插件由 LvDAO 維護,遵循官方 surface 插件的接口規範(包含 dsh.bundle.patch、parseCmdline 和 commander)。它對 headless-startup 進行了覆蓋,禁用了默認的 [task...] 聲明,並插入了一個替換邏輯。這使得 headless-runner 能夠在不修改原有代碼的情況下,通過 CLI 參數接收到 headlessStartup.task 等上下文信息。

安裝與啓用

安裝前請確保已安裝 DSH CLI,並使用與 CLI 相同的 latest npm 通道。由於 @deepseek-ai/dsh-headless 的 latest 標籤可能滯後,安裝命令需要先獲取 CLI 的當前版本。

dsh plugin --profile exec add @deepseek-ai/dsh-headless@$(npm view @deepseek-ai/dsh version)
dsh plugin --profile exec add dsh-exec-extension
dsh --profile exec --help

如果網絡受限,支持通過 Git 倉庫安裝:

dsh plugin --profile exec add github:LvDAO/dsh-exec-extension

核心功能

該插件將一次執行(one-shot exec)所需的能力封裝在 CLI 中,主要提供以下特性:

  • 任務輸入方式:支持直接傳參、管道輸入(stdin 合併到 prompt)或文件附加(@file / -f)。
  • 會話流式輸出:通過 --format json 或 --mode json 可以獲取會話事件的 JSONL 流。
  • 運行時配置:支持通過 --dir 設置工作目錄,通過 --cwd / --cd 等參數傳遞。
  • 模型與工具覆蓋:支持進程內模型覆蓋(Rust WASM),無需寫入配置文件;支持通過 --tools-mode 切換工具展示模式(native/code/both)。
  • 輸出約束:提供 --output-schema 用於在 prompt 層面約束 JSON Schema,但注意這不是解碼層面的約束。
  • 安全與權限:提供沙箱模式(read-only / workspace-write / danger-full-access)和審批策略(ask / never / allow)。

典型用法

基本調用格式如下:

dsh --profile exec [options] [--] [task|-]

示例:

# 直接傳遞任務字符串
dsh --profile exec "summarize this"

# 通過管道讀取 stdin 併合併到 prompt
cat README.md | dsh --profile exec "summarize this"

# 附加文件並使用 CI 自動審批模式
dsh --profile exec @notes.md --full-auto "use the notes"

注意事項與限制

在使用過程中需注意以下幾點:

  1. 權限模式:--yolo 參數僅用於跳過權限提示(自動允許),它不會自動開啓完全訪問權限。如需完全訪問,必須顯式使用 --sandbox danger-full-access。
  2. 輸出約束性質:--output-schema 是 Prompt 級別的約束,旨在引導模型輸出符合 Schema 的內容,而非強制解碼層面的約束。
  3. 未知 Flag:CLI 可能會對未知 flags 報錯。
  4. 功能非目標:該插件不包含以下功能:MCP、Host、HTTP 協議、resume 會話、--image 圖像輸入、以及 forking headless-runner 進程。這些能力需通過 profile patch 或進程環境變量實現。

總結

dsh-exec-extension 適合需要在命令行中快速調用 DeepSeek 模型處理特定任務(如代碼分析、文本總結)的場景。它通過插件化機制,在不修改 headless-runner 核心代碼的前提下,擴展了 CLI 的靈活性。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜