前言¶
DeepSeek Harness 的生態理念是「一切皆插件」,agent 類插件也因此很常見。但多數 agent 插件的交互方式仍是「用戶點一下,插件跑一下」:長任務會阻塞當前對話,worker 的中間過程把上下文佔滿,工具權限邊界也比較模糊。
下面介紹的 dsh-assistant 換了一種結構。它由 StarsHarryZhu 維護,以 npm 包 @starsharryzhu/dsh-assistant 分發,版本 0.2.1(本篇按抓取時的倉庫與 package.json 覈對)。核心思路是:對話裏只保留一個輕量的「父代理」,真正幹活的交給後臺 worker 子代理,由父代理統一管理它們的上下文、模型、工作區和權限。下面按架構、能力、安裝、配置、限制的順序說明。
這是什麼¶
一句話定位:這是一個面向 DeepSeek Harness Desktop 的通用聊天代理(general-purpose chat agent),把「用戶操作每個工具」換成「父代理規劃、委派、審批」。
- 維護方:StarsHarryZhu(package.json 的 author 字段署名爲 Starfield)。
- 許可證:MIT,Copyright (c) 2026 Starfield。
- 語言:TypeScript。
- 依賴運行時:DeepSeek Harness Desktop
>=0.2.1-rc.5 <0.3.0。只支持桌面端,網頁版和其他宿主不支持。 - 倉庫現狀:截至抓取時 GitHub 倉庫 StarsHarryZhu/dsh-assistant 沒有 description,star 數爲 0、fork 數爲 0,創建於 2026-11-03。功能描述以 README 爲準。
架構:父代理 + worker 子代理¶
README 把插件描述爲「兩個隱藏的 agent preset + 一個可見的對話」。實際結構分四塊。
1、父代理(router)。它就是聊天窗口裏的那個代理:和你對話、用固定文件上的窄工具記簡單事實、其餘事情用 delegate 交給 worker。它沒有通用文件寫入、shell、web 或官方 subagent 工具,所以不會因爲某個任務卡死,隨時可以接你的下一條消息。
2、Workers。worker 掛在自己的 preset 上,持有真正幹活的工具集。每個 worker 有獨立的 cwd,只能改自己的子工作區(外加臨時目錄);要改別處必須發 request_write_access,由父代理應答。
3、父代理作爲管理者。它從你啓用的模型裏給 worker 選模型和推理力度,把你的請求按你的原話轉述過去,不輪詢進度,只回報結果、決策或失敗。worker 的上下文不進入對話;父代理自己的上下文按可配置比例自動壓縮,默認 50%。
4、權限與隔離。默認允許工作區內寫入,越界自動拒絕。父代理自動批准「與任務匹配的區內工作」,破壞性或含糊的改動只問一句自然語言,不彈模態框。每個 assistant 可以單獨設成只讀、工作區寫入或完全訪問。隔離是雙向的:父代理的記錄工具只存在於兩個隱藏 preset 裏,其他插件的全局工具也不會進這兩個 preset,本插件自身的工具也不會出現在普通會話中。
核心能力¶
以下條目均來自 README。
- 側邊欄有一行入口,打開最近一個 assistant 的對話;不同 assistant 之間切換對話標題,也可以創建新的(需要名稱、稱呼、工作區)。
- 每個 assistant 對應一條長對話,自動壓縮上下文。
- 每個對話可以分別選模型和推理力度,另有 worker 模型多選列表。
- 工作區裏以純文本文件保存記錄:日程
ddl.md、清單、備忘錄、日誌、profile、persona、項目。密碼、卡號、身份證號不會被記錄。 - 日程帶提醒和
/ddl周視圖,每天早上一份日報,另有 watchdog 看門狗。 - 心跳代替定時任務:assistant 每小時自動醒一次,到期事項精確到分鐘喚醒,也可以自己設定下次喚醒。空閒心跳是否調用模型是一個設置項。
- 靜默時間分日常和臨時兩類。靜默時段內的提醒挪到前一天晚上或次日早上,其他微信消息等時段結束再回;assistant 只在你要求時改這些設置。
- profile 裏有自己的時區,由你所說的位置和日程推算,不看設備時區。
- DeepSeek 賬戶餘額提醒,措辭可配置。
- 微信由子插件
im-robot提供:掃碼綁定,assistant 自我介紹;之後在微信裏就是同一條對話。assistant 對每條回覆決定是否同時發微信,你在哪個入口最後說話,需要看到的內容就發到哪。你發的圖、文件、語音、視頻會顯示在對話裏,並存到工作區的IM/WeChat/(默認 30 天,可調,設 0 表示不保留);處理前 assistant 會把文件複製一份出去。回覆會把文本拆成短消息發送。
安裝與啓用¶
要求 DeepSeek Harness Desktop 版本在 >=0.2.1-rc.5 <0.3.0 區間內,且只支持 Desktop。
裝法有兩種:在 DSH Desktop 的 Plugins 頁面安裝,或者命令行:
dsh plugin --profile desktop add @starsharryzhu/dsh-assistant
這條命令會同時裝上兩個子插件 @starsharryzhu/complete-subagent(委派工具、worker 模型選擇、寫權限申請)和 @starsharryzhu/im-robot(微信橋)。兩個子插件在 dependencies 裏固定爲精確版本,只掛載在兩個隱藏 preset 內部;如果單獨安裝其中一個,自帶的那份會自動關掉。
配置項:Plugins 頁與每個 assistant 的 Settings¶
分兩層。
Plugins 頁(所有 assistant 共享):
1、worker 模型列表。
2、上下文壓縮比例。
3、餘額提醒的閾值和檢查間隔。
4、提醒文案。
5、persona 和 profile 的長度上限。
每個 assistant 的 Settings 標籤頁:
1、名稱和稱呼。
2、提醒提前量、日報時間。
3、心跳間隔和空閒喚醒。
4、靜默時間。
5、watchdog 超時。
6、微信開關和消息長度。
設置頁的「Shared settings」按鈕可以打開 Plugins 頁那套共享配置。數字類字段可以直接清空重填,離開字段時會對值做校正。
典型用法¶
README 沒有給端到端示例腳本,下面這些是從能力描述能直接落地的用法。
1、首次創建 assistant:在側邊欄入口新建,填名稱、稱呼和工作區。之後這條對話就是它長期運行的上下文。
2、日常記錄:直接讓 assistant 記日程或備忘,它寫到工作區的 ddl.md 等文件裏,你不用自己維護文件結構。到期前靠心跳和提醒通知。
3、查看一週安排:在對話裏用 /ddl 打開周視圖。
4、委派長任務:把任務描述發給 assistant,父代理會用 delegate 交給後臺 worker,期間父代理仍可接受你的下一條消息。worker 需要改工作區外的文件時,父代理會代爲提問並等你確認。
5、綁定微信:用 im-robot 提供的二維碼掃碼綁定,隨後 assistant 會自我介紹。綁定後從微信發消息到同一個對話;assistant 按條決定是否同時把回覆發回微信。
已知限制¶
README 的 Known limits 一節列出了這些約束,照錄如下。
- 側邊欄的全文本搜索仍能找到 assistant 的對話。
- 應用關閉或電腦休眠時心跳停止;恢復後會補上仍然待辦的事項。
- 應用會保留對話中顯示過的每張圖片和文件的副本,即使
IM/WeChat/已刪除原文件。 - 只隔離工具;其他插件注入的全局 prompt 上下文不做過濾。
- assistant 還不能向微信發送圖片或文件。語音仍是原始 SILK 音頻,文字形式用微信轉寫的文本代替。
- worker 不能修改工作區之外的任何內容;在 DSH 0.2.1-rc.5 上,審批通過的路徑只覆蓋 write/edit 工具,不覆蓋 shell 命令。
- 只在 macOS 上用 Desktop 0.2.1-rc.5 和 0.2.2-rc.1 驗證過,其他系統未測試。
另有一條路線圖:下一步是父代理的單窗口自我管理——在同一個對話裏處理它自己的上下文、模型選擇和長跑任務,減少交接與人工監督。目前尚未實現。
適用場景與注意¶
適合這幾類人:
1、想在 DSH 裏跑「長線陪伴型」agent、而不是一問一答工具的開發者;願意接受「父代理替你管理 worker」這種更自主的模式。
2、需要微信入口同步接收提醒和彙報的人,im-robot 已經做了收發兩側。
3、關注權限邊界的人,插件提供了工作區隔離和逐 assistant 的訪問級別。
同時需要注意:
1、插件按當前 DSH 進程的權限運行。README 未說明它是否以沙箱或降級權限運行;安裝前應先讀源碼,確認工具調用路徑與文件訪問範圍是否符合你的預期。
2、許可證是 MIT,但包內含子插件,且 files 裏帶了 cordis.patch.yml 和 THIRD_PARTY_NOTICES.md,涉及第三方組件,建議一併查看。
3、網頁版和其他宿主不在支持範圍內,務必先確認 Desktop 版本區間。
4、場景描述和功能要點應以最新版 README 爲準,本篇基於抓取時(2026-11-07)的倉庫與 README 內容。
結尾¶
dsh-assistant 的價值在於把委派、權限審批和上下文壓縮交給父代理統一處理,讓對話窗口保持輕量,同時給 worker 提供受控的工作區。當前版本在委派、工作區隔離、自動壓縮、日程提醒、心跳與微信接入上已經可用,父代理的單窗口自我管理是後續路線。
查看目錄頁:https://www.skillhub.cn/plugins/StarsHarryZhu/dsh-assistant
源碼與 README:https://github.com/StarsHarryZhu/dsh-assistant