
Harness Router
Protocol Lattice · 程式設計 · 生產力
Harness Router 在你原本的 AI 代理 harness 裡挑出下一個工具,靠快取決策、Jev 路由與選用的 MCTS 運作。實際執行仍留在你的迴圈裡。

關於 Harness Router
What Is Harness Router
Harness Router 是 AI 代理框架裡的一層開源 Python 套件,只負責一個判斷:接下來該跑哪個工具。它接收目標、當下觀察、前一個動作(如果有)以及可用工具清單,回傳工具名稱、信心分數,還有一個旗標說明這個選擇是否該交還給規劃器。
分工是重點。harness 本身已經處理參數、權限、核准、重試與實際呼叫,Harness Router 完全不碰這些。它掛在主機開放的循環節點上,例如提示 hook 或工具結果回呼,在「下一步要被選定」的那一刻給出建議。Protocol Lattice 以 MIT 授權釋出,目前版本標示為 alpha。
這是針對特定問題的小零件。工具目錄一大,代理工具選擇就變難,因為同一個觀察往往同時符合好幾個工具。路由器指名一個工具並附上信心值,harness 才有具體的東西可以接受或退回。它不會寫你的程式、不會跑測試,也不會定義什麼叫做完成。
安裝前建議先讀專案自己的基準測試。在他們測試的 Codex 整合裡,token 用量與執行時間都上升,而且多數決策最後退回規劃器。路由本身不會自動變快,維護者把這件事寫得很清楚。
Getting Started
- 在 Python 3.11 以上用 uv 安裝 CLI:
uv tool install --force --with 'mcp>=2,<3' 'git+https://github.com/Protocol-Lattice/harness-router.git@main'。套件會提供har、harness-router與harness-router-mcp。 - 在 harness 行程會讀到的環境裡設定
OPENROUTER_API_KEY。預設模型是typesafe/jev-1.13,金鑰缺失時呼叫會回傳退回規劃器的結果。 - 執行對應供應商的 hook 安裝程式,再手動補上它略過的兩個轉接檔。Codex 與 Claude Code 需要在 hooks 資料夾放入
pre_decision.py與stop.py,安裝程式合併設定前會先備份。 - 開一個新的工作階段。啟動 hook 會盤點工具目錄,提示與結果回呼會預先算出選擇,驗證 hook 只比對已存的決策,不再多打一次模型。
產品資訊
快速了解 Harness Router 的定價、支援平台與效能。
適合對象
這項工具最適合的使用者、任務與情境。
使用者
- 用 Codex 或 Claude Code 跑長任務的開發者:路由器在每次模型請求前先算好選擇,代理帶著指定工具進場,不必重新掃一遍目錄。
- MCP 工具清單超過二十幾個的團隊:工具數超過 24 個時,預設設定可以先挑類別再挑工具,提示詞因此短一些。
- 自己搭建代理迴圈的人:Python API、CLI 與 MCP 伺服器走同一條決策路徑,可以先驗證路由效果,再接到 harness 上。
任務
- 在幾個相似的讀取工具之間取捨:當 `read_file`、`search_code` 與 grep 類工具都符合觀察時,路由器回傳一個帶信心值的選擇,不把難題留給模型猜。
- 測試失敗後把代理拉回正軌:結果回呼把失敗轉成新的觀察,下一個決策會把它算進去。
- 拿路由跟一般規劃器比較:同一個任務分別開關 hook 各跑一次,再比 token、工具呼叫次數與通過率。
情境
- 除錯過程反覆遇到相同狀態:hook 快取以目標、觀察、前一個動作與目錄為鍵,狀態沒變就直接重用先前的決策。
- 工具目錄持續擴張:分類優先的路由會先把清單縮小再交給 Jev,這正是預設值調整的情境。
- 第一次嘗試 AI 工具路由:先從 MCP 伺服器或單次 CLI 呼叫開始,量過結果之後,再考慮把 hook 裝進正式專案。
主要功能
附信心值的下一個工具決策
每次呼叫都回傳工具名稱、類別、信心值與退回旗標。主機拿這個分數對照兩個門檻:0.85 以上直接採用,低於 0.60 就交還規劃器。harness 因此有一條明確規則,知道什麼時候該信路由器,什麼時候該忽略。
三種模式對應不同信任程度
hybrid 模式接受有把握的選擇,遇到不確定或已處理的供應商錯誤就退回規劃器。jev_only 接受高於退回門檻的結果,並讓錯誤直接浮現。planner_only 完全不呼叫模型。每次請求都能切換模式,不必改 harness 的程式碼。
呼叫模型之前先查快取
hook 橋接層用目標、觀察、前一個動作與精簡後的工具目錄組成狀態鍵。狀態吻合就重用已存的選擇,預設快取每個工作階段保留 512 筆、存活 300 秒。函式庫另外有一層較小的快取,專門重用目標與工具集都沒變時的高信心選擇,可用 obvious_cache_size=0 關掉。
透過 OpenRouter 的 Jev 路由
Jev 是決策模型,不是對話模型。它接收狀態與封閉的選項清單,回傳機率而不是文字,正好適合挑工具這類分類工作。預設模型是 typesafe/jev-1.13,透過 OpenRouter 用你自己的金鑰呼叫。目錄超過 24 個工具時,路由器可以先選類別,再從類別裡挑工具。
選用的 MCTS 工具搜尋
當第一步該怎麼走取決於後續結果時,蒙地卡羅樹搜尋就派得上用場。你提供預測狀態與轉移構成的圖,模擬預算介於 1 到 4,096 次,深度最多 8 層。搜尋只跑模擬結果,不會動到真實工具,最後回傳第一個動作與主要變化序列。沒有模擬器時,選擇交還規劃器。
五種 harness 的轉接器
Codex、Claude Code、ohmypi、Antigravity 與 DeepSeek Harness 各有一個照主機回呼設計的轉接器。Codex 與 Claude Code 使用工作階段啟動、提示、工具結果與執行前驗證。ohmypi 讀取即時清單並替換作用中的工具集。Antigravity 使用呼叫與結果回呼。共用的 Stop hook 只要手上還有新鮮且高信心的決策,就能要求再走一步。
優缺點
優點
- MIT 授權,迴圈裡沒有帳號、訂閱或託管服務,完整原始碼都能稽核與修改。
- 退回是預設結果。信心不足、金鑰缺失或供應商出錯時,控制權回到規劃器,不會硬推一個錯的工具呼叫。
- 一層決策同時涵蓋五種 harness,外加 Python API、CLI 與 MCP 伺服器,替每個主機重寫選工具邏輯的工就省了。
- 公開的基準測試直接寫出某個整合的負面結果,這種坦誠少見,也讓其餘文件的說法更可信。
- 快取與分類優先路由正好對上路由器值得存在的兩種情境:重複狀態與過大的工具目錄。
缺點
- 在測試的 Codex 設定裡,路由讓主模型 token 增加 105.9%,平均耗時從 115.8 秒拉長到 228.9 秒,58 次決策有 54 次退回規劃器。要用在進行中的專案,先自己量一輪。
- 每次路由都會把目標、觀察與工具描述送到 OpenRouter,工作階段檔也會把這些文字寫進 `.harness-router/`。金鑰與機密不該出現在這些輸入裡。
- 專案還在 alpha,沒有正式釋出版本,而且 Codex 與 Claude Code 的轉接檔仍得手動複製。
- MCTS 只有在你能提供無副作用的模擬器時才成立。多數團隊大概只會用到快取與 Jev,根本不會碰搜尋那一層。
常見問題
它在代理迴圈裡挑下一個工具。你給它目標、當下觀察與可用工具,它回傳一個工具名稱加信心值,或是一個退回規劃器的旗標。參數組裝與實際呼叫仍由 harness 負責。
相關內容
探索與 Harness Router 相關的工具、技能與文章。
Harness Router 替代方案
Base Code
Base44 (Wix) · 程式設計 · 生產力Base Code 是 Base44 推出的共享雲端開發環境。團隊在對話中描述對既有 GitHub 儲存庫的修改,看著預覽確認結果,再以 Pull Request 交回工程團隊。
Google EmbeddingGemma 2
Google DeepMind · 寫作 · 圖片 · 程式設計Google EmbeddingGemma 2 是 7.4 億參數的開源模型,能把文字、程式碼、圖片、音訊與影片畫面轉成同一個 768 維空間裡的向量,在手機與筆電上就能執行。
GitGlow
GitGlow · 程式設計 · 生產力GitGlow 是桌面版 Git 用戶端,把你自己的程式碼與 AI 代理程式的變更集中在同一份審查裡,讓你在交付前看清楚機器上究竟要送出什麼。
