前言¶
在 DeepSeek Harness(DSH)裏跑多 Agent 工作流時,子 Agent 數量可以調,但那隻限制「同時駐留的子任務個數」,並不保證主 Agent 與子 Agent 不會在同一時刻各發一路模型推理。本地部署若在當前硬件與推理配置下只能穩定跑單路請求,多路同時打向後端時,請求容易堆在隊列裏,延遲拉長,個別配置下還會出現 tok/s 明顯下降。DSH 宿主側也有全局調度,但本地單路會話和雲端會話往往希望分開管。下面介紹社區插件 dsh-session-concurrency(倉庫 MingoYung/dsh-session-concurrency),它在輸入框左側提供原生滑桿,爲當前根會話及其子孫 Agent 設置 1–10 的推理併發額度,並在額度爲 1 時實現主 Agent 讓出通道、子任務按分支順序執行的串行交接。
這是什麼¶
dsh-session-concurrency 是 DSH 原生插件,維護者爲 MingoYung,在社區目錄中歸類爲工作流。英文簡介爲:Per-session Agent inference concurrency controls for DeepSeek Harness;帶原生 Composer 滑桿,並支持 serial parent/child handoff(父 Agent 與子 Agent 的串行交接)。
插件限制的是同一會話內同時運行的模型推理請求數(走當前 DSH 進程的 llm/stream 路徑),主 Agent 與子孫 Agent 共用該額度;其他主會話各自獨立。它不讀消息正文或模型密鑰,也不靠模型名決定是否啓用。
核心功能¶
會話級滑桿(1–10)¶
在發送區輸入框左側出現「併發」控制:可選宿主默認(移除該主會話的自定義額度,恢復 DSH 原有調度)、自定義(1–10 滑桿,應用後持久化)。子會話界面顯示「併發 繼承」,隨主會話統一調整。
額度 1:主 Agent 與子任務串行¶
選 1 時,主 Agent 在派發子任務後會等待,不再佔用推理通道;同一父 Agent 通過原生 subagent 的多次調用會進入派發隊列依次啓動;工作流經 startActivation 創建的分支也會按生命週期順序進入推理。超額請求在 DSH 側異步等待,由程序監聽原生事件並週期性讀取 Host 任務狀態,無需主模型輪詢,也無需臨時放寬爲雙通道。
典型順序如下:
主 Agent 分析並派發
↓
主 Agent 等待,不再請求模型
↓
子任務 A(含其孫任務)結束 → 子任務 B → 子任務 C
↓
所有子任務結束,DSH 送回結果,恢復主 Agent
額度 N(2–10) 表示該根會話及其子孫在本 Host 內最多同時運行 N 條推理流(含主 Agent);工具 I/O 可重疊,仍保留原有推理限流方式。
狀態與邊界說明¶
狀態面板區分實際推理、排隊 Agent、讓位等待、未結束子任務與暫停任務。明確暫停且保留待處理輸入的子任務不會被插件自動重啓。設置僅在後臺持久化成功後顯示已應用;切換會話時,遲到的舊請求不會覆蓋新會話按鈕狀態。
與原生 子 Agent 駐留容量(默認 8)獨立:插件只讀取和展示駐留容量,不修改全局設置。外部進程(如 Codex、ACP)自行發出的模型請求不在計數內;兩個主會話各設 1 仍可能對同一本地推理端點合計發起兩路請求,跨會話共享端點的限流需另做策略。
安裝與啓用¶
適配並實測版本:DSH NEXT 2.0.21-next / DSH 內核 0.2.1-rc.4(package.json 中 engines.dsh 爲 0.2.1-rc.4)。其他內核版本需自行覈對擴展接口。插件當前發佈版本爲 0.2.0,許可證 MIT。
安裝步驟來自項目 README,不是 dsh plugin add github:… 一類命令:
- 獲取構建產物
local-session-concurrency-0.2.0.tgz(無需解壓)。公開發布以 Releases 爲準;本地可自行npm run build && npm pack。 - 在 DSH 中打開「插件 → 添加插件」,填入該 tgz 文件的完整本地路徑,安裝並啓用。
- 按界面提示刷新或重新加載插件。
- 在發送會話第一條消息前,點擊輸入框左側「併發 默認」,選「自定義」,調整滑桿並點「應用」。
本地單路模型會話選 1;雲端會話可保留宿主默認或設更高額度。會話設置保存在:
$DSH_HOME/plugins/session-concurrency/limits.json
內容爲會話 ID 與數字額度。卸載保留該文件,便於重裝後恢復;禁用或卸載不會改原生子 Agent 全局配置。
典型用法¶
- 本地 Qwen 等單路服務:新開主會話,首條消息前將併發設爲 1,再讓主 Agent 派發多個子任務;同會話內推理應依次執行,避免主、子同時佔滿後端隊列。
- 本地 + 雲端混用:本地會話設 1,另開雲端會話用宿主默認或更高 N,避免爲遷就本地反覆改 DSH 統一設置。
- 需要有限並行:在確認後端能承載的前提下,同一會話將滑桿設爲 2–10,在並行與排隊之間按硬件能力折中。
建議在會話空閒時升級或重載插件;運行中降低額度不會打斷已開始的推理,新請求會等存量降到上限以下。
適用場景與注意¶
適合:本地模型在當前配置下只能高效處理單路推理;多 Agent 工作流下同一會話內需要可控的推理併發;希望按會話隔離額度而非只改全局子 Agent 數量。
注意:
- 插件以當前 DSH 進程權限運行;安裝前應查看 GitHub 源碼 與 MIT 許可證,自行評估信任邊界。
- 額度覆蓋進程內 Spawn/Fork 子 Agent 等常見路徑,不覆蓋其他進程自發起的模型請求;延遲與 tok/s 改善取決於模型、硬件與後端,README 中的測試用於驗證調度行爲,不保證速度提升。
- 分支串行面向獨立委派;若任務必須等另一分支產出再協作,應調整依賴或併發額度,插件不會憑超時猜成功或繞過審覈(如 ClearAI 類審覈仍走宿主機制)。
- 運行狀態補接依賴 DSH 0.2.1-rc.4 的只讀
manager.resident等接口;升級內核後需重新驗證。
社區目錄頁:skillhub.cn 插件頁。目錄爲社區站點,與 DeepSeek / 幻方無官方從屬關係;DSH 生態強調「一切皆插件」,本插件是工作流類擴展之一。
結尾¶
dsh-session-concurrency 把「每會話推理併發」做成輸入框旁的原生控件,並把主 Agent 計入額度,針對本地單路模型下的主/子爭用問題給出可操作的調度語義。問題反饋見 GitHub Issues;實現細節與測試說明見倉庫 README 與 0.2.0 發佈說明。