dsh-jev-subagent-dispatch:用 Jev 把例行任務路由到廉價子代理模型

前言

在 DeepSeek Harness(DSH)裏跑智能體,主模型往往既要寫代碼,又要在每一輪裏判斷「這類活該不該交給子代理、交給哪條模型路由」。後者本身也要消耗 token,而重命名、格式化、查資料、修小 bug 等任務,用更便宜的子模型往往就夠。社區插件 dsh-jev-subagent-dispatch(維護者 vitas,SkillHub 分類:模型推理)走另一條路:用 TypeSafe 的 Jev 決策模型在幾十毫秒內回答若干結構化問題,再按你配置的路由策略給出 dispatch recommendation(建議哪條 subagent 模型接這一棒)。主模型仍通過 DSH 原生的 subagent 工具完成交接;插件本身不實現委派機制,注入的是建議而非強制。

這是什麼

dsh-jev-subagent-dispatch 是面向 DeepSeek Harness 的 Jev 引導子代理路由插件。Jev 不是聊天 LLM,也不寫代碼;它對 choice / score / noul 等 typed 問題並行作答,並返回概率與 confidence。插件把當前輪任務摘要發給 Jev,套用 profiles 裏的策略,在消息裏追加路由建議。當前 npm 包版本爲 0.8.0,許可證 MIT,要求 Node ≥ 22。

核心功能

分工與前提

插件 不負責 提供子代理能力。DSH 需要子代理服務、背後的 child provider,以及 agent 可見的委派工具(如 subagent / subagent_fork)三件套;委派深度爲 0 時委派被完全關閉。每次路由請求都會在運行時重新檢查上述能力,不依賴安裝時的快照。

Subagent 插件需要處於啓用狀態,否則仍可能得到分類結論,但沒有可執行的委派目標。設置卡片會讀取 Subagent 相關命名空間並在缺失時警告。

路由裏寫的模型必須在會話 allowlist 允許範圍內;否則分類仍可能「看起來正常」,實際無法派發。設置頁爲每個 role 提供下拉框,選項僅限 allowlist 中的模型。

任務類別與默認路由(auto profile)

Jev 任務類 角色 內置示例路由 auto 是否委派
mechanical junior openrouter/qwen3.8-flash 是
bugfix implementer openrouter/deepseek-v4-flash 是
research researcher openrouter/qwen3.8-flash 是
review reviewer openrouter/qwen3.8-flash 是
refactor、feature_work、meta_chat — — 否(未出現在 profiles.*.delegate.taskClass)

更嚴格的 careful profile 默認只委派 mechanical。routeFor 把 task class 映射到 role,routes 把 role 映射到 { provider, model };內置路由均爲佔位,應在卡片裏改成你環境中真實可用的模型。

運行模式

默認 mode: off,不註冊監聽、不產生調用。三種模式:

模式 行爲
off 無 pre-step 監聽,零 Jev 成本
once 僅帶觸發前綴的輪次調用 Jev
auto 每條普通用戶消息都可能分類(適合在 verdict 日誌證明有效後再開)

觸發前綴可通過 triggers 配置,默認 ["/route", "/jev"]。示例:

/route fix the failing tests        → 一次 Jev 調用 + 路由建議
/jev should I delegate this?        → 向 rubric 的自由形式決策請求
/route preview rename everything    → 僅評估、不據此委派(preview)

建議 不是強制執行:主模型可以忽略。README 建議先用 Measuring impact 衡量再日常依賴。

能力檢查與失敗行爲

能力檢查失敗時:顯式 /route 請求會注入診斷且 不調用 Jev;普通 auto 輪次 完全靜默。Jev 調用失敗時:/route 注入一行診斷;普通輪次同樣靜默。會話或插件變更在 下一次請求 生效,無啓動緩存。

隱私與觀測

發往 TypeSafe 的 state 在出機前脫敏:主要是用戶輪次文本與截斷的 workspace: 行(默認整包上限 stateChars 1200),不含 diff、工具輸出或文件全文。內置模式會替換 sk-…、ghp_… 等憑證形字符串;logDir 與 logTurnText 控制是否落盤及是否記錄輪次原文。

安裝與啓用

在 web profile 下添加插件(命令來自官方 README):

dsh plugin --profile web add /path/to/dsh-jev-subagent-dispatch   # local checkout
# or, once published:
dsh plugin --profile web add dsh-jev-subagent-dispatch

說明:host 側通過運行中 DSH 解析可選 peer @deepseek-ai/dsh-llm;link: 開發目錄無自有 node_modules 時行爲與已安裝副本一致。

接着按 provider 預設準備 API Key(每次調用前解析:憑證存儲優先,其次進程環境變量):

provider Jev 端點(預設) 固定 model Key 環境變量名
typesafe(默認) https://api.typesafe.ai/v1/systemone jev-1.13.0 TYPESAFE_API_KEY
openrouter https://openrouter.ai/api/v1/systemone jev-1.13 OPENROUTER_API_KEY
bai https://api.b.ai/v1/decisions jev-1.13.0 OPENROUTER_API_KEY

Models 頁若已存同名憑證,通常無需再設環境變量;若用環境變量,需對運行 dsh web 的進程可見。once 模式下,在未發送 trigger 前不會向 Jev 發送數據。

無 Key 時可設 mock: true 做接線測試:按關鍵詞返回固定 confidence 的 mock 分類,便於查看注入與閾值,但不應用於真實路由。

典型用法

  1. 啓用 Subagent 插件與子代理 provider,確認 agent 可見 subagent(或你在 delegationTools 中聲明的自定義工具名)。
  2. 安裝本插件,在 Plugins 設置頁或插件 Configure 表單中把 mode 設爲 once 或 auto,按 allowlist 爲各 role 選模型。
  3. 在 once 模式下先試用:
/route fix the failing tests
  1. 需要只看分類、不自動委派時:
/route preview rename everything
  1. 開啓 logDir 後,每條 verdict 追加一行 NDJSON,便於對照 latencyMs、usage 與主模型節省的 token 再調 confidenceMin 與 profile 謂詞。

常用配置項(默認值見 README 表格):activeProfile(auto / careful)、timeoutMs(默認 4000)、skipSubagentSessions(默認 true,僅主 agent 輪次路由)。

適用場景與注意

適合:已在 DSH 中組合 Subagent 與子模型 allowlist,希望把 mechanical / bugfix / research / review 等可識別任務導向更便宜模型,並願意用 verdict 日誌迭代策略的開發者。

注意:

  • 插件以 當前 DSH 進程權限 運行;安裝前請閱讀 GitHub 源碼 與 MIT 許可證,自行評估向 TypeSafe / OpenRouter / B.AI 發送的任務摘要是否符合合規要求;敏感倉庫可設 enabled: false 或保持 mode: off。
  • 純 ESM,運行時無 npm 依賴;開發測試針對 DSH 0.1.5、0.1.7、0.2.0(web profile)。設置 UI 在 0.1.7+ 可在包頁內聯渲染,0.1.5 使用 Plugins 設置 tab。
  • SkillHub(https://www.skillhub.cn)是社區插件目錄,與 DeepSeek / 幻方無官方從屬關係;DSH 生態強調「一切皆插件」,本插件是其中一條可選路由層。

結尾

dsh-jev-subagent-dispatch 用 Jev 替主模型完成「誰來做、用哪條子模型」的輕量決策,把昂貴 token 留給 refactor、feature 等未委派類別;前提是 Subagent 棧已就緒,且你通過日誌驗證建議質量。進一步瞭解與 issue 反饋:

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

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

小夜