專案完整原始碼開源於 GitHub:HuberyMing/intelligence-radar
30 天前,我們設定了一個極具野心的目標:在完全零伺服器成本、善用免費生態資源的前提下,打造一套兼具高訊噪比、深度推演、自我防禦與雙軌知識沉澱的生產級個人情報雷達(Intelligence Radar)。
在過去一個月的連續迭代中,我們經歷了架構重構的陣痛、與 Google AI Studio 的動態配額及 503 伺服器尖峰交手、解決了狀態機死鎖與跨量表對齊問題,並最終完成了自動化單元測試與 CI/CD 無人值守排程。
今天是這趟 30 天鐵人馬拉松的完結篇。我們將在此交付系統全景拓撲圖、覆盤關鍵技術突破,並分享這套要塞級系統如何從根本上顛覆個人的技術研究工作流。
整座情報雷達依循六角架構(Ports & Adapters)精神打造,實現了輸入、推理、儲存與呈現四個維度的徹底解耦:
+────────────────────────────────────────────────────────────────+
| Intelligence Radar 系統全景拓撲 |
+────────────────────────────────────────────────────────────────+
[外部情報來源 (Ingress)]
┌────────────────────────────────────────────────────────┐
│ - Hugging Face Daily Papers (每日頂尖 AI 論文) │
│ - SemiAnalysis / 產業深度研報 │
│ - GitHub Trending / 開源技術突破 │
└──────────────────────────┬─────────────────────────────┘
│
▼
[資料調和中樞 (Harmonizer & Serializer)]
┌────────────────────────────────────────────────────────┐
│ - 容錯時間解析器 (_parse_timestamp) │
│ - 100 分制細緻推理 ➔ 1~5 星級領域模型縮放 (scale_100_to_5) │
│ - 15 欄位強型別核心合約封裝 (IntelligenceItem) │
└──────────────────────────┬─────────────────────────────┘
│
▼ (狀態: PENDING)
[雲端中繼資料庫 (Storage Engine)]
┌────────────────────────────────────────────────────────┐
│ - Google Sheets (Intelligence_Radar_Hub) │
│ - 分流架構: raw_feed (數據底座) + Dashboard (動態戰情) │
│ - 行鎖定機制 (auto_lock): PENDING ➔ ANALYZING │
└──────────────────────────┬─────────────────────────────┘
│
▼
[多代理人串接管線 (Application Services & Agent Adapters)]
┌─────────────────────────────────────────────────────────────────┐
│ - BaseAgent防禦基底(tenacity指數退避+429每日全域黑名單+5RPM均勻控速) │
│ │
│ [Stage 1] ReviewerAgent (初審守門員) │
│ └─ 嚴苛扣分機制 ➔ 達標PASS進入下游 / 未達標 60 分早退歸檔 ARCHIVED │
│ [Stage 2] DomainExpertAgent (領域專家) │
│ └─ 萃取硬核量化指標 (key_metrics) 與架構極限挑戰 (limitations) │
│ [Stage 3] SynthesizerAgent (二階綜合研判) │
│ └─ 跨領域推演 (cross_impact_notes): 金融量化、晶片架構與機器人跨界 │
│ [Stage 4] EditorAgent (總編潤飾) │
│ └─ 提煉高濃度決策層摘要 (editorial_summary) │ └──────────────────────┬──────────────────────────────────────────┘
│ (狀態更新: PROCESSED, 回寫 O 欄 metadata)
▼
[雙軌知識沉澱與對外呈現 (Egress Adapters & Presentation)]
┌────────────────────────────────────────────────────────────────┐
│ 1. 本地戰情室: Streamlit Dashboard + Agent Trace 視覺化觀測 │
│ 2. 個人知識庫: Obsidian Vault (YAML Frontmatter雙鏈筆記+Dataview) │
│ 3. 雲端同步盤: Notion Database (Rich Text 2000 字元邊界切片同步) │
│ 4. 靜默即時通報: Discord Webhook 異常與重大突破推播 │ └─────────────────────────────────────────────────────────────────┘
在這趟旅程中,我們沒有使用任何昂貴的商用 PaaS 平台,而是純粹依靠扎實的軟體工程實踐,攻克了多個生產環境的深水區問題:
問題:面對 Google AI Studio Free Tier 極為嚴苛的 5 RPM 速率限制與每日 20 次請求天花板,加上雲端尖峰時段頻繁的 503 UNAVAILABLE,多 Agent 串行管線極易全盤崩潰。
解法:
均勻冷卻節奏:在 Agent 交接處植入勻速 12 秒冷卻($60\text{s} / 5\text{ RPM} = 12\text{s}$)。
三級防禦機制:tenacity 階梯退避(3s ➔ 7s ➔ 11s) ➔ BaseAgent 雙模型降級(gemini-3.8-flash 降級至 gemini-3.6-flash) ➔ 類別層級的每日配額黑名單(_exhausted_daily_models),確保管線不反覆在已耗盡的模型上撞牆。
問題:LLM 在 1~5 星級的粗顆粒度下容易給分極端化,但在 0~100 分制下進行扣分推理時,又會與 Pydantic 核心模型的 le=5 產生強烈衝突引發 ValidationError。
解法:在 DataHarmonizer 建立 scale_100_to_5 標準正規化轉換器,讓 LLM 自由發揮多條件加減分,進入領域模型時統一折算為星級,原始評分理由與百位分數完整保存在 metadata JSON 供日後溯源。
pytest 的 tmp_path 與 unittest.mock 進行防禦型合約測試,在斷網離線環境下以 0.12 秒 達成 100% 綠燈覆蓋。問題:CI/CD 雲端 Runner 在排程執行時,若連線掛起會燒光免費分鐘數,且 GCP Service Account 金鑰容易在日誌中洩漏。
解法:利用 Base64 環境變數動態注入金鑰並於結束時銷毀、加上非空防禦驗證,並在 GitHub Actions 工作流程加上 timeout-minutes: 15 強制熔斷機制,杜絕死鎖。
打造這座情報雷達之後,日常的技術追蹤與研發節奏發生了質的轉變:
從「演算法焦慮」到「訊噪比過濾」:
以往每天面對 Hugging Face 與社群海量的論文發布,容易陷入 FOMO(錯失恐懼)卻難以辨別真偽。現在,嚴苛的 ReviewerAgent 會自動將充斥公關宣傳、缺乏量化實驗的論文直接打入 ARCHIVED 熔斷,只有真正具備硬核價值的突破才會出現在晨間週報。
從「孤立閱讀」到「網狀推演」:
過往閱讀論文只停留在演算法本身,現在透過 SynthesizerAgent 的跨界推演,論文中的稀疏注意力架構(Sparse Attention)會被自動推演至 HBM 記憶體頻寬開銷、量化交易低延遲推理乃至端側機器人硬體瓶頸,技術洞察直接延伸為產業與投資判斷。
無痛累積個人數位資產:
所有高價值情資在雲端經過多代理人審查後,一鍵自動同步至本地 Obsidian Vault。透過雙鏈標籤([[SCIENCE]]、[[AI_Frontier]])與 Dataview 查詢語法,零碎的情報隨時間自動網狀交織成個人的外掛大腦。
回顧這 30 天,我們寫下的 Prompt 其實只佔整體代碼量的一小部分,更多時間是在與資料結構、異常處理、狀態機鎖定、冷卻機制、適配器邊界與單元測試搏鬥。
這正是這場鐵人挑戰帶給我們最深刻的體悟:
「Prompt 賦予了系統智慧與靈性,但唯有扎實、嚴謹的軟體工程架構,才能讓這份智慧在真實世界的風浪中,穩定、持久且優雅地運轉。」
感謝所有跟隨這趟旅程一路走來的讀者!情報雷達的核心骨架現已完整開源,期待這套架構能為你在自主智能體(Agentic Systems)落地的探索中,提供一份實用、堅固且具備工業參考價值的藍圖。