iT邦幫忙

2026 iThome 鐵人賽

0
Build on Google AI

打造零成本企業級 AI Agent:以 Gemini 2.5 Flash 構建金融分析助手與維運實戰系列 第 30

【Day 30 終章】30 天架構總回顧、Production 部署心得與 Angelina Agent 未來演進展望

  • 分享至 

  • xImage
  •  

「從最初的一個想法,到寫下每一行 FastAPI、RAG 向量檢索、Gemini 三階段推理與 Linux systemd 自動化運維程式碼,這 30 天的旅程不只是一套 AI Agent 的開發紀錄,更是一次將 LLM 真正落地為 Production-Ready 生態系的實戰演練。」

今天是 《打造零成本企業級 AI Agent:以 Gemini 2.5 Flash 構建金融分析助手與維運實戰》 30 天鐵人賽的最終章!
在這 30 天裡,我們從零開始,打造了一套兼具「盤後定時主動推播」與「即時雙向對話學習」的雙核心 AI 金融專家系統。 我們不使用高階框架的黑盒子,而是用最純粹的 Python、FastAPI、ChromaDB 與 Linux 原生工具,一步步建構出高可用、高韌性且具備自我進化能力的 AI 生態系。
今天,讓我們站在終點線前,重新梳理這 30 天的架構精髓、分享 Production 部署的血淚心得,並展望 Angelina Agent 未來邁向 GCP 雲端原生、多模態分析與跨平台應用的全新 Roadmap!

本篇重點摘要

  1. 全系列 30 天雙核心架構(CLI 批次推播 + Web RAG 對話)總回顧。
  2. 生產環境(Production Environment)四大核心維運與資安心得。
  3. Angelina Agent 未來升級 Roadmap(GCP 原生整合、Vision 視覺分析、手機端 App 與全渠道推播)。

一、30 天全管線雙核心架構總回顧

回顧整個專案,Angelina AI Agent 的核心價值建立在「雙模組解耦與閉環」之上:
1. 核心一:單次執行 CLI 盤後自動化管線
(1) 7 步完整數據流:[1/6] 台股/美股/新聞數據擷取 $\rightarrow$ [2/6] 知識庫脈絡查詢 $\rightarrow$ [3/6] Gemini 三階段推理 $\rightarrow$ [4/6] 數字正則格式化 $\rightarrow$ [5/6] Telegram Byte-Safe 訊息切割推播 $\rightarrow$ [6/7] Google Sheets 試算表同步 $\rightarrow$ [7/7] 分析報告回寫知識庫。
(2) 解耦排程架構:腳本保持純粹 Single-run CLI 屬性,離線執行完即釋放資源,觸發時機完全交由 Linux 作業系統(Crontab / systemd.timer)掌控,徹底杜絕記憶體洩漏。

  2. 核心二:即時 Web/RAG 與自主學習服務
     (1) FastAPI 異步託管:透過 Lifespan 統一管理 Singletons,支援 /chat、/health、/stats 與特權指令(/learn、/fetch-url)。
     (2) ConversationMemory 對話記憶:以 aiosqlite 為底層,設計 idx_session_created 複合索引,提供 20 輪 Sliding Window 與滿 101 輪自動記憶壓縮(summarize_if_needed)。
     (3) RAGEngine 向量心臟:結合在地化 sentence-transformers/all-MiniLM-L6-v2 與 ChromaDB(hnsw:space: cosine),以 tiktoken 500-token 切分、0.5 相似度門檻過濾,並具備 _auto_rebuild 毀損自癒能力。
     (4) LearningModule 自主學習:以 asyncio.create_task 在背景非阻斷萃取知識點,透過 0.85 相似度門檻去重,並在累積 50 筆新知識時自動觸發索引重構,達成自我進化 cycle。
     (5) GeminiGateway 防禦閘道:具備 15 RPM / 10 佇列限流、UTC 午夜 Quota 自動重置,以及結構化金融專家 System Prompt 硬性注入。

二、Production 部署與維運四大血淚心得

將 AI Agent 部署到真實的 RedHat Linux 伺服器上,我們積累了四個最珍貴的 Engineering Insights:
1. 徹底分離「應用程式邏輯」與「基礎設施排程」
切勿在 Python 程式碼內部寫死 while True: sleep()。把定時排程交給 Linux 原生工具(Crontab 或 systemd),不僅服務掛掉時會由 OS 自動拉起,日誌也能透過 journalctl 統一管理。
2. 永遠要為大模型 API 設下「降級防護網(Fallback)」
LLM API 會斷線、會 Rate Limit、也會有 Quota 耗盡的一天。我們的 GeminiGateway 與 RAGEngine 透過自訂 Exception 映射、Fail-open 去重策略與 used_general_knowledge 降級標記,確保了即便外部 API 抖動,系統依然能優雅吐出對話,絕不拋出 500 Unhandled Exception。
3. 嚴格控管 Context Window 與 Token 經濟性
不論是盤後分析報告的 _fmt() 數字預清洗、ConversationMemory 的 20 輪滑動視窗,還是 LearningModule 的 0.85 相似度去重,目的都在於「只把最精練、最相關的資訊餵給大模型」。這不僅降低了 API 費用,更大幅提高了推理品質。
4. 結構化日誌是除錯的唯一燈塔
採用 structlog 輸出 JSON 格式日誌至 /var/log/angelina/app.log,讓每一筆 request、RAG 搜尋結果與背景學習任務都帶有 session_id 與 ISO 時間戳記,使線上問題定位變得極度輕鬆。

三、Angelina Agent 未來演進展望

30 天的完結不是終點,而是 Angelina Agent 下一個階段的起點。未來預計朝向以下四大維度進行升級:

  1. 多模態圖表分析與視覺化產出
     (1) 多模態視覺辨識:支援使用者直接上傳 K 線圖、財報圖表或新聞截圖,透過 Gemini 2.5 Flash 的 Vision 能力進行技術指標(如 K 線型態、MACD 背離)與財報數據的自動解讀。
     (2) 動態圖表繪製:結合 Python 視覺化工具,讓 Agent 在產出文字分析報告的同時,自動生成精美的 K 線與籌碼走勢圖表回傳給使用者。
  2. 全面深度整合 GCP 雲端原生解決方案
     (1) Serverless & 託管部署:將 FastAPI Web 服務與 Cron 任務無痛遷移至 Google Cloud Run 與 Cloud Scheduler,實 Serverless 與 Auto-scaling。
     (2) 企業級向量與儲存:將本地 ChromaDB 升級託管至 Vertex AI Vector Search,並使用 Cloud Storage 儲存歷史圖片與 NotebookLM 導出檔,大幅提升向量檢索的吞吐量與可靠性。
     (3) 資安與金鑰託管:導入 Secret Manager 與 Cloud IAM,實現零金鑰外洩風險的雲端原生資安防禦。
  3. 跨平台行動端應用與全渠道推播
     (1) 專屬手機 App 開發:規劃使用 Flutter 或 React Native 開發跨平台行動端 App,提供即時推播通知(FCM)、K 線圖互動與語音對話功能。
     (2) Multi-channel:不局限於 Telegram,未來將擴充支援 LINE Official Account (LINE Bot)、Discord Bot 以及 Slack App,讓使用者能在自己最習慣的社群軟體上隨時喚醒 Angelina。
  4. 多代理人協作架構
     (1) 專家分工體系:將系統重構為由 Orchestrator 協調的多代理人架構,包含專門負責籌碼數據的「Data Agent」、負責技術面繪圖的「Chart Agent」與負責總體經濟的「Macro Agent」,實現更精準的平行思考與報告彙整。

四、結語與致謝

感謝這 30 天來陪伴這套專案成長的每一位讀者與社群夥伴!
打造一個真正的 AI Agent,難點往往不在於 Prompt 寫得多漂亮,而在於如何圍繞著大模型建構出穩定、安全、可擴充且易維運的軟體工程架構。 希望這 30 天的原始碼剖析與架構分享,能為同樣在 AI Agent 落地道路上探索的你,提供一份實用且接地氣的參考指南。
Angelina AI Agent 的程式碼已經完全開源並穩定運作於 Production 伺服器上。讓我們一起期待下一個 AI 技術革命的到來!

—— 全篇完。


上一篇
【Day 29】Gemini API 閘道與防禦性容錯控制實作
系列文
打造零成本企業級 AI Agent:以 Gemini 2.5 Flash 構建金融分析助手與維運實戰30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言