jev-harness-router:帶預算的 Jev 多廠家 LLM 路由

前言

在 DeepSeek Harness(DSH)裏跑智能體時,常見做法是固定一個 provider 和 model。任務變長、工具輪次增多後,成本和延遲會隨每次調用累積;若要在「便宜檔」和「強檔」之間切換,又需要自己在業務層維護用量、升級策略和取消後的計費對齊。jev-harness-router 是面向 Harness 的 TypeScript 插件,在 Cordis 側接管受管 LLM 路由,在 economy / strong 兩檔邏輯下登記多家 Chat Completions 服務,並配合預算預留、SSE 與取消對賬。項目尚未發佈到 npm,需按倉庫內安裝指南用本地 bundle 或已編譯 tgz 集成;依賴鎖定 Harness 0.1.7-rc.2 與 Cordis 4.0.4(截至 2026-09-28 覈驗的已發佈 Harness 版本,含預發佈)。

這是什麼

  • 名稱:jev-harness-router(GitHub:mattlennon/jev-harness-router,版本 v0.2.1)
  • 維護者:mattlennon
  • 分類:模型推理(社區目錄 SkillHub 條目)
  • 許可證:MIT
  • 定位:Budget-aware Jev routing plugin for DeepSeek Harness——支持多廠家推理、SSE,以及取消與斷流後的 reconciliation;範圍覆蓋文本、函數工具調用、廠家推理回放與 SSE 流式輸出。

社區插件目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;安裝與運行均在當前 DSH 進程權限下進行,啓用前應自行審閱源碼與許可證。

核心功能

下列能力均來自項目 README 中的「已實現」說明,未列出的能力(如圖像/音視頻、管理 UI、自動廠家故障遷移等)當前不提供。

與新版 Harness 的適配

  • 使用 RequestMessage、獨立 tool 消息、完整工具投影、受管 LlmAdapter,以及持久化會話 surface 替換。

P0:請求前檢與逐次計量

  • 完整請求預檢、上下文哈希。
  • 逐次記錄 usage、緩存、推理、費用、首 token 延遲,以及目標與階段更新。

P1:路由決策與上下文管理

  • 質量門檻與預計費用排序、前綴緩存觀察。
  • 切換收益與駐留門檻、升級預算、工具結果壓縮、可追溯檢查點。

P2:多廠家推理與流式

  • DeepSeek / Kimi / GLM 專用推理配置及回放。
  • 真正增量 SSE、取消與斷流結算、人工回執對賬。

路由模式與預算

  • 路由模式:off / shadow / auto,以及固定模型;最多一次自動升級。
  • SQLite 原子預留、重啓恢復;未知費用持續佔用預算,避免超支。

驗證範圍說明

  • 官方核心運行時 + 本地 HTTP/SSE 驗證;demo 與 eval 使用模擬數據,不產生真實密鑰請求。
  • doctor 只檢查配置與環境變量;smoke 與 agent 示例會產生真實請求,且 smoke 固定模型、跳過 Jev,不能替代多輪工具、取消計費與真實任務評測。

環境與依賴

  • Node.js:24+(package.json 中 engines.node 爲 >=24.0.0)。
  • Harness / Cordis:與 SOURCE_LOCK.json 及 peerDependencies 一致——@deepseek-ai/dsh-* 0.1.7-rc.2,@deepseek-ai/cordis 4.0.4。安裝 @deepseek-ai/dsh 時建議複覈 latest/next 是否指向該 Harness 版本。

安裝與啓用

項目未發佈 npm 包。完整步驟見倉庫 docs/INSTALL.md(本機啓動、模型/密鑰、bundle 安裝、更新與卸載)。面向完整 DSH 應用的推薦方式是 dsh.bundle 配置層(package.json 中 dsh.bundle.patch 指向 ./cordis.patch.yml);同框架依賴以 peerDependencies 與宿主共享,開發測試另用 devDependencies。

配置真實服務前,先在項目目錄構建並生成本地配置模板:

npm run build
node dist/src/cli.js init --reasoning --config config/router.local.json
Copy-Item .env.example .env

不需要廠家推理能力時,可省略 init 的 --reasoning。模板保留實際模型 ID、能力、價格、驗證記錄和密鑰變量名,路由默認均未啓用;按 docs/PROVIDERS.md 填寫。Kimi 的 preserved / always / k3 模式須與實際模型一致。新模板默認 SSE;舊配置未寫 transport 時仍走 JSON。

校驗與單路由冒煙(會產生真實 API 請求,需已配置 .env):

node --env-file=.env dist/src/cli.js doctor --config config/router.local.json
node --env-file=.env dist/src/cli.js smoke --config config/router.local.json --route deepseek-strong
node --env-file=.env examples/agent.mjs --config config/router.local.json --route kimi-strong --prompt "解釋函數職責"

建議先對各路由做 smoke,再啓用 shadow;填寫校準報告、語言覆蓋與兼容白名單後再啓用 auto。預計費用與質量門檻需自行校準,不宜直接當作生產降本承諾。

集成宿主

使用與插件一致版本的 Harness 服務,先掛載 llm 和 tools,再通過插件入口註冊。Agent 的 provider / model 應使用配置中的一組受管路由名稱。

import * as RouterPlugin from './dist/src/harness/plugin.js';
import { resolve } from 'node:path';
await ctx.plugin(RouterPlugin, {
  routerConfigFile: resolve('config/router.local.json'),
  databaseFile: resolve('data/router.sqlite'),
}).await();

完整宿主示例見倉庫 examples/agent.mjs。

典型用法:任務生命週期與路由干預

通過 ctx.jevRouter.engine 可在業務側顯式管理任務、階段、證據與固定路由:

const router = ctx.jevRouter.engine;
router.beginTask(agent.id, userGoal, { taskId: businessTaskId, language: 'zh-CN' });
router.updateTask(agent.id, { phase: 'verification', facts: ['驗證器已確認的事實'] });
router.recordEvidence(agent.id, {
  eventId: checkEventId, repairAttemptId, goalId: validationGoalId,
  category: 'task_validation', outcome: 'fail', evidenceRef: testReportPath,
});
router.fixRoute(agent.id, 'kimi-strong'); // null 解除固定;仍受歷史兼容和預算約束
router.finish(agent.id, 'success'); // 由獨立驗收器確認,不能相信模型自報成功

未調用 beginTask 時,插件會在首次接受的用戶輸入上創建會話任務;後續輸入加入有限事實並觸發重評,同一任務保留費用與升級計數。新業務任務應先結束舊任務再 beginTask。跨模型不會直接移植原始推理狀態;必要時使用宿主確認、保留證據的檢查點。

本地無密鑰驗證可運行(README「本地運行」一節):

npm ci
npm test
npm run demo
npm run eval
npm run doctor

demo 經本地 SSE 與官方 AgentLoop、工具運行時演示 economy → economy → strong 及逐次賬目;eval 爲四組模擬對照,成本與質量數字均爲測試數據。

配置與文檔索引

資源 用途
config/router.example.json / config/router.reasoning.example.json 未啓用的多廠家路由模板
docs/OPTIMIZATION.md P0/P1/P2、token 與成本、檢查點、取消對賬
docs/MIGRATION-0.2.md 新版 Harness API 與舊賬本
docs/IMPLEMENTATION.md 路由、併發、計費邊界
docs/VERIFICATION.md 測試報告與未驗證項

打包與自檢:npm pack 生成已編譯 tgz;npm run check:repo、npm run check:package 檢查倉庫與安裝包內容。

適用場景與注意

適合:已在 DSH 0.1.7-rc.2 棧上開發智能體,需要在 DeepSeek、Kimi、智譜 GLM 等 Chat Completions 之間做兩檔(economy / strong)路由,並關心預算預留、升級次數上限、SSE 流式與取消/斷流後賬目一致性的團隊。

注意:

  • 插件以當前 Harness 進程權限訪問網絡、讀寫 SQLite 與配置文件;密鑰通過環境變量注入,安裝前請檢查 .env.example 與 SECURITY.md。
  • 不提供輔助付費摘要預算、廠家賬單自動拉取;真實廠家聯調仍依賴正確配置與自行驗證。
  • 路由從 shadow 到 auto 前應完成 smoke、校準與白名單,避免未驗證路由進入自動決策。

結尾

jev-harness-router 把多廠家 Chat Completions、Jev 檔位路由、預算與計量、SSE 及取消對賬收攏到 Harness 插件層,適合作爲 DSH「一切皆插件」生態裏「模型推理」類擴展使用。詳情與安裝以 GitHub 倉庫爲準;社區索引見 SkillHub 目錄頁與 https://github.com/mattlennon/jev-harness-router。

羽毛球分组比赛记分
小程序二维码

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

小夜