每一輪對話依序通過身份驗證與速率限制,並行呼叫三個模型,由主持人整合後存入資料庫並回傳。
每位專家接收相同問題與對話歷史,從各自專業角度獨立分析。三者以 Promise.all() 並行執行——整體延遲等於最慢那位,而非三者累加。
Gemini 2.5 Flash 閱讀三位專家的完整回應與對話歷程後,輸出嚴格的 14 欄位 JSON。主持人負責解決分歧、標示不確定性,並引用最強論據。
buildHistoryMessages(prevTurns) 將每輪主持人的 composed_answer 作為 role: "assistant" 注入,而非重複三份原始輸出。多輪對話 Token 成本壓低約 70%。
每位專家看到的是交替出現的 user / assistant 對話,上下文完整,Token 消耗最小。
六個 Worker 原生端點。會話繫結的路由需在標頭帶入 X-Session-Token,驗證為單次 HMAC 計算,無需查詢資料庫。
session_id 與 HMAC Token。可傳入 case_id 預先載入案件上下文。RL_COUNCIL_TURN 限流(每 IP 30 次/分)。council_turns 記錄。每個決策都源自具體約束——延遲、Token 成本、計費複雜度或安全性。非拍腦袋,而是 trade-off 後的閉環結論。
Promise.all()。整體延遲等於最慢單一模型,非三者累加。序列執行下,GPT-5-mini 長提示詞單次就可能耗費 8–12 秒。composed_answer 作為 role: "assistant" 注入,三份輸出壓縮為一份摘要,Token 消耗降至原本的 1/3。CF_AIG_TOKEN 認證 OpenAI、Anthropic、Google AI Studio。帳單在同一 Dashboard,Worker Secrets 內不儲存任何 per-provider API Key。isGpt5ReasoningModel() 檢查模型名稱。若符合,改用 max_completion_tokens 並強制 temperature: 1。OpenAI 推理模型收到非 1 的溫度值直接回傳 HTTP 400。addTurn() 在昂貴的 LLM 呼叫前先以 nanoid21 分配主鍵,再以 INSERT … ON CONFLICT DO NOTHING 寫入。Worker 超時重試時,重複主鍵不會產生重複記錄。nanoid(21) + "." + HMAC-SHA256(id, secret)。驗證僅需一次 HMAC 計算,無需查詢 Supabase。用戶 JWT 只在建立會話時需要,後續輪次改用更輕量的 Session Token。