前言¶
在 DeepSeek Harness(dsh)裏跑長任務時,常見的缺口不是「能不能丟到後臺」,而是丟出去之後還能不能繼續說話。內置的後臺作業偏即發即棄:可以看到輸出、可以殺掉進程,但很難在同一場對話裏給它補一句「先看 snapshot 測試」、也很難在 Web 側欄裏點開子會話。調度類插件負責「何時啓動」,狀態欄類插件負責「展示進度」,真正缺的是對一場可續聊子會話的交互式操控。
dsh-background-agents 把這件事接到官方子代理接縫上:啓動一個持續工作的子 agent,在側欄看進度,隨時發消息引導,必要時請求中斷,父會話不用切走。v0.5.0 之後還加了一套持久化的多代理團隊房間,消息總線和任務板走 harness 自己的存儲,重啓後還能恢復。
DeepSeek Harness 的官方定位是「一切皆插件」。社區站點 DeepSeek Harness 插件庫 收錄了一批擴展,它是獨立運營的目錄,與 DeepSeek / 幻方沒有從屬、背書或贊助關係。本文按該目錄詳情頁、GitHub README / package.json / cordis.patch.yml、npm 發佈頁,以及 DeepSeek Harness 官方倉庫 交叉覈對後整理。
這是什麼¶
dsh-background-agents 是一款會話與消息類插件,由 PerryLink 維護,許可證 Apache-2.0,主要語言 JavaScript。目錄頁給它的定位是:爲 DSH 提供交互式長會話後臺 agent——可啓動一個持續工作的子 agent,在 Web 側邊欄查看進度、隨時發消息引導、必要時中斷,全程不離開當前會話。
倉庫 README 寫得更具體:它把即發即棄的後臺作業升級成可續聊的子會話,並在同一套控制面上加上進度注入、空閒歸檔和側欄面板。npm 包名同樣是 dsh-background-agents,當前發佈版本 0.5.1(2026-08-17)。兼容聲明是 DeepSeek Harness 0.1.0-rc.6,peer 範圍爲 >=0.1.0-rc.5 <0.2.0;Node 要求 ^22.19.0 || >=24.0.0。截至 2026-08-18,目錄頁與 GitHub 均顯示 5 顆星。倉庫收錄於目錄的日期是 2026-08-15。
維護者在 README 裏把它和另外幾類社區插件劃開了邊界:titanwings/dsh-automation 負責定時啓動新會話,本插件沒有 cron;vlln/dsh-task-status 展示工具級作業,本插件創建並操控的是 agent 會話;YYTbit/dsh-plugin-agent-dashboard 偏展示,本插件的行可以跳進子會話、發消息、請求停止。
核心功能¶
五個操控工具¶
插件在官方子代理接縫(startContinuable / followup / interrupt / listChildren)上提供五個工具,不自己做生命週期路由,也不去殺進程樹:
background_agent:啓動一個可續聊的子代理。可選label、tool_filter、persona、max_depth,以及childProvider/childModel覆蓋子代理的模型路由。tool_filter只從子代理視野裏移除工具,不會授予新工具。bg_message:按 agent id 投遞後續輪次。bg_list:列出本會話後臺代理狀態;recursive: true時帶parentId/depth看後代樹。目錄不可用時返回明確的unrecoverable標記,不會捏造空列表。bg_result:讀取子代理最新助手輸出。回退到推理內容時標記textSource: 'reasoning';超長文本按resultMaxChars(默認 4000)截斷並標記truncated。bg_stop:請求中斷當前輪次。停止等於 request interruption,清理工作屬於延續管理器。
一次性(one-shot)子代理不會出現在 bg_list 裏,也不能被 bg_message 投遞。子代理默認繼承父會話的模型路由。
進度注入與空閒歸檔¶
autoReport 默認開啓:每個子代理輪次結束後,向父會話注入一條節流進度行,規範前綴是 [background-agent] …。reportDelivery 默認 quiet,把該行追加到下一次模型請求;設爲 wakeup 時,父會話空閒會再開一輪。同一子代理兩次注入的最小間隔由 reportThrottleMs 控制,默認 15000 毫秒。
空閒清掃默認開啓(autoArchive: true)。安靜超過 idleTimeoutMinutes(默認 120 分鐘)的子代理會被歸檔,之後可用 bg_message 喚醒。autoArchive: false 則讓安靜的監視者暫停駐留,清掃器不會歸檔它們。每個父會話未歸檔後臺代理的硬上限是 maxBackgroundAgents,默認 4;這個預算與內置 subagent 啓動的可續聊直接子代理共享。
進度與狀態不靠單獨數據庫。結構化事實寫進父會話日誌的 background-agents/fact 事件(帶 ignorable: true),儀表盤和 bg_list 每次打開都從日誌重建。
Web 側欄面板¶
backgroundAgents 會話投影把父日誌摺疊成儀表盤行。Web 側欄面板可以看即時狀態、跳進子會話、發消息、請求停止,以及預覽結果。這一半依賴 Web 客戶端注入(package.json 裏聲明瞭 @deepseek-ai/dsh-client-ui-sidebar 等),工具本身在 headless profile 上也能用。
團隊房間(v0.5.0+)¶
/room 命令族加上八個 room_* 工具提供持久化多代理房間:成員各自是獨立會話,帶定向 / 廣播消息總線、共享任務板和共享時間線。數據放在 team_rooms 存儲域,後端是 SQLite 或 JSONL,不另起服務。跨成員任務交接走官方審批接縫:room_transfer_task 沒有 answerer 授權時失敗關閉。
團隊房間依賴 @deepseek-ai/dsh-storage-domain。沒有存儲域時,/room 和 room_* 禁用,五個 bg_* 工具仍可加載。bundle 補丁會插入 storage / storage-json / storage-domain 行;在已經組合這些行的 web profile 上按 id 覆蓋是安全的,在沒有存儲包的構建上這些行加載失敗,房間半側保持休眠。
房間上限可在配置裏改,默認 maxRooms 16、maxMembersPerRoom 8、maxRoomsPerMember 4。單條房間消息超過 maxMessageChars(默認 4000)會被拒絕,不會截斷。
與內置子代理工具的關係¶
Harness 核心已有 subagent、send_message、interrupt_agent 和子端 report。本插件的 bg_* 是它們的會話級同伴,可以一起掛載:
background_agent與subagent(backgroundMode: 'continuable')走同一條startContinuable接縫,額外做 per-child 的tool_filter/persona/max_depth校驗和每會話上限。bg_message/bg_stop與send_message/interrupt_agent語義相同,同時維護投影事實。- 內置
report由子模型自己調用;本插件在每個子輪次後自動注入節流進度。
核心工具沒有 bg_list、bg_result、空閒歸檔,以及按父會話摺疊的面板。本插件也不做定時觸發、跨機器 / 遠程代理,也不改官方子代理激活契約。provider 必須指向具備 prepareContinuable 的 provider;缺失時 background_agent 會一直失敗。
安裝與啓用¶
社區目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端裏運行即可:
dsh plugin add github:PerryLink/dsh-background-agents
需要可復現安裝時,目錄頁的寫法是把 commit 哈希接到倉庫後面:
dsh plugin add github:PerryLink/dsh-background-agents#commit
把 #commit 換成實際提交哈希。截至 2026-08-18,main 最新提交是 4bcab91f764dc30994119857824e61bb3515f90e,對應發佈標籤 v0.5.1。插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前應檢查源代碼倉庫和許可證。
倉庫 README 另外提供了指定 profile 的 git / npm 渠道。倉庫已提交構建產物 lib/,git 安裝不需要 prepare 或 allowBuilds。bundle 補丁會寫入 id: background-agents 這一行,並把必填項 provider 設爲 spawn:
# git 渠道(跟蹤 main)
dsh plugin --profile web add "github:PerryLink/dsh-background-agents#main"
# 固定發佈標籤
dsh plugin --profile web add "github:PerryLink/dsh-background-agents#v0.5.1"
# npm 渠道(已發佈版本,當前 0.5.1)
dsh plugin --profile web add dsh-background-agents
重啓後驗證配置行:
dsh --profile web --dump-config | grep -A4 'id: background-agents'
插件需要子代理脊柱已掛載;README 說明任何基於 @deepseek-ai/dsh-base 的 profile 都具備。可調項都是 Schemastery Config 字段,改 cordis.yml 或 profile 覆蓋,不要改源碼。僅 provider 爲必填,其餘如 autoReport、idleTimeoutMinutes、maxBackgroundAgents、房間上限等都有默認值。
卸載:
dsh plugin --profile web remove dsh-background-agents
也可以從 profile 補丁裏刪掉該行。
典型用法¶
裝好並確認 dump-config 裏出現 id: background-agents 之後,在任意會話裏直接讓模型調用工具,或按 README 的示例手動走一遍:
background_agent "watch the repo for test failures and keep me posted" (label: test-watch)
bg_list
bg_message <agentId> "also check the snapshot tests now"
bg_stop <agentId>
操作順序可以按下面理解:
- 用
background_agent啓動子代理,拿到穩定的 agent id。需要限制子代理工具時傳入tool_filter;名稱會按配置裏的allowedChildTools校驗,空或未設表示不額外限制。 - 用
bg_list看狀態。Web 側欄同一套投影也可以跳轉、預覽bg_result。 - 任務方向變了,用
bg_message投遞後續輪次,不必新開一個子代理。 - 需要停下當前輪次時用
bg_stop。這是中斷請求,不是殺進程。 - 若啓用了存儲域,再用
/room create|join|send|tasks以及room_post、room_create_task、room_claim_task、room_transfer_task做跨會話協作。
倉庫還帶了一個無需 API key 的端到端演示,用腳本化 LLM 驅動父會話和後臺子代理。dev/ 目錄被 gitignore,路徑要按本機 checkout 調整,PowerShell 示例如下:
$env:DSH_HOME = 'D:/deepseek-harness/Project/Plugins/dsh-background-agents/dev/dsh-home'
pnpm dsh --profile headless --patch dev/cordis.yml "【父會話】驅動後臺 agent 演示"
適用場景與注意事項¶
適合已經在本地跑 DeepSeek Harness、需要「一邊繼續對話、一邊讓子代理盯倉庫 / 跑長任務」的開發者。Web profile 還能用側欄面板操作;headless 則主要走五個 bg_* 工具。需要多會話分工、共享任務板時,再打開團隊房間半側。它不適合當作定時任務系統,也不能把子代理派到另一臺機器上。
使用前建議先接受這些限制:
- 插件與當前
dsh進程同權。workshop 清單聲明的權限是session:append、subagent:spawn、tools:register。安裝前檢查 GitHub 源碼與 Apache-2.0 許可證;需要可復現安裝時固定 commit 或v0.5.1這類標籤。 - 子代理是該部署進程內的可續聊會話。進度事實寫在父會話日誌裏;團隊房間寫在
team_rooms存儲域。沒有獨立數據庫,也不對外發網絡請求。 tool_filter只會少給工具,不會多給。bg_stop不殺進程樹。- 沒有
@deepseek-ai/dsh-storage-domain時,房間相關命令和工具不可用,五個bg_*仍在。 maxBackgroundAgents計入本會話每一個可續聊直接子代理,包括內置subagent啓動的那些。- 社區插件目錄不是官方應用商店。兼容聲明釘在
0.1.0-rc.6這一檔 peer 範圍,升級 Harness 後應重新驗證。
小結¶
dsh-background-agents 把 DSH 的後臺能力從「丟作業」補成「可續聊的子會話」:五個 bg_* 工具走官方子代理接縫,側欄可以看進度、發消息、請求中斷;v0.5.0 起還可以用團隊房間做跨會話協作。它不負責定時觸發,也不把 agent 派到遠程機器。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-background-agents/
GitHub:https://github.com/PerryLink/dsh-background-agents
npm:https://www.npmjs.com/package/dsh-background-agents