iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0
AI 自動化

AaaS from Scratch: 從一次性定義,到規模化分析系列 第 2

[Day 2] 架構概覽:Frontend / Backend / Sandbox

  • 分享至 

  • xImage
  •  

Day 2 會帶大家快速走過這個專案的基本架構,並透過一張草圖說明前端、後端與其他支援元件之間如何互動。

這一篇的目標,是先建立對主要元件、各自職責,以及彼此之間交換的訊息與資料流有一個清楚的整體認識。

以下是目前的架構圖:

https://ithelp.ithome.com.tw/upload/images/20260916/201843021tevpu5oOD.png

Frontend

Frontend 是使用者與 Agent以及整個系統互動的主要介面。它負責處理各種面向使用者的流程,例如與 Agent 互動、上傳與預覽檔案,以及管理已上傳的資料。

Backend

Backend 是整個系統的協調層,負責管理 Agent、datasource 存取、workflow 執行,以及與 sandbox 這類外部執行環境之間的溝通。

Datasource

平台主要支援兩大類 datasource:

  • File-based sources

    • 本系列主要會以 CSV 作為示範格式。
    • 其他格式,例如 XLSX 或 PDF,未來都可以再加入支援。
  • Relational databases

    • 本系列主要會以 PostgreSQL 作為示範資料庫。

從 system design 的角度來看,關鍵不在於支援多少種 datasource,而是要避免讓 datasource-specific logic 滲透進 Agent / Analysis Layer,意思是說如何讀取跟處理資料的邏輯不需要讓 Agent 知道。

簡化後的 dependency model 可以表示為:

Agent / Analysis Layer → Datasource Abstraction → Concrete Implementation

以 file-based source 為例,可以透過單一入口,根據檔案類型將工作交給對應的 implementation:

Agent / Analysis Layer → AsyncFileSource → CsvFileSource / XlsxFileSource / ...

Database source 也可以採用類似的設計。

這樣可以讓 Agent 專注在資料分析本身,而不需要處理檔案解析、database driver 或 connection details。Datasource abstraction 的設計會在之後更進一步展開。

Sandbox

Sandbox 提供一個隔離的執行環境,用來執行 Agent 產生的分析程式碼。Backend 會將 execution request 傳送到 sandbox,並接收執行結果或產生的 artifacts。

引入 sandbox 最主要的原因是 isolation。由 AI Agent 執行的程式碼應該被限制在一個受控環境中,避免非預期行為直接影響使用者的本機系統,例如刪除檔案、修改環境,或存取原本不應該接觸的資源。

這在企業環境中尤其重要。Sandbox 也能協助建立更清楚的存取邊界,降低敏感資料被沒有適當權限的使用者、process 或 tool 取得的風險。


上一篇
[Day 1] 這 30 天,我想解決什麼問題?
下一篇
[Day 3] 為什麼讓 Agent 寫程式,而不是直接分析資料?
系列文
AaaS from Scratch: 從一次性定義,到規模化分析9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言