@zumikua/dsh-junie-subagent:在 DSH 裏把 JetBrains Junie CLI 當作一次性子智能體

前言

DeepSeek Harness(DSH)裏,主會話可以把子任務交給子智能體(subagent)執行,再收回最終結果。若你已經在本機安裝並登錄 JetBrains Junie CLI,又希望按 Agent Client Protocol(ACP)走一條獨立進程、單次收束的委託路徑,而不是自己拼 spawn 與 session 生命週期,就需要一個把 Junie 掛到 dsh-tool-subagent 上的插件。

下面介紹社區插件 @zumikua/dsh-junie-subagent:它通過 ACP 啓動 Junie CLI,把 Junie 的最終回答作爲子智能體結果返回,並在 DSH 設置裏提供模型與思考深度(thinking depth)的配置頁。維護者爲 ZumiKua,在插件目錄中歸類爲「工作流」。

這是什麼

插件 @zumikua/dsh-junie-subagent(當前 package 版本 0.1.4,MIT 許可證)在 bundle 中插入一個 provider 與一個名爲 junie 的 dsh-tool-subagent 實例。每次調用對應一次 Junie 進程與會話:子智能體接縫對外不提供進程外子任務的續聊 surface,因而不接受跟進消息。

依賴 DSH >= 0.2.1-rc.2,以及已安裝並完成登錄的 JetBrains Junie CLI。

環境與 Junie 可執行文件

Junie 路徑按以下順序解析:

  1. 配置項 command;
  2. 環境變量 JUNIE_PATH;
  3. 託管安裝指針 ~/.local/share/junie/current(Windows 爲 <version>/junie/junie.exe,其他系統爲 <version>/bin/junie);
  4. PATH 上的 junie.exe / junie(跳過 .bat shim)。

若均無法解析,運行會失敗並列出嘗試過的路徑;設置頁也不會展示空的模型列表。

單次運行流程

一次委託的大致 ACP 步驟如下:

spawn <junie.exe> --acp=true --skip-update-check
  → initialize
  → session/new { cwd, mcpServers: [] }
  → session/set_config_option (model / effort / brave_mode, when configured)
  → session/prompt { prompt: [{ type: "text", text }] }
  ← session/update … agent_message_chunk text …
  ← result { stopReason }
  → dispose (session/cancel, stdin EOF, terminate, wait for exit)

每次運行獨佔進程與會話;--acp=true 與 --skip-update-check 始終會被保證加入參數(默認 args 含 ["--acp=true"],並可追加其它參數)。

核心功能

  • ACP 子智能體 provider:註冊名爲 junie 的 provider 與面向模型的工具 junie,委託任務給 Junie CLI 並返回最終答案。
  • 設置頁:DSH 設置面板中的 Junie 區塊,用於選擇模型、思考深度,以及 Junie 的 brave mode(auto / on / off)。模型列表來自 Junie ACP session/new 的 configOptions(按組展示,緩存 10 分鐘,不消耗 credits)。
  • 持久化配置:通過 Host 註冊的同源路由 GET/PUT /junie-subagent/config 讀寫,存儲於 ~/.dsh/junie-settings.json。思考深度與模型綁定;保存時用臨時 Junie 會話校驗組合,不支持的搭配返回 400 並給出該模型接受的取值,頁面選項列表不會被擅自改寫。
  • 權限與 brave mode:provider 通過 permission 自動應答 session/request_permission(默認 reject)。設置頁說明:brave-auto 允許安全類操作並拒絕其餘需審批項;off 拒絕一切需審批的操作;on 則全部放行。provider 本身不會彈窗詢問用戶。
  • 模型選擇方式:模型與思考深度在設置頁選擇並由 Host 存儲;bundle 配置裏的 model / effort 僅在尚未寫入 Host 存儲時作爲回退。共享工具字段 provider / model / reasoning_effort 的按次選型不可用——dsh-tool-subagent 會用 Host 的 LLM 目錄校驗,而 Junie 模型 id 不是 LLM 路由。

安裝與啓用

在 DSH Web UI 打開 Plugins 頁,從目錄安裝 @zumikua/dsh-junie-subagent;插件管理器會安裝包並一步選中其 bundle。

安裝後需重啓 DSH 一次:瀏覽器側 client.js 在啓動時進入頁面的 module 表。隨後打開 Settings → Junie,選擇模型與 thinking depth。

配置項(bundle / provider)

Key Default Meaning
providerName junie 在 ctx.subagents 上的名稱
command auto-detected 顯式啓動路徑;文件缺失時會報錯,不會靜默回退
args ["--acp=true"] 額外參數;--acp=true 與 --skip-update-check 始終保證
model mix.normal 設置頁未存任何值時的回退模型
effort high 設置頁未存任何值時的回退 effort
braveMode brave-auto brave-auto / on / off
permission reject 對 session/request_permission 自動應答:默認 reject,或選第一個 allow 選項
timeoutMs 900000 整次運行超時
graceMs 3000 子進程 teardown 寬限

設置頁的變更從下一次委託起生效。

隔離與權限邊界

子進程通過 ctx.subprocess 啓動,未附加 sandbox 策略,因此以當前登錄用戶身份運行,具備該用戶完整的文件訪問能力(Junie 可在 ~/.junie 下持久化會話)。更細的約束來自 Junie 自身:brave_mode、動作 allowlist 與 session/request_permission,本 provider 按 permission 與設置頁 brave mode 策略應答。

適用場景與注意

適合已在 DSH >= 0.2.1-rc.2 環境中工作、本機已配置 Junie CLI,並希望在主 Harness 工作流裏把單次、不可續聊的任務交給 Junie 的開發者。

安裝與啓用前建議閱讀倉庫源碼與 MIT 許可證,確認子進程權限與 Junie 審批策略符合你的環境要求。社區插件目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

參考鏈接

  • 插件目錄頁:https://www.skillhub.cn/plugins/ZumiKua/dsh-junie-subagent
  • GitHub:https://github.com/ZumiKua/dsh-junie-subagent
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜