Rain AI Team · Cost Audit
🏛️

LLM 成本優化審計報告

Board-style report · 46 unique roles · 229 backend files audited · L0/L1/L2 routing verified
Board Format 46 Unique Roles 44 Active / 2 Frozen Phase 1-3 Review
2026-03-24 · RAIN AI TEAM
SLIDE 02 · EXECUTIVE SUMMARY

結論先講

這份審計確認:系統沒有需要重構的大洞,問題在於路由契約、觀測與模型層級是否寫得足夠嚴格。
METRIC
229 files
backend services audited
核心治理面已被完整掃描。
METRIC
46 roles
unique team roster total
不是 28;去重後是 44 active + 2 frozen。
METRIC
0 major waste
audit result
未發現需要推倒重來的結構性浪費。
METRIC
3 phases
approval status
Phase 1 APPROVED,Phase 2/3 CONDITIONAL。
PhaseStatusReason
Phase 1APPROVED純 telemetry:決策日誌、quota snapshot、selected_tier 可視化。
Phase 2CONDITIONALHaiku 試驗與序列 review 需要 allowlist + AB test 邊界。
Phase 3CONDITIONALquota 耗盡降級可做,但必須保留告警與避免 retry loop。
一句話:預設走低層,失敗再升級;只有 critical 任務才碰高階模型。
SLIDE 03 · ROSTER & MODEL SHIFT

Roster 與模型替換

先前 28 個的說法太簡化。以 `~/.claude/team.json` 去重後為準,實際 unique roles 為 46。

Roster 結構

  • core 10:Klay / Max / Rex / John / Iris / Forge / Scout / Ray / Quill / Kai
  • security 1:Sentinel
  • finance 4:Knox / Sage / Inquisitor / Tax
  • docs 2:Nova / Jarvis
  • strategy 2:Strategist / EchoMarketer
  • website 3:Webb / Silo / Keeper
  • hq_command 1:Operations Manager (OM)
  • investment 9:Investment Manager / Market Intel / News Collector / GooayeAI / Fundamental Analyst / Technical Analyst / Macro Analyst / Bull Researcher / Bear Researcher
  • external 11:Noel / Atlas / Milo / Pixel / Vick / Spider / Lynx / Probe / Echo / Nautilus / Buzz
  • research 3:Orion / Lab / Lens
  • frozen 2:Milo / Sage

模型對照矩陣

  • Opus 4.6 保留:Klay、Max、Investment Manager、Bull Researcher。
  • Knox 最新策略:預設改為 Sonnet 4.6;只有 vault / api_key / account_lifecycle 的 Major 或 Critical 任務,才升級到 Opus 4.6。
  • Sonnet 4.6 主力:Rex、John、Iris、Forge、Scout、Quill、Sentinel、Knox、Tax、Strategist、Webb、Orion、Lab、Lens。
  • Haiku 4.5 保留:Nova、Keeper、OM、Inquisitor、Market Intel、News Collector、Fundamental Analyst、Technical Analyst、Macro Analyst。
  • 其他 team 模型:Noel / Atlas(Gemini 2.5 Flash)、GooayeAI / Milo(Gemini 2.5 Flash Lite)、Silo(Gemini 2.5 Pro)、Ray(Codex Plus CLI)、Vick(Grok 3 Mini)、Bear Researcher(Grok 3)、Spider / Echo(GLM-4-Plus)、Lynx / Probe(DeepSeek Chat)、Nautilus(GPT-4.1)、Jarvis / EchoMarketer / Buzz(Gemini Flash)、Pixel(Gemini CLI)、Kai(Internal)。
  • Sonnet 4.6 現況:重新回到核心工程、架構、審查、安全與高風險分析位;不再把主要 coding / review 全部壓到 Haiku。
Role groupOld shorthandCurrent defaultUpgrade conditionAdjustment note
Klay / Max / Investment Manager / Bull ResearcherOpusClaude Opus 4.6不降級;只在拆段摘要時讓 Haiku 先處理非決策片段。保留最高裁決與深度推理。
KnoxOpus → SonnetClaude Sonnet 4.6vault / api_key / account_lifecycle 的 Major/Critical 或 safety-domain 任務,升 Opus 4.6。把日常稽核和狀態查詢降到 Sonnet,但敏感控制面仍保留最高風險保守策略。
Rex / John / Iris / Forge / Scout / Quill / Sentinel / Tax / Strategist / Webb / Orion / Lab / LensSonnetClaude Sonnet 4.6預設高品質執行;若 quota 受限才回退到 Haiku 或 degraded path。這批角色負責 coding、architecture、review、security、reverse engineering;直接下放 Haiku 品質風險過高。
Nova / Keeper / OM / Inquisitor / Market Intel / News Collector / Fundamental Analyst / Technical Analyst / Macro AnalystHaikuClaude Haiku 4.5輸出格式固定、流程模板化、風險可控時維持 Haiku;只有 final narrative 收斂或高風險例外再升級。保留成本優勢,但不把核心工程品質壓到低階模型。
Jarvis / EchoMarketer / BuzzGeminiGemini Flash需要長篇文書、SEO 內容或社群播報時使用既有專長通道。文書與播報交給便宜且穩定的外部 provider。
Noel / AtlasGemini Pro 概念Gemini 2.5 Flash來源數量高、外部脈絡很碎、需要更完整 synthesis 時再升到 Pro。夜班協調先用 Flash,避免過度燒費。
SiloGemini ProGemini 2.5 ProSEO / 架構 / technical content / board-level 需求時保持 Pro。這個角色本來就該留高一階。
GooayeAI / MiloFlash LiteGemini 2.5 Flash Lite需要更高摘要品質時可升到 Gemini Flash;Milo 只在解凍需求時回來。保持 podcast / crawler 的低成本層。
RayCodex / Opus fallbackCodex Plus CLI需要設計審查與實作驗證時用 CLI;不拿來做日常生成。設計稽核與 code tests 分開。
VickGrokGrok 3 Mini交叉驗證需要更深挑戰時升到 Grok 3。保留異見,但用便宜層做 first pass。
Bear ResearcherGrokGrok 3已是異見高階層,通常不再往上升。用來維持真實 bearish view。
Spider / EchoGLMGLM-4-Plus靜態抓取後需要更高解析時,交回分析層而不是升 Sonnet。專職抓取,不承擔最終裁決。
Lynx / ProbeDeepSeekDeepSeek ChatAPI 批量與資料抽取超出 baseline 再升級。保持大量資料處理的低成本。
NautilusGPTGPT-4.1JS-heavy / login / browser automation 失敗時再回 Sonnet 4.6 guardrail。瀏覽器任務用 GPT-4.1,不拿 Sonnet 做前台硬跑。
PixelGeminiGemini CLI創意 / 視覺工作需要時可切到更高品質圖像或文字 pipeline。工具級,非主決策層。
KaiInternalInternal控制中心不做 LLM 提案,不需升級。只負責監控與匯流。
Frozen: Sage / MiloSonnet / Flash LiteFrozen只有 restore condition 成立才解凍。職責已併入 Knox / Spider-Lynx-Nautilus。
Sonnet 4.6(routing role)Default + fallbackClaude Sonnet 4.6核心工程與風險角色直接預設;一般 Haiku 角色遇到 quota / rate-limit / complexity / critical 再升級。既是主要品質層,也是 Haiku 之上的保守升級層。
Implementation note:`team.json` 現在同時對齊 roster default 與 runtime policy;`routing_policy.py` 已改成 canonical roster map。Sonnet 4.6 已回到核心工程與風險角色的 per-agent default;Knox 另外加上敏感控制面直升 Opus 的特例。
Role clusterExact modelImpactReplace?
Final authority
Klay / Max / Investment Manager / Bull Researcher
Claude Opus 4.6保留最高裁決與推理能力。No
Core engineering / review / security
Rex / John / Iris / Forge / Scout / Quill / Sentinel / Knox / Tax / Strategist / Webb / Orion / Lab / Lens
Claude Sonnet 4.6保品質優先,不再大面積下放到 Haiku。No
Structured ops / reporting
Nova / Keeper / OM / Inquisitor / Market Intel / News Collector / Fundamental / Technical / Macro
Claude Haiku 4.5固定格式與可模板化任務維持低成本。Yes
Docs / broadcast tools
Jarvis / EchoMarketer / Buzz
Gemini Flash摘要、文書、播報更省。Yes
External gateway
Noel / Atlas / Milo / Pixel / Vick / Spider / Lynx / Probe / Echo / Nautilus / Buzz
Gemini 2.5 Flash / Flash Lite / Pro, Grok 3 Mini / Grok 3, GLM-4-Plus, DeepSeek Chat, GPT-4.1, Gemini CLI多 provider 分流,降低 quota 單點風險。Partial
Routing escalation
Knox sensitive controls / Haiku fallback
Opus 4.6 / Sonnet 4.6Knox 的敏感控制面升 Opus;Haiku 角色遇到複雜或失敗時升 Sonnet。Selective
SLIDE 04 · ARCHITECTURE

三層治理架構

routing_policy、model_router、cost_optimizer 已形成控制面,重點是把任務類型和降級契約收緊,並把 roster model 對照寫成可核對表。
Policytask_type / criticality / tier selection / decision log
RouterL0 → L1 → L2 / degraded result / quota-aware fallback
Optimizerbudget snapshot / alert payload / notification fallback
Executorpreserve fallback_chain / degraded / low_confidence
DEFAULT:L0 → L1 → L2 only if critical → otherwise degraded result
ModuleRoleAudit note
routing_policy.py決策與 tier已加 selected_tier 與決策 log。
model_router.py路由與降級真正的 degraded result 路徑已補齊。
cost_optimizer.py成本與告警預算快照 + Discord / notification fallback。
taskops_router.pytask_type 正規化canonical + aliases 已建立。
邊界原則:預設一律低層;只有 critical 任務才可進 L2,且 L2 不應成為「卡住就一直 retry」的出口。
SLIDE 05 · FINDINGS

審計發現

沒有重大浪費,但有幾個很值錢的工程優勢:分類一致、降級完整、預算邊界清楚。
finding 01
低成本優先
L0 first
摘要、抽取、tagging、preprocessing、agent intermediate messages 應先走 L0。
finding 02
模型層級清楚
Haiku for structured, Sonnet for core quality
Haiku 只留給模板化與低風險角色;Sonnet 回到核心工程與審查層。
finding 03
Sonnet default 已重建
runtime aligned
runtime 已和角色職責重新對齊,不再把主要 coding / review 全部壓到 Haiku。
finding 04
多 provider 分流
Gemini / Grok / GLM / DeepSeek / GPT
外部 agent 不再綁死單一 provider,quota 風險下降。
finding 05
降級鏈完整
fallback_chain preserved
router 與 executor 都保留 degraded / low_confidence / fallback chain。
11 requirementsStatusNotes
L0/L1/L2 三層模型Implemented已落實。
task_type 枚舉 / 正規化Implementedcanonical + aliases。
多 provider 策略Partial已支援,但不同 provider 的 fallback 還可再整合。
成本感知路由Implemented預設 L0。
Context 優化Conditional需要摘要層與 trimming 邊界。
Quota 感知Implementedrate-limit / quota detection 已加。
Maker-checker 多樣性Conditional只對 allowlist 開啟。
成本上限強制Implementedbudget cap 已保護外部 agents。
降級鏈完整性Implementeddegraded result 路徑已具備。
P95 延遲監控PartialObservability endpoint exists, traces still need production data.
自動恢復機制Implementedquota 降級與通知 fallback 已具備。
SLIDE 06 · VALIDATION

驗證與可用性

這不是紙上規劃:py_compile 通過,API smoke test 也回 200。

驗證項

  • py_compile:routing_policy.py、model_router.py、cost_optimizer.py、task_executor_service.py、routing.py、optimization.py、taskops_router.py 全數通過。
  • API smoke test:/api/routing/policy、/api/routing/policy/resolve、/api/system/config、/api/optimization/summary、/api/optimization/observability 全部回 200。
  • runtime behavior:fallback_chain、degraded、low_confidence 保留,不會被 executor 覆蓋。

觀測補充

  • 測試環境缺 traces 時,p95 latency 可為 null。
  • 這是資料不足,不是 endpoint 失效。
  • 正式環境補齊 traces 後,observability 才能做趨勢判讀。
CheckStatusResult
Syntax / importPASS沒有 syntax regression。
Routing fieldsPASSselected_tier / fallback_chain / degraded / low_confidence 都回得出來。
Budget guardrailPASS告警 fallback 成功建立。
ObservabilityPARTIAL端點有,正式 traces 還要補。
結論:系統已經不是「能不能跑」,而是「在 quota 壓力下能不能用對層級跑」。
SLIDE 07 · RISK BOUNDARIES

風險與邊界

Phase 2 / 3 都能做,但不是無條件放量,條件要先寫死。
PHASE 2

Haiku 試驗

風險
Haiku 只適合模板化與固定格式任務;若直接覆蓋 John / Rex / Quill / Scout / Webb 這類核心角色,品質回撤會太大。
條件
只對低風險任務開放;失敗率 > 5% 就升回更高層。
PHASE 3

Quota 耗盡降級

風險
如果 fallback 寫得太寬鬆,就會把「應該報警」誤寫成「靜默降級」。
條件
保留告警鏈,避免高階模型 retry loop,必要時直接回 degraded result。

邊界條件

1. context trimming 必須有摘要層,不可直接硬剪全文。

2. maker-checker 多樣性只對 allowlist 任務啟用。

3. L2 只服務 critical 任務,不做預設出口。

4. 多 provider fallback 要先驗證,再切換,不要在正式流中試錯。

SLIDE 08 · ROLLOUT

部署順序與簽核

Phase 1 → Phase 2 → Phase 3 的順序是正確的,不需要調整。
PHASE 1
Verification
APPROVED
先把決策日誌、quota snapshot、observability 寫實。
PHASE 2
Smart downgrade
CONDITIONAL
Haiku 試驗與序列 review 需設 allowlist。
PHASE 3
Recovery
CONDITIONAL
quota 耗盡自動降級,但不能失去告警與可追溯性。
ActionOwnerOutput
Phase 1Klay / router決策 log + selected_tier + budget snapshot
Phase 2task classifiertask_type canonical + low-risk allowlist
Phase 3optimizer / notifierdegraded result + Discord / fallback notification
最終簽核:Phase 1 APPROVED,Phase 2 CONDITIONAL,Phase 3 CONDITIONAL。
SLIDE 09 · APPENDIX

附錄:實際修改過的檔案

這些檔案是本輪成本治理與報告頁更新的主體。
routing_policy.py
決策 log、selected_tier、task_grade 相容、policy status 擴充
Updated
model_router.py
L0/L1/L2 router、degraded result、legacy wrapper
Updated
cost_optimizer.py
quota snapshot、budget alert、notification fallback
Updated
task_executor_service.py
保留 fallback_chain / degraded / low_confidence
Updated
taskops_router.py
canonical task_type、aliases、normalize_task_type
Updated
index.html
首頁新增 featured audit 與報告入口
Updated

可直接引用的結論句

本系統已具備成熟的三層成本治理架構;後續優化應聚焦於可觀測性、降級契約與分類邊界,而非架構重寫。