前言¶
在 DeepSeek Harness(DSH)裏跑長任務時,Lead agent 的上下文一旦變長,常見表現是偏離實現、重複勞動、過度實現。DSH 自帶的自動壓縮往往在接近窗口上限才觸發,且偏摘要式,不一定能把注意力拉回「還能高效幹活」的區間。
dsh-context-relay(Context Relay)是社區維護者 rezon-aki 發佈的工作流類插件:在 DSH 裏提供 Relay 模式,用 phase 狀態機、預算哨兵、受控壓縮和有界 handoff 開新會話,把「什麼時候壓縮、什麼時候接力」放在 phase 邊界上決策,而不是在階段中途被預算硬打斷。下面介紹它解決什麼問題、裝完長什麼樣、如何安裝與典型用法。
這是什麼¶
dsh-context-relay 是 DSH 的上下文接力插件。一句話定位:phase 協議 + 預算哨兵 + 受控壓縮 + 有界 handoff 到全新會話,讓 Lead agent 長期停留在相對高效的上下文區間。
- 維護者:rezon-aki
- 倉庫:github.com/rezon-aki/dsh-context-relay
- 社區目錄:skillhub.cn 插件頁
- 版本 0.2.11(資料時點),要求 DSH ≥ 0.2.1-rc.2(Web profile)、Node.js ≥ 20,許可證 MIT
插件不會在安裝時自動拉取其它插件,也不改寫其它插件文件;dsh.engines 聲明的是對本插件所依賴 DSH API 版本的下限。社區目錄站點與 DeepSeek / 幻方無官方從屬關係,屬於 DSH「一切皆插件」生態裏的第三方條目。
核心功能¶
Relay 模式與工具集¶
安裝並激活後,DSH 會動態註冊名爲 Relay 的 agent preset(卸載即註銷)。新建會話時在模式選擇器裏選 Relay,工具集中會出現:
| 工具 | 作用 |
|---|---|
relay_status |
讀當前上下文佔用、band、phase、預算 headroom 與建議;phase 開始與派活前宜先調用 |
relay_phase |
聲明或切換 phase;校驗 exit_criteria、contract_check;ship 階段需要 user_gate |
relay_organize |
受控壓縮:寫 phase brief → 調官方壓縮引擎 → 成功後可選注入 brief;每會話最多 1 次 |
relay_handoff |
生成 ≤8KB 有界交接單並創建新 relay 會話,對舊會話樹做交接清理 |
doc_lint |
四項目錄/文檔體檢(quota / banned / index / git),輸出 ≤2KB |
Phase 狀態機¶
長任務按 discover → decide → build → verify → ship 組織。每個階段切換應帶 contract_check(需求是否已定、實現是否忠實、是否需要佔用人類注意力)。預算哨兵在上下文接近閾值時提醒,但 不因爲在 phase 中途到線而打斷當前 phase——繼續、壓縮還是接力,優先在 phase 邊界按面板策略處理。
預算哨兵與 UI¶
- 輸入框下方有 接力 chip:實時上下文佔用百分比、當前 band、下一次操作建議;點開爲面板(一次性默認操作、自動授權、交接後注入等)。
- 模型選擇器右側(僅 relay 會話)可出現 「預算無上限」 小膠囊,按會話切換是否注入提示詞「你的 token 預算無上限。」
- 到線時插件發 notice(非用戶消息),只告知狀態與 phase 優先指引。
- 設置頁插件卡片提供默認閾值基準與面板默認值;人類持久設置落在
~/.dsh/data/dsh-context-relay/settings.json,按會話面板狀態在panel.json。
默認閾值基準爲 35%(organize 線 = 基準,warn = 基準−5,relay 硬線 = 基準+10,即默認 warn 30 / organize 35 / relay 45)。側欄可改,具體鍵見下文配置表。
受控壓縮與有界 handoff¶
- 壓縮:走 DSH 官方壓縮引擎,有損;舊對話細節主要保留爲結構化 brief,重要結論應寫入文檔或 handoff。
- 接力:創建新的頂層 relay 會話,舊會話保留審計(
handedOff),會中斷舊會話樹中運行中的隊友/子智能體並遷移相關資源;交接後不應繼續在舊會話工作(插件不強制阻止)。 - 審批:默認
handoffApproval: 'required',relay_organize/relay_handoff執行前需 DSH 官方審批;面板的一次性autoCompress/autoHandoff/authorizeNext可免審單次操作。
面板在到線時可選的典型路徑包括:繼續、壓縮繼續、接力新會話,以及 壓縮→新會話 兩段式(第一次到線只壓縮並留在本會話;第二次到線纔開新會話——若壓縮後仍停留在線以上,存在已知邊界,見 README「已知限制」)。
其它行爲說明¶
- relay 會話裏
ask_user_question僅用於簡單問題(官方 timed 模式,timeout:60);複雜決策應用普通消息展開選項與後果,等用戶文字回覆。 - P0:不可逆、對外、付費、憑據、刪除等動作需先向人類報備並取得明確 Go;插件不會自動批准。
- 插件 不自動循環 長任務;重複性、可離屏整塊勞動宜用官方 Ralph / workflow / subagent,而非用 relay 自研自動循環。
安裝與啓用¶
環境要求:DSH >=0.2.1-rc.2(Web profile)、Node.js >=20。
發佈到 npm 後,在終端執行:
dsh plugin --profile web add dsh-context-relay
從本地目錄安裝(開發態):
dsh plugin --profile web add /path/to/dsh-plugins/dsh-context-relay
也可在 DSH Web UI 側欄 →「插件」→「安裝第三方插件」(或「添加插件」) 中,在「插件包名」填入 dsh-context-relay,裝完後重啓或重載對應 profile 並刷新頁面。
持久裝配使用包內 cordis.patch.yml(bundle 形式)。安裝或更新後需重啓對應 profile,再刷新 Web UI。 新配置需重載插件後 新建 relay 會話才生效;DSH 約束下會話開始後 preset 固定,中途不能切換模式。
啓用步驟:刷新 Web UI → 新建會話 → 模式選擇器選 Relay → 開始對話。
插件以當前 DSH 進程權限運行;安裝前應自行查看倉庫源碼與 MIT 許可證,確認符合你的安全與合規要求。README 註明本插件主要在 DSH Web profile 驗證,headless 及其它部署未驗證。
典型用法¶
典型長任務可按 README 快速開始流程操作:
- 在 relay 會話裏先調用
relay_status,確認當前 phase、上下文佔用與 band。 - 開工前
relay_phase({ phase: "discover", goal, exit_criteria });之後每次切換 phase 都要帶contract_check。 - 工作過程中不因預算在 phase 中途硬切換策略;預算作爲 phase 邊界閘門。
- 到 organize/relay band 後,在 phase 邊界按面板一次性默認操作處理:繼續、壓縮繼續(
relay_organize)、接力新會話(relay_handoff),或遵循兩段式「先壓縮、再到線再 handoff」。 - 交付前進
ship時,需滿足新上下文獨立審查(user_gate.review)與大白話彙報(user_gate.report)。
配置要點(可選)¶
宿主插件 config 常用鍵(人類保存的 settings.json 優先於側欄卡片初始默認):
| 鍵 | 默認 | 說明 |
|---|---|---|
threshold / settings.threshold |
35 | 閾值基準(%),derive warn/organize/relay 三線 |
settings |
含 threshold、defaultOperation、autoChoose、autoCompress、autoHandoff、unlimitedBudget 等 | 側欄卡片初始默認 |
injectBrief |
true |
壓縮成功後是否把 brief 注入下一 step |
handoffApproval |
'required' |
壓縮/接力審批硬門;無審批 UI 的部署可設 'off'(殘餘風險見倉庫 docs/VERDICT.md) |
inheritOnHandoff |
true |
接力是否繼承舊會話模型路由與權限檔 |
presetId |
'relay' |
註冊的模式 id |
HTTP API(默認僅本機 GUI 認證後可用):GET/PUT /context-relay/settings、GET/PUT /context-relay/panel 等,詳見 README。
適用場景與注意¶
更適合:需要在 DSH Web 裏用 Lead 跑多階段、上下文會明顯變長的實現類任務;希望壓縮與開新會話有人類閘門、有結構化 brief 與 ≤8KB 交接單,而不是單靠窗口快滿時的自動摘要。
務必留意:
- 壓縮有損;接力消耗額度並改變會話樹資源,審批默認開啓。
- 兩段式 handoff、壓縮保真比例等 README 中有「已知限制」與未做 A/B 的說明,閾值需按任務自行調整。
panel.json寫盤失敗時狀態可能只存內存,重啓即丟。- 文檔與 composer 相關 UI 文案以中文爲真源。
結尾¶
dsh-context-relay 把長任務的節奏交給 phase 協議,把上下文壓力交給預算哨兵和在邊界上的壓縮/接力決策,目標是讓 Lead 更少在「已經太長」的上下文裏空轉。若要查看簡介與分類,可打開 SkillHub 目錄頁;安裝命令、工具說明與限制以 GitHub 倉庫 README 爲準。