前言¶
在 DeepSeek Harness(下稱 DSH)上做長文寫作智能體,一種常見做法是把檢索、撰寫、修訂封裝成一組工具,掛在默認的 ReAct 循環上。這樣一來,大綱、草稿、修訂都擠在同一條循環裏,不同類型的工作沒有各自的位置,中途修改也缺少獨立的承載。
dsh-agent-driver-writehere 換了一個掛載點:它不往默認循環上追加工具,而是把 WriteHERE 的長文寫作循環(異構遞歸規劃)實現爲一個 agent driver,作爲第二個推理循環運行。下面介紹它的設計、安裝與用法。
這是什麼¶
dsh-agent-driver-writehere 是 Player-YN 維護的 DSH 插件,許可證爲 MIT。一句話定位:把 WriteHERE 長文寫作循環(異構遞歸規劃)作爲 DeepSeek Harness 的 agent driver 運行——WriteHERE 作爲第二個推理循環,而不是額外的 ReAct 工具。
重點在「驅動」二字。它不是一個工具包:宿主在準備會話循環時可以直接選用這個驅動構造器,長文寫作的規劃、檢索與撰寫由此獲得獨立於默認 ReAct 循環的運行方式。
核心機制:tick 協議與類型化卡片¶
寫作循環由 tick 協議驅動,每個週期依次經過四步:
GetInfo → Update → Decide → 類型化執行(Execute)
循環內的工作以三種類型化卡片承載:
write:讀者正文。葉子 write 節點追加寫入article.md。think:備忘。task:通過startContinuable調用preset: 'standard'的 worker。
配套有兩條約束:
- 編輯會話使用 WriteHereAgent 構造器,且
tools: [],不使用原生函數調用工具;會話永遠不會打開終端。需要執行命令、讀取倉庫或調用外部 API 時,應寫成 task 卡片。 - task 卡片會擱置該流程(park the process);需要 worker 返回時,請使用 Web。
Web UI:Card tree¶
Web UI 提供 Card tree 可拖拽窗口:無限畫布,父子連線保持連接,默認自上而下佈局。會話運行時,可以從側邊欄頁腳打開它,直接查看卡片樹的展開。
安裝與啓用¶
先做準備工作:確認 dsh 在 PATH 上,且本機安裝了 pnpm。這個包尚未發佈到 npm registry;由於它聲明瞭 dsh.bundle,官方加載器 dsh plugin add 在安裝時會追加一個配置層並安裝 zod。
一行安裝(推薦):
dsh plugin --profile web add github:Player-YN/dsh-agent-driver-writehere
dsh --profile web
插件首次加載時(僅當 ~/.dsh/.agent-presets/ 不存在),會複製 article-editor 預設,註冊 WriteHere 驅動並綁定該預設。React 仍是 標準模式 / PTC / 極簡 / 創造 的默認驅動;綁定 WriteHere 的會話不會回退到 React。
如果不希望 main 分支移動導致安裝結果變化,可以用 #<sha> 固定 commit 安裝:
dsh plugin --profile web add github:Player-YN/dsh-agent-driver-writehere#<sha>
也可以先 clone,再在倉庫目錄內添加:
git clone https://github.com/Player-YN/dsh-agent-driver-writehere.git
cd dsh-agent-driver-writehere
dsh plugin --profile web add .
Windows 下可以從 checkout 安裝並立即複製預設:
.\install.ps1
經過上面的步驟,可以用以下命令確認、更新或移除插件:
dsh --profile web --dump-config # 查找 "# == dsh-agent-driver-writehere"
dsh plugin --profile web update github:Player-YN/dsh-agent-driver-writehere
dsh plugin --profile web remove dsh-agent-driver-writehere
兩點提醒:如果某個 profile 已經從其他層組合了該驅動,請勿再次添加 bundle;install-remote.sh / install-remote.ps1 只是對官方 add 的包裝並負責複製預設,屬於可選項,只應執行你已讀過的腳本。
典型用法¶
Web 是推薦的路徑,步驟如下:
1、啓動 profile:dsh --profile web(或 dsh web)。
2、新建會話,選擇「技術博客博主」(article-editor)。該會話會綁定 WriteHere 驅動。
3、發送一個主題,而不是 shell 命令。
4、從側邊欄頁腳打開 Card tree,查看卡片樹的父子連線。
5、葉子 write 節點追加寫入 article.md;task 節點把工作交給 standard worker。
如果宿主支持把 --preset 轉發到 session.header.agentPreset,也可以走 headless 模式:
dsh --profile headless --preset article-editor "Why write-back is required"
適用場景與注意¶
適合的對象:在 DSH 上搭建長文寫作工作流,希望規劃、檢索與撰寫的中間產物有結構化承載的開發者。
使用前有幾點需要留意:
- 插件以當前 dsh 進程的權限運行,安裝前應當檢查源碼與許可證(本項目爲 MIT)。
- 發佈環節(例如微信公衆號的排版與發佈)不屬於本包——宿主調度器只負責規劃、更新與撰寫。
- 編輯會話不打開終端,命令、倉庫讀取和外部 API 都應通過 task 卡片完成。
- task 卡片會擱置流程,需要 worker 返回時請使用 Web。
小結¶
dsh-agent-driver-writehere 的價值在於換了一個接入方式:不是把長文寫作拆成默認循環上的零散工具,而是把 WriteHERE 的異構遞歸規劃循環作爲第二個推理循環,用類型化卡片承載規劃、檢索與撰寫,並通過 Card tree 把過程攤開在 Web UI 裏。如果你在 DSH 上有長文寫作的需求,可以從下面兩個地址開始:
- 目錄頁:https://www.skillhub.cn/plugins/Player-YN/dsh-agent-driver-writehere
- GitHub 倉庫:https://github.com/Player-YN/dsh-agent-driver-writehere