前言¶
在 DeepSeek Harness(DSH)裏並行開多個對話做同一件事時,常見做法是人工在側邊欄之間切換、複製粘貼上下文。官方 dsh-superagent 面向的是倉庫層自主工人(GitHub / 飛書觸發、工單與 PR 體系),並不直接接管你桌面上已有的聊天窗口。若目標是讓多個側邊欄對話按角色分工、在 step 邊界互發消息、worker 遇阻回問「隊長」而不是反覆打擾用戶,就需要在對話層做跨會話投遞與只讀盯進度。下面介紹社區插件 dsh-cross-session(維護者 cao123-2024,分類:工作流)。
這是什麼¶
dsh-cross-session 是 DSH 持久化插件:不依賴第三方包,以本地目錄作爲 bundle 安裝。一句話定位:讓 Harness 裏多個獨立對話在 step 邊界互相喊話、worker 用 ask_master 回問創建它的主 Agent,並用 get_chat_info 只讀查看對方進度——目標會話對只讀窺視完全無感知。
生態上,DSH 奉行「一切皆插件」;SkillHub 目錄頁 爲社區站點,與 DeepSeek / 幻方無官方從屬關係。源碼與說明見 GitHub:cao123-2024/dsh-cross-session(MIT,package 版本 1.1.0)。
與官方 Super-agent 的分工(摘自 README 對比表):
| 官方 dsh-superagent | 本插件 | |
|---|---|---|
| 工作層級 | 倉庫層自主工人 | 桌面上的對話層協作 |
| 是否接管側邊欄對話 | 否 | 是,在已有對話之間通信 |
| 是否替代對方 | — | 不替代;可疊加使用 |
團隊層級與角色¶
標題前綴即角色,側邊欄會在名字前顯示圖標。新建對話可自動帶前綴;已有對話用 assign_agent_role 補角色,刷新頁面後客戶端圖標生效。
| 角色 | 標題前綴 | 職責 |
|---|---|---|
| 隊長 leader | 隊長| |
接需求、拆分、派活、彙總 |
| 總監 director | 總監| |
四層模式;管經理 |
| 經理 manager | 經理| |
管 3+ worker |
| worker | worker| |
執行;問題回問上級 |
默認 2 層:隊長直管 3–4 個 worker。3 層爲隊長 → 經理 → worker;每個經理建議帶不少於 3 個 worker,經理不夠時不要硬開三層。4 層需配置 allowFourTier: true 且任務規模足夠。完整規則見倉庫內 docs/HIERARCHY.md,AI skill 見 skills/multi-agent-shout/SKILL.md。
協作關係可概括爲:
隊長對話 ── new_conversation ──▶ worker 對話 A
│ ◀──── shout / ask_master ────┘
│
└────── get_chat_info(只讀看上下文與進度)
核心工具與行爲¶
README 中列出的主要工具如下。
| 工具 | 作用 |
|---|---|
new_conversation |
新建獨立對話,支持 role / reports_to;自動寫角色標題前綴 |
assign_agent_role |
給已有對話改角色 |
get_agent_team |
讀當前層級、allow_four_tier 與各 agent 角色 |
list_conversations |
列出 root 對話:標題、工作區、運行狀態(已歸檔不顯示) |
shout |
向另一對話投遞消息:運行中在最近 step 邊界收到,空閒時喚醒新 turn |
ask_master |
worker 專用:把問題交給創建它的主 Agent,而非直接問用戶 |
get_chat_info |
只讀查看狀態、turn/step、最近消息與工具調用 |
rename_conversation |
改側邊欄顯示名(保留角色前綴) |
interrupt_conversation |
停止目標當前 turn,保留待處理輸入 |
archive_conversation |
歸檔已完成的 worker |
list_permission_presets / list_models |
查看可選權限預設與模型 |
configure_conversation |
調整目標對話的權限預設 / 模型 / 思考強度 |
設計要點(便於理解邊界):
- 投遞通過
sessionController.resolveAgent拿到 live Agent(冷會話自動 resume),再以agent-messagerelay 形式steer用戶消息。 - UI 側來源顯示爲「來自會話 AI「標題」」;
get_chat_info僅註冊在非 worker 的 Agent scope。 new_conversation默認把隊長的權限預設複製給新對話(inheritPermissions)。- 安全護欄包括:創建上限、每分鐘限流、消息體積上限、同一對會話交替喊話上限(防 AI 乒乓)、拒絕 subagent 會話。
安裝與啓用¶
要求:DSH 0.2.1-rc.x(desktop 或其他 profile 均可),無額外依賴。
方式一:Plugin Manager(推薦)¶
在 DSH 中把倉庫目錄作爲本地 bundle 安裝:
plugin_manager install_bundle
target = <本倉庫絕對路徑>
方式二:CLI¶
dsh plugin --profile desktop add "<本倉庫絕對路徑>"
安裝後在對應 profile 的 bundle 列表中啓用 @local/dsh-cross-session,必要時刷新頁面。插件以當前 DSH 進程權限運行,安裝前應自行查看源碼與 MIT 許可證。
配置¶
插件通過 cordis.patch.yml 注入 bundle,默認配置示例:
- insert:
- id: cross-session-shout
name: '@local/dsh-cross-session'
config:
maxCreatedConversations: 12
rateLimitPerMinute: 20
maxMessageBytes: 32768
maxShoutChain: 6
inheritPermissions: true
allowFourTier: false
可按需調整創建數量、限流、消息大小、喊話鏈深度、權限繼承與是否允許四層模式。
典型用法思路¶
- 在隊長對話中明確任務書(層級與 worker 數量爲建議,模型也可自行決定)。
- 用
new_conversation創建 worker,設置role與reports_to;或對用戶已有對話執行assign_agent_role。 - 用
get_agent_team/list_conversations確認團隊結構與運行狀態。 - 隊長用
shout派工或插話;worker 阻塞時用ask_master,避免把細節問題拋給用戶。 - 隊長用
get_chat_info只讀盯各對話進度,必要時interrupt_conversation或configure_conversation調整模型與權限。 - 完成後對 worker 調用
archive_conversation收尾。
倉庫提供 1080p 預告片(約 67s,3D 工作臺與真實演示),可從 Release v1.1.0 資源 下載對照操作流程。
適用場景與已知限制¶
適合:同一項目在桌面上並行多個對話,需要隊長調度、step 邊界可靠投遞、worker 向上澄清且用戶少被打斷的場景。與 Super-agent 疊用時,可讓前者管「活從哪來」,本插件管「活如何在幾個對話之間流動」。
限制(README 明示):
agent-message不會觸發自動標題/活躍度,插件會顯式rename。- 進程重啓後 pending inbox 不會自喚醒;無跨重啓離線投遞。
- 喊話目標僅支持 root 會話;subagent 會話會被拒絕。
- DSH 創建時綁定對話工作區,已有對話不能原地遷移;
adopt_workspace會改爲在新工作區創建項目對話。
結尾¶
dsh-cross-session 把多 Agent 協作落在 DSH 側邊欄的真實對話上:角色層級、shout / ask_master 與只讀 get_chat_info 構成一條可復現的工作流。查閱與安裝入口:SkillHub 目錄、GitHub 倉庫。