dsh-cli-interactive:DeepSeek Harness 的交互式終端 REPL

DeepSeek Harness (DSH) 提供了基於插件和 Profile 的架構,官方的 dsh-headless 模式是一次性提交任務並退出,適合腳本調用。dsh-cli-interactive 是一個 out-of-tree 的 Profile Bundle,疊加在官方 dsh-base 之上,複用 DSH 的核心能力(Agent 循環、會話持久化、工具調用),將 headless 的“提交即退出”替換爲持久化的交互式終端 (REPL)。它不掛載 Host / HTTP / 瀏覽器插件,保持純粹的終端形態。

核心功能

該插件提供以下功能:

  • 交互式終端 (REPL):輸入即消息,Agent 回覆採用流式輸出。
  • 會話持久化:每輪結束後將會話落盤到 $DSH_HOME/sessions/*.jsonl。
  • 恢復舊會話:使用 --resume 參數恢復歷史會話繼續對話。
  • 終端審批應答:在終端直接對權限請求進行 y/n 確認。
  • Slash 命令:支持 /help、/sessions、/model、/permission、/cancel、/session、/workspace、/exit 等指令。
  • 輸入歷史與補全:輸入歷史保存至 $DSH_HOME/cli.history,支持 Tab 補全。
  • 零工具鏈構建:僅需 Node.js 22+,無需額外構建工具。
  • 無網絡插件:不掛載 Host、HTTP 或瀏覽器插件。

安裝與啓用

使用前需滿足以下條件:
* Node.js 版本 >= 22。
* 已全局安裝 @deepseek-ai/dsh。

安裝插件到 cli Profile:

dsh plugin --profile cli add file:$PWD/dist

安裝後可使用 dsh --profile cli --dump-config 驗證組合層。

典型用法

進入 REPL:

dsh --profile cli

先跑一輪任務,然後進入 REPL:

dsh --profile cli "先 review 一下代碼庫"

跑一輪即退出(腳本友好模式):

dsh --profile cli --once "先 review 一下代碼庫"

恢復舊會話:

dsh --profile cli --resume session-xxxx

切換模型:

dsh --profile cli --model deepseek-v4-pro

管道輸入:

echo "任務" | dsh --profile cli --once

適用場景與注意

適用場景:需要長時間、多輪對話的代碼審查、調試或工作流值守。

已知限制:
1. 單 Agent 單進程:一個 CLI 進程僅支持一個會話。多會話需開啓多個進程。
2. 內存中會話:會話僅存在於運行中的進程內存裏,進程結束後需依賴磁盤日誌配合 --resume 恢復。
3. 無 Web 功能:不支持瀏覽器 UI 或 API 接口。
4. 審批依賴終端:無人值守的自動化場景下,審批請求會卡住等待輸入,建議使用 /permission never 或環境變量 DSH_PERMISSION_MODE=danger-full-access 預置策略。
5. 非 TTY 限制:在管道模式下不繪製 spinner 或活動行,僅輸出文本與輪末摘要。
6. 同步契約:插件 apply() 方法必須同步執行,否則會導致死鎖。

總結

dsh-cli-interactive 將 DSH 的底層能力封裝爲一個類 Claude Code 的 CLI 界面。它通過持久化 REPL、會話管理和終端審批,解決了從腳本化調用向交互式協作切換的需求。開發者可以通過簡單的 Profile 安裝快速接入。

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

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

小夜