前言¶
DSH(DeepSeek Harness)中的 Agent 預設決定了會話的工具目錄、系統提示和 capabilities。官方機制下,預設通常在會話啓動(turn/start)時確定,之後不可更改。這種設計是爲了保證對話歷史與工具調用的邏輯一致性。但在實際開發或調試中,有時需要在會話中途切換工作模式。該插件通過複用官方的 AgentPresets.recompose 機制,允許在會話的步驟邊界進行熱切換。
功能概覽¶
該插件爲 DSH 會話提供運行時切換 Agent 預設的能力。
* 斜槓命令:支持 /mode list 和 /mode <preset-id>。
* 步驟邊界應用:切換不會中斷當前正在進行的模型請求,而是在當前步驟完成後、下一個請求組裝前生效。
* 機制複用:底層複用官方的 AgentPresets.recompose 邏輯,包括單例掛載和作用域重新綁定。
安裝與啓用¶
通過 dsh plugin 命令安裝該插件包。
dsh plugin --profile web add "git+https://github.com/aefuimn/dsh-agent-preset-switcher.git"
安裝完成後,需要重啓 dsh web 進程並刷新頁面以加載插件。
驗證安裝是否成功,運行:
dsh plugin --profile web ls
輸出列表中應包含 dsh-agent-preset-switcher。
典型用法¶
安裝並重啓後,在 DSH 會話中即可使用斜槓命令。
-
查看當前及完整預設列表:
輸入/mode list。系統會返回當前正在使用的預設 ID,以及所有可用的預設列表。 -
請求切換預設:
輸入/mode <preset-id>。系統會記錄請求並準備在下一個步驟邊界應用更改。
適用場景與注意¶
該插件適合需要在調試或交互過程中動態測試不同 Agent 預設的場景。
- 併發與中斷:切換操作是異步的,不會打斷當前正在進行的模型請求。最長等待時間爲當前步驟完成時間。
- 子代理限制:子代理會話無法應用此插件提供的切換功能,其預設跟隨父會話。
- 異常處理:如果底層的
recompose機制拋出異常,切換操作會被視爲失敗,會話將保持原狀。 - 許可證:MIT 許可證。
結語¶
通過引入步驟邊界重綁定機制,該插件在不破壞官方架構的前提下,增加了 DSH 會話的靈活性。開發者可以在對話中途嘗試不同的 Agent 工作模式。