WEBVTT
Kind: captions
Language: zh-TW

00:00:11.044 --> 00:00:13.044
今天我們要深度解析 GitHub 上的一個熱門專案：computer，

00:00:13.044 --> 00:00:15.044
由 Cloudflare 推出，

00:00:15.044 --> 00:00:18.044
目標是給你的 AI Agent 或雲端應用程式

00:00:18.044 --> 00:00:20.044
一台完整的虛擬電腦。

00:00:20.044 --> 00:00:24.044
它讓應用能無縫地在高效能的容器與低延遲的 Worker 之間切換，

00:00:24.044 --> 00:00:28.044
賦予邊緣運算前所未有的檔案與程式執行能力。

00:00:28.548 --> 00:00:29.708
有一個開源專案，

00:00:29.708 --> 00:00:32.508
它宣稱要給 AI Agent 一台真正的「電腦」，

00:00:32.508 --> 00:00:34.188
而不是一個小小的「容器」。

00:00:34.188 --> 00:00:35.068
但有趣的是，

00:00:35.068 --> 00:00:38.588
它的底層卻同時用了容器和 Cloudflare Workers。

00:00:38.588 --> 00:00:41.108
這個設計聽起來有點矛盾，對吧？

00:00:41.108 --> 00:00:42.668
但它在 GitHub 上線不久，

00:00:42.668 --> 00:00:44.508
就吸引了將近三千顆星，

00:00:44.508 --> 00:00:46.708
甚至有一天就暴增了快九百顆。

00:00:46.708 --> 00:00:48.628
這背後可不是什麼行銷話術，

00:00:48.628 --> 00:00:52.028
而是一場對無伺服器架構邊界的深刻探索。

00:00:52.028 --> 00:00:55.148
今天我們要聊的這個專案，叫做 computer，

00:00:55.187 --> 00:00:58.788
它到底藏了什麼樣的技術權衡與設計哲學呢？

00:00:58.788 --> 00:01:02.548
computer 這個專案，是由 Cloudflare 發起的一項實驗。

00:01:02.548 --> 00:01:04.028
它的目標很明確，

00:01:04.028 --> 00:01:06.028
就是要解決一個根本問題：

00:01:06.028 --> 00:01:08.667
AI Agent 或雲端應用程式，

00:01:08.667 --> 00:01:10.908
在無伺服器 Serverless 環境中，

00:01:10.908 --> 00:01:12.347
沒有自己的檔案系統，

00:01:12.347 --> 00:01:14.588
也沒辦法執行複雜的程式。

00:01:14.588 --> 00:01:15.467
簡單來說，

00:01:15.467 --> 00:01:17.548
computer 為每一個運算任務，

00:01:17.548 --> 00:01:20.028
都提供了一台功能完整的虛擬電腦。

00:01:20.028 --> 00:01:21.908
這個專案是用 TypeScript 寫的，

00:01:21.908 --> 00:01:25.068
目前已經累積了二千八百五十四顆星，

00:01:25.068 --> 00:01:28.467
其中有八百九十一顆是在一天之內衝上來的，

00:01:28.467 --> 00:01:30.307
Fork 數也達到一百三十。

00:01:30.307 --> 00:01:31.708
從這些數字可以看出，

00:01:31.708 --> 00:01:33.507
它的概念在開發者社群裡，

00:01:33.507 --> 00:01:35.948
確實引發了高度的關注和好奇。

00:01:35.948 --> 00:01:38.268
我們來談談傳統的 Serverless 架構，

00:01:38.268 --> 00:01:39.747
也就是無伺服器。

00:01:39.747 --> 00:01:41.988
它最大的特點就是「無狀態」

00:01:41.988 --> 00:01:44.028
而且「生命週期很短」。

00:01:44.028 --> 00:01:45.028
這代表什麼呢？

00:01:45.028 --> 00:01:47.427
意思就是，一個函數跑完，

00:01:47.427 --> 00:01:49.147
它所有的執行環境、

00:01:49.147 --> 00:01:52.028
所有的資料，就通通消失了，

00:01:52.028 --> 00:01:53.708
船過水無痕。

00:01:53.708 --> 00:01:57.308
但這對於需要「記憶」和「工作空間」的 AI Agent 來說，

00:01:57.308 --> 00:01:59.507
簡直是個天大的限制。

00:01:59.507 --> 00:02:02.747
你想想，一個沒有記憶的智慧體，要怎麼工作？

00:02:02.747 --> 00:02:03.668
過去的解法，

00:02:03.668 --> 00:02:07.028
通常是把狀態存到外部的 S3 或資料庫，

00:02:07.028 --> 00:02:08.868
每次執行再重新讀取，

00:02:08.868 --> 00:02:11.187
這過程不但麻煩，效率也很差。

00:02:11.187 --> 00:02:13.747
那如果要處理更複雜的任務，

00:02:13.747 --> 00:02:16.387
像是編譯程式碼、或是轉檔影片呢？

00:02:16.387 --> 00:02:17.308
那就更麻煩了，

00:02:17.308 --> 00:02:20.107
還得額外啟動笨重的容器或虛擬機。

00:02:20.107 --> 00:02:22.228
而 computer 這個專案的切入點，

00:02:22.228 --> 00:02:23.628
就是要解決這個痛點。

00:02:23.628 --> 00:02:26.868
它試圖在 Serverless 的輕量和彈性之上，

00:02:26.868 --> 00:02:30.548
嫁接一個可以永久保存、又能互動的運算環境。

00:02:30.548 --> 00:02:34.548
目標，就是讓 AI Agent 真正擁有一個屬於自己的工作台。

00:02:34.548 --> 00:02:37.268
好，那 computer 的核心架構是怎麼做到的呢？

00:02:37.268 --> 00:02:42.268
關鍵在於，它把「狀態」跟「執行」這兩件事，切得一乾二淨。

00:02:42.268 --> 00:02:45.827
你可以把它想像成一台很特別的雲端筆電。

00:02:45.827 --> 00:02:51.148
首先，這台筆電的「硬碟」，其實是一個 Cloudflare Durable Object。

00:02:51.148 --> 00:02:53.268
它裡面用了一個 SQLite 資料庫，

00:02:53.268 --> 00:02:56.148
來儲存整個檔案系統的結構和內容。

00:02:56.148 --> 00:02:57.947
Durable Object 這個技術，

00:02:57.947 --> 00:03:00.148
確保了你的資料可以永久保存，

00:03:00.148 --> 00:03:01.788
而且維持一致性。

00:03:01.788 --> 00:03:03.947
再來，這台筆電的「CPU」更酷，

00:03:03.947 --> 00:03:06.027
它有兩種模式可以隨時切換。

00:03:06.027 --> 00:03:08.467
第一種，是重量級的 Container 後端。

00:03:08.467 --> 00:03:10.667
它可以啟動一個完整的 Linux 環境，

00:03:10.667 --> 00:03:12.868
讓你能執行任何二進位檔案。

00:03:12.868 --> 00:03:16.227
比方說用 pandoc 來轉檔，或用 ffmpeg 處理影片。

00:03:16.227 --> 00:03:17.947
而筆電硬碟裡的資料，

00:03:17.947 --> 00:03:20.747
會透過 FUSE 技術掛載到容器裡面，

00:03:20.747 --> 00:03:22.467
讓程式讀寫檔案時，

00:03:22.467 --> 00:03:24.587
就跟在操作本機檔案一樣自然。

00:03:24.587 --> 00:03:28.027
第二種模式，是輕量級的 Isolate 後端。

00:03:28.027 --> 00:03:30.307
它能在非常非常短的時間內，

00:03:30.307 --> 00:03:31.988
啟動一個 Cloudflare Worker，

00:03:31.988 --> 00:03:36.307
專門用來跑一些簡單的 shell 指令或 JavaScript 程式碼，

00:03:36.307 --> 00:03:37.827
延遲超級低。

00:03:37.827 --> 00:03:38.868
最棒的是，

00:03:38.868 --> 00:03:41.307
開發者只要透過一個統一的 API，

00:03:41.307 --> 00:03:43.708
叫做 workspace.runtime.exec，

00:03:43.708 --> 00:03:45.387
就能根據任務的需求，

00:03:45.387 --> 00:03:48.148
自由選擇要派出重量級的 Container，

00:03:48.148 --> 00:03:50.428
還是輕快又省錢的 Isolate。

00:03:50.467 --> 00:03:53.148
這樣一來，就在成本和效能之間，

00:03:53.148 --> 00:03:54.467
達到了最佳的平衡。

00:03:54.467 --> 00:03:57.268
那這個專案在真實世界有哪些應用呢？

00:03:57.268 --> 00:03:58.467
最直接的場景，

00:03:58.467 --> 00:04:01.868
就是讓 AI Agent 有能力自己搞定複雜的任務。

00:04:01.868 --> 00:04:02.708
舉個例子，

00:04:02.708 --> 00:04:04.667
你可以叫一個 Agent 幫你寫一份報告。

00:04:04.667 --> 00:04:06.387
它會先在自己的虛擬電腦裡，

00:04:06.387 --> 00:04:07.788
建立一個工作目錄，

00:04:07.788 --> 00:04:09.667
接著用輕量的 Isolate 後端，

00:04:09.667 --> 00:04:11.467
快速把 Markdown 文件寫好。

00:04:11.467 --> 00:04:14.587
最後，再呼叫重量級的 Container 後端，

00:04:14.587 --> 00:04:16.107
啟動 pandoc 這個工具，

00:04:16.107 --> 00:04:18.708
把文件轉成漂亮的 PDF 檔存起來。

00:04:18.708 --> 00:04:20.387
整個過程一氣呵成。

00:04:20.387 --> 00:04:21.508
另一個應用，

00:04:21.508 --> 00:04:23.868
是把它當成一個用 API 來操作的

00:04:23.868 --> 00:04:25.667
輕量級雲端開發環境。

00:04:25.667 --> 00:04:27.348
開發者可以透過 API，

00:04:27.348 --> 00:04:29.667
在這台虛擬電腦裡跑 build script，

00:04:29.667 --> 00:04:32.387
或是把專案發佈到 Cloudflare Artifacts。

00:04:32.387 --> 00:04:34.387
不過，也因為這項技術，

00:04:34.387 --> 00:04:36.387
跟 Cloudflare 的生態綁得很深，

00:04:36.387 --> 00:04:39.428
所以對於已經在用 Cloudflare 平台的開發者來說，

00:04:39.428 --> 00:04:40.788
上手會比較容易。

00:04:40.788 --> 00:04:43.107
但如果你是生態系外的使用者，

00:04:43.107 --> 00:04:44.588
就需要先花點時間，

00:04:44.588 --> 00:04:47.548
去熟悉 Durable Objects 這類相關服務了。

00:04:47.548 --> 00:04:50.107
社群對於 computer 這個專案的反應，

00:04:50.107 --> 00:04:52.107
可以說是「審慎樂觀」。

00:04:52.107 --> 00:04:52.868
一方面，

00:04:52.868 --> 00:04:56.468
大多數開發者都非常欣賞它創新的架構理念。

00:04:56.468 --> 00:04:59.468
用 Durable Object 加上 SQLite，

00:04:59.468 --> 00:05:01.787
來打造一個永久的工作區，

00:05:01.787 --> 00:05:03.787
還能在輕量的 Isolate

00:05:03.787 --> 00:05:07.028
和功能完整的 Container 之間動態切換。

00:05:07.028 --> 00:05:10.387
這個設計，被認為是替未來自主 AI Agent

00:05:10.387 --> 00:05:12.107
打下了非常有潛力的基礎。

00:05:12.107 --> 00:05:13.028
但另一方面，

00:05:13.028 --> 00:05:14.308
質疑的聲音也不少。

00:05:14.308 --> 00:05:15.548
有人就直接指出

00:05:15.548 --> 00:05:17.308
Cloudflare 的宣傳口號是

00:05:17.308 --> 00:05:19.507
「Agent 需要電腦，而不是容器」

00:05:19.507 --> 00:05:22.387
但專案本身還在非常早期的預覽階段，

00:05:22.387 --> 00:05:24.387
根本不適合用在 production 環境。

00:05:24.387 --> 00:05:27.107
這代表它的行銷說法跟技術的成熟度

00:05:27.107 --> 00:05:28.188
其實有段差距。

00:05:28.188 --> 00:05:30.787
而且目前專案的效能和穩定性

00:05:30.787 --> 00:05:32.988
都還沒有經過大規模的實戰驗證。

00:05:32.988 --> 00:05:34.188
從另一個角度來看，

00:05:34.188 --> 00:05:35.708
computer 專案的價值，

00:05:35.708 --> 00:05:37.428
不只是它的功能而已，

00:05:37.428 --> 00:05:38.468
更重要的是，

00:05:38.468 --> 00:05:41.548
它對整個產業拋出了一個全新的命題，

00:05:41.548 --> 00:05:44.107
叫做：Serverless Personal Computer。

00:05:44.107 --> 00:05:46.107
它模糊了無伺服器函數、

00:05:46.107 --> 00:05:48.748
容器和虛擬機之間的界線，

00:05:48.748 --> 00:05:52.227
也挑戰了 Serverless 一定要無狀態的傳統觀念。

00:05:52.227 --> 00:05:54.868
不過，潛在的風險也相當明顯。

00:05:54.868 --> 00:05:57.827
首先，就是深度的「廠商鎖定」。

00:05:57.827 --> 00:05:59.507
它的整個架構都高度依賴

00:05:59.507 --> 00:06:01.748
Cloudflare 的 Durable Objects 和 Workers，

00:06:01.748 --> 00:06:03.748
想搬家？幾乎不可能。

00:06:03.748 --> 00:06:06.548
其次，這是一個橫跨了 FUSE、RPC、

00:06:06.548 --> 00:06:09.428
再到 Durable Object 等好幾個抽象層的複雜系統，

00:06:09.428 --> 00:06:11.107
這代表萬一出了什麼問題，

00:06:11.107 --> 00:06:12.947
光是 debug 就會是一場惡夢。

00:06:12.947 --> 00:06:15.667
所以說，這個專案最後是成是敗，

00:06:15.708 --> 00:06:18.947
關鍵就看 Cloudflare 能不能在提供強大能力的同時，

00:06:18.947 --> 00:06:22.188
也有效地控制住系統的複雜度和效能瓶頸。

00:06:22.188 --> 00:06:23.148
總結來說，

00:06:23.148 --> 00:06:25.748
Cloudflare 的 computer 不單單只是一個工具，

00:06:25.748 --> 00:06:28.107
它更像是一套完整的世界觀，

00:06:28.107 --> 00:06:31.468
是用來解決 Serverless 核心限制的一種解答。

00:06:31.468 --> 00:06:36.148
它想做的，就是賦予那些來去匆匆的雲端運算任務，

00:06:36.148 --> 00:06:39.748
一個持久的「記憶」和一個靈活的「工作台」。

00:06:39.748 --> 00:06:41.507
雖然專案現在還在實驗階段，

00:06:41.507 --> 00:06:44.468
但它確實為我們指出了一個極具想像力的方向，

00:06:44.468 --> 00:06:47.268
讓我們去思考，未來要如何打造出更強大、

00:06:47.268 --> 00:06:49.667
更有能力的 AI Agent 和自動化流程。

00:06:49.667 --> 00:06:53.067
這也就是為什麼，所有關注雲端原生和 AI 技術的開發者，

00:06:53.067 --> 00:06:56.708
都應該花點時間來了解、

00:06:56.708 --> 00:06:59.308
並且持續追蹤這個專案的後續發展。

