All checks were successful
CD Pipeline / deploy (push) Successful in 2m30s
統帥要求:「好好把 OpenClaw/Hermes/NemoTron/ElephantAlpha + Ollama 多模型
+ 外部付費 Gemini + 內外 MCP + RAG 組合發揮出 AI 自動化新境界」
新頁面 /observability/agent_orchestration 一頁式呈現 4 Agent × 5 維度全景:
J-1: caller 自動分組
- OpenClaw: openclaw_qa/daily/meta/monthly/weekly/bot_main/bot_gemini/bot_nim
+ sales_copy + code_review_openclaw
- Hermes: hermes_analyst + hermes_intent + code_review_hermes
- NemoTron: nemotron_dispatch
- ElephantAlpha: ea_engine + code_review_elephant
J-2/3: 跨表 SQL JOIN(ai_calls × mcp_calls × rag_query_log)
每個 agent 顯示:
- 24h 呼叫 + Token + 成本
- 本地 Ollama 比例(細分 GCP-A/GCP-B/111)
- 付費 LLM 比例(細分 Gemini / 其他)
- MCP 編排率(透過 request_id 跨表 JOIN mcp_calls)
- RAG 命中率
- 錯誤率 + 平均耗時
- MCP server × caller 工作量明細
自動編排建議(5 條 rule-based):
1. 付費比例 > 50% 且 ollama < 20% → 改 Hermes-first 短路
2. 錯誤率 > 10% → 觸發 Code Review Pipeline
3. MCP 編排率 < 5% 但 calls > 50 → 擴大 MCP omnisearch/firecrawl
4. RAG 命中率 ≥ 40% → 推 Telegram 收 feedback 強化 promotion gate
5. 111 fallback 比例 > 20% → GCP 兩台異常,查 host_health AIOps
J-4: 入口
- sidebar AI 觀測 group 加「Agent 編排矩陣」(07b)
- /observability/overview 入口卡升級為 7 項,Agent 編排矩陣放第一
整體 KPI 卡片:
- 總呼叫 / 本地 Ollama 比例 / 付費 LLM 成本 / RAG 命中率
- 「組合發揮」一目瞭然
8 表跨 JOIN:ai_calls × mcp_calls × rag_query_log × ai_insights ×
learning_episodes × incidents × heal_logs × host_health_probes
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
路由模組說明
app.py 直接註冊所有 Flask Blueprint;USE_MODULAR_ROUTES、register_blueprints()、
MODULAR_ENDPOINTS 與 duplicate cleanup 開關已在 ADR-017 Phase 3f-1 移除。
啟動防線
app.py 會在啟動時檢查 app.url_map,同一組 (URL, HTTP methods) 不允許被兩個 endpoint
重複註冊;若發現衝突會直接 SystemExit。
模組清單
| 模組 | 說明 | 主要路由 |
|---|---|---|
dashboard_routes.py |
商品看板首頁 | / |
sales_routes.py |
業績分析與 ABC 明細 | /sales_analysis, /growth_analysis, /abc_analysis/detail, /api/sales_analysis/* |
system_public_routes.py |
無 prefix 公開系統頁與監控 | /health, /metrics, /ai_automation_smoke, /api/ai-automation/smoke*, /settings, /system_settings, /logs, /api/logs, /api/backup |
system_routes.py |
內部系統維護 API | /api/system/* |
edm_routes.py |
EDM 與節慶儀表板 | /edm, /festival |
monthly_routes.py |
月結分析 | /monthly_summary_analysis, /api/monthly_summary_data |
daily_sales_routes.py |
當日業績 | /daily_sales, /daily_sales/export* |
api_routes.py |
通用任務與查詢 API | /api/run_task, /api/history/* |
export_routes.py |
匯出功能 | /api/export/* |
import_routes.py |
匯入功能 | /api/import_excel, /api/import/monthly_summary |
新增 route 時請優先放入對應 Blueprint,並用本機 app.url_map duplicate check 驗證。
若 route 內開始出現大量資料處理、SQL、AI prompt 或外部 API 呼叫,請依
docs/guides/modularization_governance.md 抽到 services/ 或 utils/,不要讓 Blueprint 變成新巨檔。