系列:「一人艦隊:用一群 AI CLI 打造跨平台代理 mesh」— 第 29 篇
紀錄日期:2026-09-21
本機工作草稿,尚未貼到網站。篇次是素材順序。本輪固定五個開源候選的來源版本,完成不同層級的測試;沒有部署正式服務或驗證外部帳號的免費額度。
我記得看過能把多家免費 LLM API 接起來、輪著用免費層的專案。若 Spectyn 要善用我的訂閱和設備,這種模型供應層值得研究。
但「遇到429就換一家」只解決一小段問題。Coding Agent 還依賴工具呼叫、串流完整性、工作是否真的完成;切到另一個模型不能把這些契約弄丟。
這次比較 FreeLLMAPI、free-llm-router、free-api-gateway、9router、OmniRoute。搜尋結果混有相似名稱的fork,所以記錄完整owner/repo和commit,而不是只記專案名。五者中free-api-gateway沒有LICENSE,README也明言尚未提供;其他四者在固定版本有MIT授權。
| 候選 | 本輪做到哪一層 | 結論 |
|---|---|---|
| FreeLLMAPI | 113項相關既有測試;真實HTTP gateway;Spectyn CLI接線 | 優先實驗候選,但有Spectyn端阻擋項 |
| free-llm-router | 真實ASGI與本機HTTP上游;一次Spectyn CLI接線 | 串流及額度界線失敗,暫不採用 |
| free-api-gateway | 11個真實模組探針,mock DB/HTTP | stream工具資料丟失,且缺授權檔,暫不採用 |
| 9router | targeted tests與真實combo函式 | 保留比較,未完成整套HTTP部署 |
| OmniRoute | targeted路由、工具、安全政策測試 | 保留額度策略比較,未完成整套HTTP部署 |
不同層級的通過數不能拿來排成熟度。測得越多,反而可能看見越多缺陷。
最小接法是:Spectyn CLI → 本機gateway → 被允許的模型供應商。透過既有openai_compat就能接,不需要改寫任務系統。
FreeLLMAPI這輪使用真實createApp、router、SQLite和provider adapter;用本機固定回應服務取代公網模型,沒有啟動它的背景catalog和健康檢查排程。15項本機判準中14項通過,1項失敗。
實際Spectyn CLI成功完成文字回應、第一家429後切第二家,以及file_read讀取專用測試檔、把同一tool_call_id的結果送回上游。這比只看到gateway回HTTP200更有意義。
失敗案例則是:上游先送一段文字,接著中斷。FreeLLMAPI發出error事件,再送[DONE]。Spectyn竟然回done、truncated:false、exit0。
查原始碼後,發現Spectyn有保存stream_error,但主要用在空輸出的判斷;只要已收到文字,又看見DONE,就能漏掉前面的錯誤。Claude Code也核對了同一個控制流程。這是Spectyn端必須修正的問題,不能怪gateway沒報錯。
free-llm-router非串流切換可以工作,但串流會遺失SSE空行分隔,429也沒有正確換到成功上游;把本機RPM設為0仍會送請求,未知模型也被轉送。10個判準中6通過、4失敗,因此不能只因正常CLI回覆成功就採用。
free-api-gateway的11個探針有些是刻意斷言「缺陷仍存在」,腳本執行成功不代表11項能力成功。它還有stream tool-call丟失、重試重複選同key、計數與usage問題。
9router有43項通過、2項失敗,另4項combo probe通過;其中一個失敗只是陣列identity期望不同,不能寫成排序錯誤。OmniRoute有54項通過、1項失敗,另14項安全政策通過;清除cooldown後仍跳過原provider的案例,還不能判定是產品錯誤或測試未清完整quota狀態。
FreeLLMAPI有quota pool觀察及並發相關實作,補跑67項測試通過。但本機custom endpoint有特殊cooldown處理,不能把本機429當成真實公網配額試驗。多key也不代表多份獨立額度。
另外補跑真實Ollama模型,Spectyn經gateway約5.2秒得到回答;指定只回字串,它卻包成JSON。連線可用,精確輸出驗收仍失敗。這次沒有使用真實免費層key,也沒有測實際共享帳號和多機消耗。
先借模型路由,不借第二套任務、記憶或權限控制面。Spectyn繼續管理工作與驗收;gateway處理API協定、允許的模型、額度與切換。
免費模式要明列provider/model白名單;auto本身不是免費保證。Spectyn和gateway各自重試,還可能把次數相乘,必須有共同上限。
下一個小任務已具體到能重現:修正content+error+DONE的完成判定,並驗證不完整工具參數不執行、已發生的工具副作用不重放。修好之前,FreeLLMAPI只作本機實驗候選。
原始證據與試驗設定:專案docs/specs/demo-monday-mesh/reports/evidence/m5/2026-09-21-free-gateways/。本輪透過專案local-ai skill讓OpenCode找接口、agy檢查設計、Claude Code核對失敗;所有結論仍回到原始碼和輸出。