本文為英文版 architecture.md 的翻譯,內容如有出入以英文版為準。
1. 摘要 (Executive Summary)
AOA(Agent-Offloaded Architecture,代理卸載式架構) 是一種針對 AI Agent 時代提出的軟體架構模式:產品把其中的 Agent 工作——LLM 推理、工具操作,以及它們消耗的 token——卸載給使用者既有的 Coding Agent。服務端仍可保留它需要的其他部分,包括後端、資料庫或輕量模型;它不執行的是 Agent。
AOA 在前端的形式,是一個透過本機資料夾與使用者 Agent 協作的靜態網頁應用(這種前端形式有時也稱為 AOFA,Agent-Offloaded Frontend Architecture)。本文多數篇幅描述這種形式,因為它是套用 AOA 最直接的方式;模式 C、D(§5)則說明有後端,以及完全沒有前端時的 AOA。
在傳統生成式 AI 產品(SaaS)模式中,服務商必須在雲端承擔高昂的推論算力、多媒體轉碼與儲存成本,同時使用者必須承擔隱私外洩與資料被雲端綁定的風險。
AOA 提出責任邊界的反轉與重構:
- 前端(Presentation Layer) 不依賴後端執行推論與運算,簡化為一份純靜態的協議工作台(Protocol Workbench),可零成本託管於 GitHub Pages 等靜態平台。
- 推論與執行(Execution & Inference Layer) 卸載(Offloaded)給使用者自備的 Coding Agent(如 Claude Code, Cursor, Codex, Gemini CLI, Pi)與本地開源工具鏈(如 FFmpeg, Playwright)。
- 推論:一般情況下由使用者既有的 Agent 方案在其供應商雲端執行,成本由使用者的 Agent 訂閱 / API 額度承擔,而非本服務;有需要時,也可如 Pi Agent 般改接本機自建模型(如 Ollama / llama.cpp 上的 LLM、Piper / Kokoro 等本機 TTS),達成完全離線。
- 執行:檔案讀寫、擷取、轉碼、合成等重度運算在使用者本機完成。
- 通訊與儲存匯流排(Bus & SSOT) 則藉由現代瀏覽器的 File System Access API 搭配結構化規範(JSON Schema),以本機檔案系統作為唯一的真實來源(Single Source of Truth)。
2. 背景與痛點:傳統 AI 系統的困境
2.1 雲端 AI SaaS 的三大代價
- 算力稅 (Compute Tax):每次模型推理、圖像生成、語音合成或影片渲染,都在燃燒服務商的伺服器成本,迫使產品採取昂貴的訂閱制或點數制。
- 隱私與安全黑盒 (Privacy Black Box):使用者的產品原始碼、機密資料、個人聲音與自訂素材必須上傳至服務商雲端處理與保存,企業與個人顧慮重重。
- 成品難以微調 (Rigid Outputs):SaaS 產出的成片或素材無法精準細修,一旦不滿意只能重新花費點數重新生成。
2.2 本地運算與 Coding Agent 的普及
近年來,使用者的本機開發環境發生了劇變:
- 一般開發機已足以負擔擷取、轉碼、合成等執行層工作;部分高階機器甚至能跑本機 LLM / TTS 模型。
- 本地開源管線(如 FFmpeg 音視訊合成、Playwright 瀏覽器渲染)極其成熟且完全免費。
- Coding Agent 普及,具備強大的檔案讀寫、指令調度、邏輯推理與自動修復能力,且使用者多半已為其付費。
核心反思:既然使用者手上已有一具能推理、能操作本機工具的 Agent,前端為何還要在雲端架設後端、重複支付一次推論與運算成本?
3. 核心概念:頭腦與引擎 (Brain & Engine)
AI 產品需要*頭腦(LLM 推論)與引擎(推論所消耗的 token)。傳統 SaaS 兩者都由服務商提供,再以訂閱費回收成本。AOA 把兩者都交給使用者的 Agent;服務只提供介面與規格。*
| 角色 | 職責 | 由誰提供 |
|---|---|---|
| 服務 | 介面(網頁工作台或 API)、以 URL 發布的規格、驗證 Agent 的結果 | 服務方,邊際成本趨近於零 |
| 頭腦 | LLM 推論:理解需求、規劃步驟、寫檔、呼叫本機工具 | 使用者的 Agent,以及使用者選擇的模型 |
| 引擎 | 推論所消耗的 token | 使用者的 Agent 方案,或執行自建模型的本機硬體 |
┌────────────────────────────────────────────────────────┐
│ Web Browser │
│ ┌──────────────────────────────────────────────────┐ │
│ │ AOA Frontend (靜態工作台 / 協議載體) │ │
│ │ - 零推論 (Zero-Inference) │ │
│ │ - 協議驗證器 (Schema Validator) │ │
│ │ - 狀態視覺化與編輯器 (Visualizer & Editor) │ │
│ └────────────────────────┬─────────────────────────┘ │
└───────────────────────────┼────────────────────────────┘
│ File System Access API
│ (Local Directory Handle)
┌───────────────────────────┼────────────────────────────┐
│ User Local Machine │ │
│ ▼ │
│ ┌──────────────────────────────────────────────┐ │
│ │ Local Filesystem (Shared SSOT) │ │
│ │ ├── specs / schemas │ │
│ │ ├── project.json / scene.json │ │
│ │ ├── activity.json (進度訊號) │ │
│ │ └── assets / output │ │
│ └──────────────────────▲───────────────────────┘ │
│ │ │
│ ┌──────────────────────┴───────────────────────┐ │
│ │ Local Coding Agent │ │
│ │ - 頭腦:LLM 推論 │ │
│ │ - 引擎:使用者方案的 token │ │
│ │ 雲端 LLM (預設) / 本機模型 (可選) │ │
│ │ - 本機工具 (FFmpeg, Playwright, TTS) │ │
│ │ - 協議遵守者 (Protocol Conformant) │ │
│ └──────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────┘
4. AOA 四大核心架構原則 (Core Principles)
原則一:Agent 工作卸載(Offloaded Agent Work)
- 清楚的 Agent 邊界:需要 Agent 推理與工具操作的工作,以及它消耗的 token,都在使用者的 Agent 上執行。應用層(不論是純靜態前端,或是包含帳號、計費的後端)不執行這部分 Agent 工作,但仍可執行自己的服務,包括輕量模型。
- 服務商的 Agent 邊際成本趨近於零:服務專注於人機互動(HCI)、工作流程導引、協同中繼資料與協議校驗;Agent 的推論以及它驅動的重度執行,交由使用者端的 Agent 處理(推論可走使用者自己的雲端方案或本機模型)。
原則二:Schema as the Contract(Schema 即合約)
- 展現/控制層與執行 Agent 之間不以不透明的私有指令或黑盒 API 耦合。
- 雙方的唯一通訊與狀態轉換合約是一組嚴格定義、開源公開的 JSON Schema / 規格定義。
- 介面負責將人類意圖結構化為符合 Schema 的規格;Agent 則依照 Schema 規範讀取環境、產出檔案與更新狀態機。
原則三:Filesystem-Centric SSOT & Bus(以檔案系統為核心的真實來源與匯流排)
- 本地執行真實來源 (Local SSOT):所有具體的原始碼、中間素材、暫存檔與生成產物,均以本機檔案系統為唯一真實來源。
- 檔案即通訊訊號:
- 在純前端場景,前端透過 File System Access API 讀寫檔案,並以中繼資料特徵碼輪詢(Fingerprint Polling)偵測 Agent 的產出;Agent 端則由使用者手動觸發(見模式 A)或由 Companion 推動(見模式 B)。
- 在具後端協同場景,雲端僅同步脫敏後的專案中繼資料(Metadata Plane),核心資料(Data Plane)永遠扎根本機。
- 雙方寫入遵守鎖定約定(如 lock 檔、先寫暫存檔再改名的 write-temp-then-rename),以降低並行競態風險。File System Access API 本身不提供跨行程檔案鎖,Agent 是否遵守約定亦需驗證,因此前端讀取時仍應做 Schema 驗證與容錯。
原則四:Local-First & Data Sovereignty(本地優先與資料主權)
- 資產不經過本服務:專利代碼、私有素材、內部網站登入憑證與創作原稿保存在使用者受控環境,本服務的伺服器(若有)不經手這些資料。
- 隱私邊界由使用者選擇:Agent 推論時,必要的上下文會送往使用者所選的 LLM 供應商,隱私邊界等同該供應商的資料政策;若需完全不出本機,可改用本機 LLM / TTS。
- 自給自足(Self-Sustaining):即便雲端後端斷線或服務停止營運,本機專案與產出資產依然完整可讀、可透過本地工具鏈獨立編譯與運行。
5. 協作模式 (Collaboration Modes)
AOA 支援漸進式的四種模式:模式 A、B 是搭配本機資料夾的前端;模式 C 加上輕量後端;模式 D 則完全沒有前端。
模式 A:純工作台模式(Pure Workbench / File-Driven)
最簡單的前端形式,無需本機安裝任何額外伺服器。
- 前端透過 File System Access API 取得 Handle。
- 前端每 N 秒比對關鍵檔案中繼資料(
lastModified與檔案大小計算的 Fingerprint)。 - 當 Agent 完成分鏡或生成音訊時,特徵碼變更,前端無感自動更新。
- 前端需要 Agent 介入時(例如修改了文案),在狀態檔標註
stale,並提供標準指令(如/video-sync),使用者在終端機貼上執行。
模式 B:伴侶增強模式(Companion-Enhanced / Push-Driven)
當環境允許時,啟用極致的無感體驗。
- 本機隨專案啟動微型 WebSocket Companion(僅綁定
127.0.0.1,不對外暴露)。 - 安全配對機制:WebSocket 不受 CORS 保護,Companion 必須驗證連線的
Originheader 並搭配一次性配對 Token,以防範跨站連線劫持。 - Companion 提供即時事件推播(Push),取代輪詢。
- 前端可直接點擊「立即重新渲染」,由 Companion 執行白名單內的本機確定性指令。
注意:從公開 HTTPS 網站(如 GitHub Pages)連線至
127.0.0.1,新版 Chromium 的 Local Network Access 機制會要求使用者授權,前端需處理授權被拒時退回模式 A 的流程。
模式 C:具後端混合架構(Backend-Enabled / Hybrid AOA)
適用於需要團隊協作、帳號權限或企業級管理的多租戶系統。
重要觀念:AOA 並不排斥後端伺服器!在具後端的系統中,AOA 實現了**「控制平面(Control Plane)與算力平面(Compute Plane)的徹底解耦」**:
[ Cloud Backend (控制平面) ]
├── 帳號認證 (Auth) & 訂閱計費 (Billing)
├── 團隊協同 (Team Sync) & 專案中繼資料 (Metadata)
└── 共享範本庫 (Shared Protocol / Prompt Registry)
▲
│ (輕量 JSON / Schema Sync)
▼
[ Web UI / Native App ] <──(本地協議匯流排)──> [ Local SSOT ] <──> [ Local Agent ]
└── 私有代碼、素材與重度執行算力
- 雲端後端只做薄控制層:
- 後端專注於用戶權限、協同通知、計費與方案管理,以及發布標準化 Schema 與 Prompt 模組。
- 後端完全不跑高耗能的模型推論與多媒體渲染,服務商的邊際算力成本趨近於零(Near-Zero Marginal Compute Cost)。
- 算力與資料留存使用者端 (BYOA - Bring Your Own Agent):
- 企業用戶的專利原始碼、商業機密與龐大影音素材,留在員工本地由 Agent 運算與渲染,不經過本服務後端。
- 推論則走企業自選的 LLM 供應商(可為已簽署資料協議的企業方案)或內部自建模型。
- 只有經過脫敏、通過 Schema 驗證的「最終專案中繼資料」或使用者明確同意發布的成片,才會上傳同步至雲端後端,大幅簡化企業的隱私合規範圍。
模式 D:純後端(Backend-Only / Agent-Operated API)
適用於沒有使用者介面的服務:Agent 本身就是客戶端。
- 服務提供 HTTP API(或包成 MCP server),並在一個 URL 發布規格:OpenAPI 文件、Guide 或 Skill,以及 JSON Schema。
- Agent 讀取規格、規劃步驟,直接呼叫 API。服務端保存資料與狀態,並依 Schema 驗證每一個請求。
- 服務端仍然不跑推論:頭腦(LLM 推論)與引擎(token)都留在使用者的 Agent。
- API 以使用者範圍的憑證驗證 Agent,並把 Agent 的每個請求都視為不可信的輸入。
規格的入口
不論哪一種模式,Agent 都要先取得規格,而入口通常就是一個 URL:Guide 頁面、/api/index.json 這類索引、OpenAPI 文件或 Skill 套件。好的入口會以絕對網址與雜湊值列出所有 Schema、範本與指令,讓 Agent 能驗證下載的內容。本站的 /api/index.json 就是 Video Studio 的入口。
6. 參考實作 (Reference Implementations)
AOA 網站提供兩個工作台,各自有獨立的靜態介面、協議 Schema、Agent Skill 與專案範本:
- Slide Studio(模式 A):Agent 以 Slidev 搭配 HTML、SVG 架構圖與 Three.js 組件製作簡報,在本機匯出 PDF;網頁只讀寫資料夾。
- Video Studio(模式 B):Agent 把產品網址或一段故事做成有旁白的影片,細節如下。
Video Studio 的組成:
- 前端工作台:Vue 3 + Tailwind 靜態網站,託管於 GitHub Pages。提供產品規格填寫、分鏡看板、旁白編輯與成片預覽。
- 協議庫:
apps/video/specs/*.schema.json定義了project、scene、workflow與activity格式。 - 本機 Agent:由 Claude Code 讀取線上 Guide 與本機 Skill,調用本機 Playwright 擷取網頁、Edge-TTS(微軟線上語音服務,可替換為 Piper / Kokoro 等本機 TTS)生成語音、FFmpeg 合成 60fps 影片。
- 效益:
- 開發者:0 伺服器月租、0 GPU 帳單、免維護資料庫。
- 使用者:本服務不收費(推論成本由使用者既有的 Agent 方案負擔);素材不經過本服務伺服器,原始碼與音訊素材完整可控。
7. 適用場景與限制 (When to Use & Limitations)
適合採用的場景
- 重度依賴本機工具鏈的生成任務:如程式碼生成、本地測試、音視訊後製、文件編排。
- 高度隱私敏感型產品:企業內部系統分析、私人故事繪本/動畫、個人隱私資料處理(搭配企業級 LLM 方案或本機模型效果最佳)。
- 開發者工具與生產力套件:專為已有 Coding Agent 的工程師或專業用戶設計的工具。
局限性與邊界
- 瀏覽器相容性:依賴 File System Access API(
showDirectoryPicker),目前僅桌面版 Chrome、Edge 等 Chromium 瀏覽器支援;Brave 預設停用,Firefox 與 Safari 不支援。 - 依賴使用者本機環境:使用者環境需具備基本執行環境(如 Node.js、Coding Agent 等),並自行負擔 Agent 的訂閱或 API 費用。
- Agent 輸出不具確定性:Agent 產出未必完全符合 Schema,前端需驗證並提供重試或修復指引。
- 模式 A 需人工觸發:無 Companion 時,使用者需手動在終端機執行指令才能推動 Agent。
- 目錄授權需重新取得:重新整理頁面後,目錄 Handle 的讀寫權限通常需使用者再次授權。
8. 結論 (Conclusion)
AOA(代理卸載式架構)打破了「AI 產品必須等於雲端 SaaS」的固有思維。它將前端還原為純粹的互動介面與協議標準,把推論成本、執行權與資料主權交還給使用者自備的 Agent——推論要走雲端還是本機模型,也由使用者決定。
這是一條兼顧服務商零維護成本、使用者可控的資料隱私與靈活擴展能力的全新架構路徑。