0:11.044–0:15.540
今天我們要深度解析 GitHub 上的一個熱門專案:computer,
0:15.540–0:17.447
由 Cloudflare 推出,
0:17.447–0:21.534
目標是給你的 AI Agent 或雲端應用程式 一台完整的虛擬電腦。
0:21.534–0:25.757
它讓應用能無縫地在高效能的容器與低延遲的 Worker 之間切換,
0:25.757–0:28.618
賦予邊緣運算前所未有的檔案與程式執行能力。
0:28.618–0:29.708
有一個開源專案,
0:29.708–0:32.724
它宣稱要給 AI Agent 一台真正的「電腦」,
0:32.724–0:34.507
而不是一個小小的「容器」。
0:34.507–0:35.329
但有趣的是,
0:35.329–0:39.442
它的底層卻同時用了容器和 Cloudflare Workers。
0:39.442–0:41.499
這個設計聽起來有點矛盾,對吧?
0:41.499–0:43.418
但它在 GitHub 上線不久,
0:43.418–0:44.926
就吸引了將近三千顆星,
0:44.926–0:46.846
甚至有一天就暴增了快九百顆。
0:46.846–0:48.628
這背後可不是什麼行銷話術,
0:48.628–0:51.557
而是一場對無伺服器架構邊界的深刻探索。
0:51.557–0:55.102
今天我們要聊的這個專案,叫做 computer,
0:55.102–0:58.185
它到底藏了什麼樣的技術權衡與設計哲學呢?
0:58.185–1:03.272
computer 這個專案,是由 Cloudflare 發起的一項實驗。
1:03.272–1:04.505
它的目標很明確,
1:04.505–1:06.355
就是要解決一個根本問題:
1:06.355–1:08.667
AI Agent 或雲端應用程式,
1:08.667–1:11.454
在無伺服器 Serverless 環境中,
1:11.454–1:12.920
沒有自己的檔案系統,
1:12.920–1:14.680
也沒辦法執行複雜的程式。
1:14.680–1:15.414
簡單來說,
1:15.414–1:17.907
computer 為每一個運算任務,
1:17.907–1:20.254
都提供了一台功能完整的虛擬電腦。
1:20.254–1:23.040
這個專案是用 TypeScript 寫的,
1:23.040–1:25.534
目前已經累積了二千八百五十四顆星,
1:25.534–1:28.467
其中有八百九十一顆是在一天之內衝上來的,
1:28.467–1:30.504
Fork 數也達到一百三十。
1:30.504–1:32.071
從這些數字可以看出,
1:32.071–1:33.951
它的概念在開發者社群裡,
1:33.951–1:36.145
確實引發了高度的關注和好奇。
1:36.145–1:39.436
我們來談談傳統的 Serverless 架構,
1:39.436–1:40.689
也就是無伺服器。
1:40.689–1:42.726
它最大的特點就是「無狀態」
1:42.726–1:44.450
而且「生命週期很短」。
1:44.450–1:45.547
這代表什麼呢?
1:45.547–1:47.427
意思就是,一個函數跑完,
1:47.427–1:49.016
它所有的執行環境、
1:49.016–1:51.312
所有的資料,就通通消失了,
1:51.312–1:52.371
船過水無痕。
1:52.371–1:57.316
但這對於需要「記憶」和「工作空間」的 AI Agent 來說,
1:57.316–1:59.082
簡直是個天大的限制。
1:59.082–2:02.790
你想想,一個沒有記憶的智慧體,要怎麼工作?
2:02.790–2:03.849
過去的解法,
2:03.849–2:07.028
通常是把狀態存到外部的 S3 或資料庫,
2:07.028–2:08.590
每次執行再重新讀取,
2:08.590–2:10.777
這過程不但麻煩,效率也很差。
2:10.777–2:12.808
那如果要處理更複雜的任務,
2:12.808–2:15.308
像是編譯程式碼、或是轉檔影片呢?
2:15.308–2:16.401
那就更麻煩了,
2:16.401–2:18.901
還得額外啟動笨重的容器或虛擬機。
2:18.901–2:21.713
而 computer 這個專案的切入點,
2:21.713–2:23.275
就是要解決這個痛點。
2:23.275–2:26.868
它試圖在 Serverless 的輕量和彈性之上,
2:26.868–2:30.186
嫁接一個可以永久保存、又能互動的運算環境。
2:30.186–2:34.610
目標,就是讓 AI Agent 真正擁有一個屬於自己的工作台。
2:34.610–2:38.401
好,那 computer 的核心架構是怎麼做到的呢?
2:38.401–2:42.825
關鍵在於,它把「狀態」跟「執行」這兩件事,切得一乾二淨。
2:42.825–2:45.827
你可以把它想像成一台很特別的雲端筆電。
2:45.827–2:51.636
首先,這台筆電的「硬碟」,其實是一個 Cloudflare Durable Object。
2:51.636–2:53.988
它裡面用了一個 SQLite 資料庫,
2:53.988–2:56.201
來儲存整個檔案系統的結構和內容。
2:56.201–2:58.691
Durable Object 這個技術,
2:58.691–3:00.627
確保了你的資料可以永久保存,
3:00.627–3:01.734
而且維持一致性。
3:01.734–3:03.947
再來,這台筆電的「CPU」更酷,
3:03.947–3:05.828
它有兩種模式可以隨時切換。
3:05.828–3:08.866
第一種,是重量級的 Container 後端。
3:08.866–3:11.471
它可以啟動一個完整的 Linux 環境,
3:11.471–3:13.352
讓你能執行任何二進位檔案。
3:13.352–3:17.258
比方說用 pandoc 來轉檔,或用 ffmpeg 處理影片。
3:17.258–3:18.705
而筆電硬碟裡的資料,
3:18.705–3:21.165
會透過 FUSE 技術掛載到容器裡面,
3:21.165–3:22.467
讓程式讀寫檔案時,
3:22.467–3:24.528
就跟在操作本機檔案一樣自然。
3:24.528–3:27.619
第二種模式,是輕量級的 Isolate 後端。
3:27.619–3:29.532
它能在非常非常短的時間內,
3:29.532–3:32.623
啟動一個 Cloudflare Worker,
3:32.623–3:37.333
專門用來跑一些簡單的 shell 指令或 JavaScript 程式碼,
3:37.333–3:38.216
延遲超級低。
3:38.216–3:38.952
最棒的是,
3:38.952–3:41.307
開發者只要透過一個統一的 API,
3:41.307–3:44.902
叫做 workspace.runtime.exec,
3:44.902–3:46.339
就能根據任務的需求,
3:46.339–3:49.359
自由選擇要派出重量級的 Container,
3:49.359–3:51.659
還是輕快又省錢的 Isolate。
3:51.659–3:53.816
這樣一來,就在成本和效能之間,
3:53.816–3:55.110
達到了最佳的平衡。
3:55.110–3:57.555
那這個專案在真實世界有哪些應用呢?
3:57.555–3:58.561
最直接的場景,
3:58.561–4:01.868
就是讓 AI Agent 有能力自己搞定複雜的任務。
4:01.868–4:02.539
舉個例子,
4:02.539–4:05.089
你可以叫一個 Agent 幫你寫一份報告。
4:05.089–4:06.833
它會先在自己的虛擬電腦裡,
4:06.833–4:08.041
建立一個工作目錄,
4:08.041–4:10.188
接著用輕量的 Isolate 後端,
4:10.188–4:12.335
快速把 Markdown 文件寫好。
4:12.335–4:15.288
最後,再呼叫重量級的 Container 後端,
4:15.288–4:17.032
啟動 pandoc 這個工具,
4:17.032–4:19.179
把文件轉成漂亮的 PDF 檔存起來。
4:19.179–4:20.387
整個過程一氣呵成。
4:20.387–4:21.159
另一個應用,
4:21.159–4:23.089
是把它當成一個用 API 來操作的
4:23.089–4:24.375
輕量級雲端開發環境。
4:24.375–4:25.791
開發者可以透過 API,
4:25.791–4:28.492
在這台虛擬電腦裡跑 build script,
4:28.492–4:32.095
或是把專案發佈到 Cloudflare Artifacts。
4:32.095–4:33.510
不過,也因為這項技術,
4:33.510–4:35.954
跟 Cloudflare 的生態綁得很深,
4:35.954–4:39.428
所以對於已經在用 Cloudflare 平台的開發者來說,
4:39.428–4:40.624
上手會比較容易。
4:40.624–4:42.718
但如果你是生態系外的使用者,
4:42.718–4:44.064
就需要先花點時間,
4:44.064–4:47.803
去熟悉 Durable Objects 這類相關服務了。
4:47.803–4:50.794
社群對於 computer 這個專案的反應,
4:50.794–4:52.439
可以說是「審慎樂觀」。
4:52.439–4:53.037
一方面,
4:53.037–4:56.028
大多數開發者都非常欣賞它創新的架構理念。
4:56.028–4:59.468
用 Durable Object 加上 SQLite,
4:59.468–5:01.249
來打造一個永久的工作區,
5:01.249–5:06.445
還能在輕量的 Isolate 和功能完整的 Container 之間動態切換。
5:06.445–5:11.343
這個設計,被認為是替未來自主 AI Agent 打下了非常有潛力的基礎。
5:11.343–5:12.234
但另一方面,
5:12.234–5:13.570
質疑的聲音也不少。
5:13.570–5:16.984
有人就直接指出 Cloudflare 的宣傳口號是
5:16.984–5:19.507
「Agent 需要電腦,而不是容器」
5:19.507–5:22.045
但專案本身還在非常早期的預覽階段,
5:22.045–5:25.031
根本不適合用在 production 環境。
5:25.031–5:27.420
這代表它的行銷說法跟技術的成熟度
5:27.420–5:28.465
其實有段差距。
5:28.465–5:30.406
而且目前專案的效能和穩定性
5:30.406–5:32.645
都還沒有經過大規模的實戰驗證。
5:32.645–5:33.989
從另一個角度來看,
5:33.989–5:36.079
computer 專案的價值,
5:36.079–5:37.572
不只是它的功能而已,
5:37.572–5:38.468
更重要的是,
5:38.468–5:41.101
它對整個產業拋出了一個全新的命題,
5:41.101–5:45.747
叫做:Serverless Personal Computer。
5:45.747–5:47.451
它模糊了無伺服器函數、
5:47.451–5:49.309
容器和虛擬機之間的界線,
5:49.309–5:53.336
也挑戰了 Serverless 一定要無狀態的傳統觀念。
5:53.336–5:55.504
不過,潛在的風險也相當明顯。
5:55.504–5:57.827
首先,就是深度的「廠商鎖定」。
5:57.827–6:03.353
它的整個架構都高度依賴 Cloudflare 的 Durable Objects 和 Workers,
6:03.353–6:04.580
想搬家?幾乎不可能。
6:04.580–6:06.914
其次,這是一個橫跨了 FUSE、RPC、
6:06.914–6:10.352
再到 Durable Object 等好幾個抽象層的複雜系統,
6:10.352–6:11.825
這代表萬一出了什麼問題,
6:11.825–6:13.667
光是 debug 就會是一場惡夢。
6:13.667–6:15.509
所以說,這個專案最後是成是敗,
6:15.509–6:18.947
關鍵就看 Cloudflare 能不能在提供強大能力的同時,
6:18.947–6:21.875
也有效地控制住系統的複雜度和效能瓶頸。
6:21.875–6:22.645
總結來說,
6:22.645–6:27.113
Cloudflare 的 computer 不單單只是一個工具,
6:27.113–6:29.116
它更像是一套完整的世界觀,
6:29.116–6:32.968
是用來解決 Serverless 核心限制的一種解答。
6:32.968–6:36.512
它想做的,就是賦予那些來去匆匆的雲端運算任務,
6:36.512–6:39.748
一個持久的「記憶」和一個靈活的「工作台」。
6:39.748–6:41.782
雖然專案現在還在實驗階段,
6:41.782–6:45.068
但它確實為我們指出了一個極具想像力的方向,
6:45.068–6:48.041
讓我們去思考,未來要如何打造出更強大、
6:48.041–6:51.015
更有能力的 AI Agent 和自動化流程。
6:51.015–6:55.083
這也就是為什麼,所有關注雲端原生和 AI 技術的開發者,
6:55.083–6:56.804
都應該花點時間來了解、
6:56.804–6:59.308
並且持續追蹤這個專案的後續發展。
0:11.044–0:15.540
今天我們要深度解析 GitHub 上的一個熱門專案:computer,
0:15.540–0:17.447
由 Cloudflare 推出,
0:17.447–0:21.534
目標是給你的 AI Agent 或雲端應用程式 一台完整的虛擬電腦。
0:21.534–0:25.757
它讓應用能無縫地在高效能的容器與低延遲的 Worker 之間切換,
0:25.757–0:28.618
賦予邊緣運算前所未有的檔案與程式執行能力。
0:28.618–0:29.708
有一個開源專案,
0:29.708–0:32.724
它宣稱要給 AI Agent 一台真正的「電腦」,
0:32.724–0:34.507
而不是一個小小的「容器」。
0:34.507–0:35.329
但有趣的是,
0:35.329–0:39.442
它的底層卻同時用了容器和 Cloudflare Workers。
0:39.442–0:41.499
這個設計聽起來有點矛盾,對吧?
0:41.499–0:43.418
但它在 GitHub 上線不久,
0:43.418–0:44.926
就吸引了將近三千顆星,
0:44.926–0:46.846
甚至有一天就暴增了快九百顆。
0:46.846–0:48.628
這背後可不是什麼行銷話術,
0:48.628–0:51.557
而是一場對無伺服器架構邊界的深刻探索。
0:51.557–0:55.102
今天我們要聊的這個專案,叫做 computer,
0:55.102–0:58.185
它到底藏了什麼樣的技術權衡與設計哲學呢?
0:58.185–1:03.272
computer 這個專案,是由 Cloudflare 發起的一項實驗。
1:03.272–1:04.505
它的目標很明確,
1:04.505–1:06.355
就是要解決一個根本問題:
1:06.355–1:08.667
AI Agent 或雲端應用程式,
1:08.667–1:11.454
在無伺服器 Serverless 環境中,
1:11.454–1:12.920
沒有自己的檔案系統,
1:12.920–1:14.680
也沒辦法執行複雜的程式。
1:14.680–1:15.414
簡單來說,
1:15.414–1:17.907
computer 為每一個運算任務,
1:17.907–1:20.254
都提供了一台功能完整的虛擬電腦。
1:20.254–1:23.040
這個專案是用 TypeScript 寫的,
1:23.040–1:25.534
目前已經累積了二千八百五十四顆星,
1:25.534–1:28.467
其中有八百九十一顆是在一天之內衝上來的,
1:28.467–1:30.504
Fork 數也達到一百三十。
1:30.504–1:32.071
從這些數字可以看出,
1:32.071–1:33.951
它的概念在開發者社群裡,
1:33.951–1:36.145
確實引發了高度的關注和好奇。
1:36.145–1:39.436
我們來談談傳統的 Serverless 架構,
1:39.436–1:40.689
也就是無伺服器。
1:40.689–1:42.726
它最大的特點就是「無狀態」
1:42.726–1:44.450
而且「生命週期很短」。
1:44.450–1:45.547
這代表什麼呢?
1:45.547–1:47.427
意思就是,一個函數跑完,
1:47.427–1:49.016
它所有的執行環境、
1:49.016–1:51.312
所有的資料,就通通消失了,
1:51.312–1:52.371
船過水無痕。
1:52.371–1:57.316
但這對於需要「記憶」和「工作空間」的 AI Agent 來說,
1:57.316–1:59.082
簡直是個天大的限制。
1:59.082–2:02.790
你想想,一個沒有記憶的智慧體,要怎麼工作?
2:02.790–2:03.849
過去的解法,
2:03.849–2:07.028
通常是把狀態存到外部的 S3 或資料庫,
2:07.028–2:08.590
每次執行再重新讀取,
2:08.590–2:10.777
這過程不但麻煩,效率也很差。
2:10.777–2:12.808
那如果要處理更複雜的任務,
2:12.808–2:15.308
像是編譯程式碼、或是轉檔影片呢?
2:15.308–2:16.401
那就更麻煩了,
2:16.401–2:18.901
還得額外啟動笨重的容器或虛擬機。
2:18.901–2:21.713
而 computer 這個專案的切入點,
2:21.713–2:23.275
就是要解決這個痛點。
2:23.275–2:26.868
它試圖在 Serverless 的輕量和彈性之上,
2:26.868–2:30.186
嫁接一個可以永久保存、又能互動的運算環境。
2:30.186–2:34.610
目標,就是讓 AI Agent 真正擁有一個屬於自己的工作台。
2:34.610–2:38.401
那麼,Computer 的核心架構是怎麼實現的呢?
2:38.401–2:42.825
關鍵在於,它將「狀態」與「執行」這兩件事徹底分離。
2:42.825–2:45.827
你可以把它想像成一台非常特殊的雲端筆電。
2:45.827–2:51.636
首先,這台筆電的「硬碟」其實是一個 Cloudflare Durable Object。
2:51.636–2:53.988
它內部使用了一個 SQLite 資料庫,
2:53.988–2:56.201
來儲存整個檔案系統的結構與內容。
2:56.201–2:58.691
Durable Object 這項技術,
2:58.691–3:00.627
確保了你的資料能夠永久保存,
3:00.627–3:01.734
並且維持一致性。
3:01.734–3:03.947
接著,這台筆電的「CPU」更酷,
3:03.947–3:05.828
它具備兩種可以隨時切換的模式。
3:05.828–3:08.866
第一種是重量級的 Container 後端。
3:08.866–3:11.471
它可以啟動一個完整的 Linux 環境,
3:11.471–3:13.352
讓你能夠執行任何二進位檔案。
3:13.352–3:17.258
例如使用 pandoc 進行檔案轉換,或使用 ffmpeg 處理影片。
3:17.258–3:18.705
而筆電硬碟中的資料,
3:18.705–3:21.165
會透過 FUSE 技術掛載到容器內部,
3:21.165–3:22.467
讓程式在讀寫檔案時,
3:22.467–3:24.528
感覺就像在操作本機檔案一樣自然。
3:24.528–3:27.619
第二種模式是輕量級的 Isolate 後端。
3:27.619–3:29.532
它能在極短的時間內,
3:29.532–3:32.623
啟動一個 Cloudflare Worker,
3:32.623–3:37.333
專門用來執行簡單的 shell 指令或 JavaScript 程式碼,
3:37.333–3:38.216
延遲極低。
3:38.216–3:38.952
最棒的是,
3:38.952–3:41.307
開發者只要透過一個統一的 API,
3:41.307–3:44.902
稱為 workspace.runtime.exec,
3:44.902–3:46.339
就能根據任務需求,
3:46.339–3:49.359
自由選擇要使用重量級的 Container,
3:49.359–3:51.659
還是輕量且省錢的 Isolate。
3:51.659–3:53.816
這樣一來,就在成本與效能之間,
3:53.816–3:55.110
達到了最佳平衡。
3:55.110–3:57.555
那麼這個專案在現實世界中有哪些應用呢?
3:57.555–3:58.561
最直接的場景,
3:58.561–4:01.868
就是讓 AI Agent 有能力自行處理複雜任務。
4:01.868–4:02.539
舉個例子,
4:02.539–4:05.089
你可以要求一個 Agent 幫你撰寫一份報告。
4:05.089–4:06.833
它會先在虛擬電腦環境中,
4:06.833–4:08.041
建立一個工作目錄,
4:08.041–4:10.188
接著使用輕量的 Isolate 後端,
4:10.188–4:12.335
快速完成 Markdown 文件的撰寫。
4:12.335–4:15.288
最後,再呼叫重量級的 Container 後端,
4:15.288–4:17.032
啟動 pandoc 這個工具,
4:17.032–4:19.179
將文件轉換成精美的 PDF 檔案並儲存。
4:19.179–4:20.387
整個過程一氣呵成。
4:20.387–4:21.159
另一個應用場景,
4:21.159–4:23.089
是將其作為透過 API 操作的
4:23.089–4:24.375
輕量級雲端開發環境。
4:24.375–4:25.791
開發者可以透過 API,
4:25.791–4:28.492
在這台虛擬電腦中執行建置腳本,
4:28.492–4:32.095
或是將專案發佈至 Cloudflare Artifacts。
4:32.095–4:33.510
不過,也正因為這項技術,
4:33.510–4:35.954
與 Cloudflare 的生態系綁得相當緊密,
4:35.954–4:39.428
因此對於已經在使用 Cloudflare 平台的開發者來說,
4:39.428–4:40.624
上手會比較容易。
4:40.624–4:42.718
但如果你是生態系外的使用者,
4:42.718–4:44.064
就需要先花點時間,
4:44.064–4:47.803
去熟悉 Durable Objects 這類相關服務。
4:47.803–4:50.794
社群對於 computer 這個專案的反應,
4:50.794–4:52.439
可以說是「審慎樂觀」。
4:52.439–4:53.037
一方面,
4:53.037–4:56.028
大多數開發者都非常欣賞它創新的架構理念。
4:56.028–4:59.468
使用 Durable Object 搭配 SQLite,
4:59.468–5:01.249
來打造一個永久的工作區,
5:01.249–5:06.445
還能在輕量的 Isolate 和功能完整的 Container 之間動態切換。
5:06.445–5:11.343
這個設計,被認為是替未來自主 AI Agent 打下了非常有潛力的基礎。
5:11.343–5:12.234
但另一方面,
5:12.234–5:13.570
質疑的聲音也不少。
5:13.570–5:16.984
有人就直接指出 Cloudflare 的宣傳口號是
5:16.984–5:19.507
「Agent 需要電腦,而不是容器」
5:19.507–5:22.045
但專案本身還在非常早期的預覽階段,
5:22.045–5:25.031
根本不適合用在 production 環境。
5:25.031–5:27.420
這代表它的行銷說法跟技術的成熟度
5:27.420–5:28.465
其實有段差距。
5:28.465–5:30.406
而且目前專案的效能和穩定性
5:30.406–5:32.645
都還沒有經過大規模的實戰驗證。
5:32.645–5:33.989
從另一個角度來看,
5:33.989–5:36.079
computer 專案的價值,
5:36.079–5:37.572
不只是它的功能而已,
5:37.572–5:38.468
更重要的是,
5:38.468–5:41.101
它對整個產業拋出了一個全新的命題,
5:41.101–5:45.747
叫做:Serverless Personal Computer。
5:45.747–5:47.451
它模糊了無伺服器函數、
5:47.451–5:49.309
容器和虛擬機之間的界線,
5:49.309–5:53.336
也挑戰了 Serverless 一定要無狀態的傳統觀念。
5:53.336–5:55.504
不過,潛在的風險也相當明顯。
5:55.504–5:57.827
首先,就是深度的「廠商鎖定」。
5:57.827–6:03.353
它的整個架構都高度依賴 Cloudflare 的 Durable Objects 和 Workers,
6:03.353–6:04.580
想搬家?幾乎不可能。
6:04.580–6:06.914
其次,這是一個橫跨了 FUSE、RPC、
6:06.914–6:10.352
再到 Durable Object 等好幾個抽象層的複雜系統,
6:10.352–6:11.825
這代表萬一出了什麼問題,
6:11.825–6:13.667
光是 debug 就會是一場惡夢。
6:13.667–6:15.509
所以說,這個專案最後是成是敗,
6:15.509–6:18.947
關鍵就看 Cloudflare 能不能在提供強大能力的同時,
6:18.947–6:21.875
也有效地控制住系統的複雜度和效能瓶頸。
6:21.875–6:22.645
總結來說,
6:22.645–6:27.113
Cloudflare 的 computer 不單單只是一個工具,
6:27.113–6:29.116
它更像是一套完整的世界觀,
6:29.116–6:32.968
是用來解決 Serverless 核心限制的一種解答。
6:32.968–6:36.512
它想做的,就是賦予那些來去匆匆的雲端運算任務,
6:36.512–6:39.748
一個持久的「記憶」和一個靈活的「工作台」。
6:39.748–6:41.782
雖然專案現在還在實驗階段,
6:41.782–6:45.068
但它確實為我們指出了一個極具想像力的方向,
6:45.068–6:48.041
讓我們去思考,未來要如何打造出更強大、
6:48.041–6:51.015
更有能力的 AI Agent 和自動化流程。
6:51.015–6:55.083
這也就是為什麼,所有關注雲端原生和 AI 技術的開發者,
6:55.083–6:56.804
都應該花點時間來了解、
6:56.804–6:59.308
並且持續追蹤這個專案的後續發展。
0:11.044–0:15.540
今天我們要深度解析 GitHub 上的一個熱門專案:computer,
今天我們要深度解析 GitHub 上的一個熱門專案:computer,
0:15.540–0:17.447
由 Cloudflare 推出,
由 Cloudflare 推出,
0:17.447–0:21.534
目標是給你的 AI Agent 或雲端應用程式 一台完整的虛擬電腦。
目標是給你的 AI Agent 或雲端應用程式 一台完整的虛擬電腦。
0:21.534–0:25.757
它讓應用能無縫地在高效能的容器與低延遲的 Worker 之間切換,
它讓應用能無縫地在高效能的容器與低延遲的 Worker 之間切換,
0:25.757–0:28.618
賦予邊緣運算前所未有的檔案與程式執行能力。
賦予邊緣運算前所未有的檔案與程式執行能力。
0:28.618–0:29.708
有一個開源專案,
有一個開源專案,
0:29.708–0:32.724
它宣稱要給 AI Agent 一台真正的「電腦」,
它宣稱要給 AI Agent 一台真正的「電腦」,
0:32.724–0:34.507
而不是一個小小的「容器」。
而不是一個小小的「容器」。
0:34.507–0:35.329
但有趣的是,
但有趣的是,
0:35.329–0:39.442
它的底層卻同時用了容器和 Cloudflare Workers。
它的底層卻同時用了容器和 Cloudflare Workers。
0:39.442–0:41.499
這個設計聽起來有點矛盾,對吧?
這個設計聽起來有點矛盾,對吧?
0:41.499–0:43.418
但它在 GitHub 上線不久,
但它在 GitHub 上線不久,
0:43.418–0:44.926
就吸引了將近三千顆星,
就吸引了將近三千顆星,
0:44.926–0:46.846
甚至有一天就暴增了快九百顆。
甚至有一天就暴增了快九百顆。
0:46.846–0:48.628
這背後可不是什麼行銷話術,
這背後可不是什麼行銷話術,
0:48.628–0:51.557
而是一場對無伺服器架構邊界的深刻探索。
而是一場對無伺服器架構邊界的深刻探索。
0:51.557–0:55.102
今天我們要聊的這個專案,叫做 computer,
今天我們要聊的這個專案,叫做 computer,
0:55.102–0:58.185
它到底藏了什麼樣的技術權衡與設計哲學呢?
它到底藏了什麼樣的技術權衡與設計哲學呢?
0:58.185–1:03.272
computer 這個專案,是由 Cloudflare 發起的一項實驗。
computer 這個專案,是由 Cloudflare 發起的一項實驗。
1:03.272–1:04.505
它的目標很明確,
它的目標很明確,
1:04.505–1:06.355
就是要解決一個根本問題:
就是要解決一個根本問題:
1:06.355–1:08.667
AI Agent 或雲端應用程式,
AI Agent 或雲端應用程式,
1:08.667–1:11.454
在無伺服器 Serverless 環境中,
在無伺服器 Serverless 環境中,
1:11.454–1:12.920
沒有自己的檔案系統,
沒有自己的檔案系統,
1:12.920–1:14.680
也沒辦法執行複雜的程式。
也沒辦法執行複雜的程式。
1:14.680–1:15.414
簡單來說,
簡單來說,
1:15.414–1:17.907
computer 為每一個運算任務,
computer 為每一個運算任務,
1:17.907–1:20.254
都提供了一台功能完整的虛擬電腦。
都提供了一台功能完整的虛擬電腦。
1:20.254–1:23.040
這個專案是用 TypeScript 寫的,
這個專案是用 TypeScript 寫的,
1:23.040–1:25.534
目前已經累積了二千八百五十四顆星,
目前已經累積了二千八百五十四顆星,
1:25.534–1:28.467
其中有八百九十一顆是在一天之內衝上來的,
其中有八百九十一顆是在一天之內衝上來的,
1:28.467–1:30.504
Fork 數也達到一百三十。
Fork 數也達到一百三十。
1:30.504–1:32.071
從這些數字可以看出,
從這些數字可以看出,
1:32.071–1:33.951
它的概念在開發者社群裡,
它的概念在開發者社群裡,
1:33.951–1:36.145
確實引發了高度的關注和好奇。
確實引發了高度的關注和好奇。
1:36.145–1:39.436
我們來談談傳統的 Serverless 架構,
我們來談談傳統的 Serverless 架構,
1:39.436–1:40.689
也就是無伺服器。
也就是無伺服器。
1:40.689–1:42.726
它最大的特點就是「無狀態」
它最大的特點就是「無狀態」
1:42.726–1:44.450
而且「生命週期很短」。
而且「生命週期很短」。
1:44.450–1:45.547
這代表什麼呢?
這代表什麼呢?
1:45.547–1:47.427
意思就是,一個函數跑完,
意思就是,一個函數跑完,
1:47.427–1:49.016
它所有的執行環境、
它所有的執行環境、
1:49.016–1:51.312
所有的資料,就通通消失了,
所有的資料,就通通消失了,
1:51.312–1:52.371
船過水無痕。
船過水無痕。
1:52.371–1:57.316
但這對於需要「記憶」和「工作空間」的 AI Agent 來說,
但這對於需要「記憶」和「工作空間」的 AI Agent 來說,
1:57.316–1:59.082
簡直是個天大的限制。
簡直是個天大的限制。
1:59.082–2:02.790
你想想,一個沒有記憶的智慧體,要怎麼工作?
你想想,一個沒有記憶的智慧體,要怎麼工作?
2:02.790–2:03.849
過去的解法,
過去的解法,
2:03.849–2:07.028
通常是把狀態存到外部的 S3 或資料庫,
通常是把狀態存到外部的 S3 或資料庫,
2:07.028–2:08.590
每次執行再重新讀取,
每次執行再重新讀取,
2:08.590–2:10.777
這過程不但麻煩,效率也很差。
這過程不但麻煩,效率也很差。
2:10.777–2:12.808
那如果要處理更複雜的任務,
那如果要處理更複雜的任務,
2:12.808–2:15.308
像是編譯程式碼、或是轉檔影片呢?
像是編譯程式碼、或是轉檔影片呢?
2:15.308–2:16.401
那就更麻煩了,
那就更麻煩了,
2:16.401–2:18.901
還得額外啟動笨重的容器或虛擬機。
還得額外啟動笨重的容器或虛擬機。
2:18.901–2:21.713
而 computer 這個專案的切入點,
而 computer 這個專案的切入點,
2:21.713–2:23.275
就是要解決這個痛點。
就是要解決這個痛點。
2:23.275–2:26.868
它試圖在 Serverless 的輕量和彈性之上,
它試圖在 Serverless 的輕量和彈性之上,
2:26.868–2:30.186
嫁接一個可以永久保存、又能互動的運算環境。
嫁接一個可以永久保存、又能互動的運算環境。
2:30.186–2:34.610
目標,就是讓 AI Agent 真正擁有一個屬於自己的工作台。
目標,就是讓 AI Agent 真正擁有一個屬於自己的工作台。
2:34.610–2:38.401
好,那 computer 的核心架構是怎麼做到的呢?
那麼,Computer 的核心架構是怎麼實現的呢?
2:38.401–2:42.825
關鍵在於,它把「狀態」跟「執行」這兩件事,切得一乾二淨。
關鍵在於,它將「狀態」與「執行」這兩件事徹底分離。
2:42.825–2:45.827
你可以把它想像成一台很特別的雲端筆電。
你可以把它想像成一台非常特殊的雲端筆電。
2:45.827–2:51.636
首先,這台筆電的「硬碟」,其實是一個 Cloudflare Durable Object。
首先,這台筆電的「硬碟」其實是一個 Cloudflare Durable Object。
2:51.636–2:53.988
它裡面用了一個 SQLite 資料庫,
它內部使用了一個 SQLite 資料庫,
2:53.988–2:56.201
來儲存整個檔案系統的結構和內容。
來儲存整個檔案系統的結構與內容。
2:56.201–2:58.691
Durable Object 這個技術,
Durable Object 這項技術,
2:58.691–3:00.627
確保了你的資料可以永久保存,
確保了你的資料能夠永久保存,
3:00.627–3:01.734
而且維持一致性。
並且維持一致性。
3:01.734–3:03.947
再來,這台筆電的「CPU」更酷,
接著,這台筆電的「CPU」更酷,
3:03.947–3:05.828
它有兩種模式可以隨時切換。
它具備兩種可以隨時切換的模式。
3:05.828–3:08.866
第一種,是重量級的 Container 後端。
第一種是重量級的 Container 後端。
3:08.866–3:11.471
它可以啟動一個完整的 Linux 環境,
它可以啟動一個完整的 Linux 環境,
3:11.471–3:13.352
讓你能執行任何二進位檔案。
讓你能夠執行任何二進位檔案。
3:13.352–3:17.258
比方說用 pandoc 來轉檔,或用 ffmpeg 處理影片。
例如使用 pandoc 進行檔案轉換,或使用 ffmpeg 處理影片。
3:17.258–3:18.705
而筆電硬碟裡的資料,
而筆電硬碟中的資料,
3:18.705–3:21.165
會透過 FUSE 技術掛載到容器裡面,
會透過 FUSE 技術掛載到容器內部,
3:21.165–3:22.467
讓程式讀寫檔案時,
讓程式在讀寫檔案時,
3:22.467–3:24.528
就跟在操作本機檔案一樣自然。
感覺就像在操作本機檔案一樣自然。
3:24.528–3:27.619
第二種模式,是輕量級的 Isolate 後端。
第二種模式是輕量級的 Isolate 後端。
3:27.619–3:29.532
它能在非常非常短的時間內,
它能在極短的時間內,
3:29.532–3:32.623
啟動一個 Cloudflare Worker,
啟動一個 Cloudflare Worker,
3:32.623–3:37.333
專門用來跑一些簡單的 shell 指令或 JavaScript 程式碼,
專門用來執行簡單的 shell 指令或 JavaScript 程式碼,
3:37.333–3:38.216
延遲超級低。
延遲極低。
3:38.216–3:38.952
最棒的是,
最棒的是,
3:38.952–3:41.307
開發者只要透過一個統一的 API,
開發者只要透過一個統一的 API,
3:41.307–3:44.902
叫做 workspace.runtime.exec,
稱為 workspace.runtime.exec,
3:44.902–3:46.339
就能根據任務的需求,
就能根據任務需求,
3:46.339–3:49.359
自由選擇要派出重量級的 Container,
自由選擇要使用重量級的 Container,
3:49.359–3:51.659
還是輕快又省錢的 Isolate。
還是輕量且省錢的 Isolate。
3:51.659–3:53.816
這樣一來,就在成本和效能之間,
這樣一來,就在成本與效能之間,
3:53.816–3:55.110
達到了最佳的平衡。
達到了最佳平衡。
3:55.110–3:57.555
那這個專案在真實世界有哪些應用呢?
那麼這個專案在現實世界中有哪些應用呢?
3:57.555–3:58.561
最直接的場景,
最直接的場景,
3:58.561–4:01.868
就是讓 AI Agent 有能力自己搞定複雜的任務。
就是讓 AI Agent 有能力自行處理複雜任務。
4:01.868–4:02.539
舉個例子,
舉個例子,
4:02.539–4:05.089
你可以叫一個 Agent 幫你寫一份報告。
你可以要求一個 Agent 幫你撰寫一份報告。
4:05.089–4:06.833
它會先在自己的虛擬電腦裡,
它會先在虛擬電腦環境中,
4:06.833–4:08.041
建立一個工作目錄,
建立一個工作目錄,
4:08.041–4:10.188
接著用輕量的 Isolate 後端,
接著使用輕量的 Isolate 後端,
4:10.188–4:12.335
快速把 Markdown 文件寫好。
快速完成 Markdown 文件的撰寫。
4:12.335–4:15.288
最後,再呼叫重量級的 Container 後端,
最後,再呼叫重量級的 Container 後端,
4:15.288–4:17.032
啟動 pandoc 這個工具,
啟動 pandoc 這個工具,
4:17.032–4:19.179
把文件轉成漂亮的 PDF 檔存起來。
將文件轉換成精美的 PDF 檔案並儲存。
4:19.179–4:20.387
整個過程一氣呵成。
整個過程一氣呵成。
4:20.387–4:21.159
另一個應用,
另一個應用場景,
4:21.159–4:23.089
是把它當成一個用 API 來操作的
是將其作為透過 API 操作的
4:23.089–4:24.375
輕量級雲端開發環境。
輕量級雲端開發環境。
4:24.375–4:25.791
開發者可以透過 API,
開發者可以透過 API,
4:25.791–4:28.492
在這台虛擬電腦裡跑 build script,
在這台虛擬電腦中執行建置腳本,
4:28.492–4:32.095
或是把專案發佈到 Cloudflare Artifacts。
或是將專案發佈至 Cloudflare Artifacts。
4:32.095–4:33.510
不過,也因為這項技術,
不過,也正因為這項技術,
4:33.510–4:35.954
跟 Cloudflare 的生態綁得很深,
與 Cloudflare 的生態系綁得相當緊密,
4:35.954–4:39.428
所以對於已經在用 Cloudflare 平台的開發者來說,
因此對於已經在使用 Cloudflare 平台的開發者來說,
4:39.428–4:40.624
上手會比較容易。
上手會比較容易。
4:40.624–4:42.718
但如果你是生態系外的使用者,
但如果你是生態系外的使用者,
4:42.718–4:44.064
就需要先花點時間,
就需要先花點時間,
4:44.064–4:47.803
去熟悉 Durable Objects 這類相關服務了。
去熟悉 Durable Objects 這類相關服務。
4:47.803–4:50.794
社群對於 computer 這個專案的反應,
社群對於 computer 這個專案的反應,
4:50.794–4:52.439
可以說是「審慎樂觀」。
可以說是「審慎樂觀」。
4:52.439–4:53.037
一方面,
一方面,
4:53.037–4:56.028
大多數開發者都非常欣賞它創新的架構理念。
大多數開發者都非常欣賞它創新的架構理念。
4:56.028–4:59.468
用 Durable Object 加上 SQLite,
使用 Durable Object 搭配 SQLite,
4:59.468–5:01.249
來打造一個永久的工作區,
來打造一個永久的工作區,
5:01.249–5:06.445
還能在輕量的 Isolate 和功能完整的 Container 之間動態切換。
還能在輕量的 Isolate 和功能完整的 Container 之間動態切換。
5:06.445–5:11.343
這個設計,被認為是替未來自主 AI Agent 打下了非常有潛力的基礎。
這個設計,被認為是替未來自主 AI Agent 打下了非常有潛力的基礎。
5:11.343–5:12.234
但另一方面,
但另一方面,
5:12.234–5:13.570
質疑的聲音也不少。
質疑的聲音也不少。
5:13.570–5:16.984
有人就直接指出 Cloudflare 的宣傳口號是
有人就直接指出 Cloudflare 的宣傳口號是
5:16.984–5:19.507
「Agent 需要電腦,而不是容器」
「Agent 需要電腦,而不是容器」
5:19.507–5:22.045
但專案本身還在非常早期的預覽階段,
但專案本身還在非常早期的預覽階段,
5:22.045–5:25.031
根本不適合用在 production 環境。
根本不適合用在 production 環境。
5:25.031–5:27.420
這代表它的行銷說法跟技術的成熟度
這代表它的行銷說法跟技術的成熟度
5:27.420–5:28.465
其實有段差距。
其實有段差距。
5:28.465–5:30.406
而且目前專案的效能和穩定性
而且目前專案的效能和穩定性
5:30.406–5:32.645
都還沒有經過大規模的實戰驗證。
都還沒有經過大規模的實戰驗證。
5:32.645–5:33.989
從另一個角度來看,
從另一個角度來看,
5:33.989–5:36.079
computer 專案的價值,
computer 專案的價值,
5:36.079–5:37.572
不只是它的功能而已,
不只是它的功能而已,
5:37.572–5:38.468
更重要的是,
更重要的是,
5:38.468–5:41.101
它對整個產業拋出了一個全新的命題,
它對整個產業拋出了一個全新的命題,
5:41.101–5:45.747
叫做:Serverless Personal Computer。
叫做:Serverless Personal Computer。
5:45.747–5:47.451
它模糊了無伺服器函數、
它模糊了無伺服器函數、
5:47.451–5:49.309
容器和虛擬機之間的界線,
容器和虛擬機之間的界線,
5:49.309–5:53.336
也挑戰了 Serverless 一定要無狀態的傳統觀念。
也挑戰了 Serverless 一定要無狀態的傳統觀念。
5:53.336–5:55.504
不過,潛在的風險也相當明顯。
不過,潛在的風險也相當明顯。
5:55.504–5:57.827
首先,就是深度的「廠商鎖定」。
首先,就是深度的「廠商鎖定」。
5:57.827–6:03.353
它的整個架構都高度依賴 Cloudflare 的 Durable Objects 和 Workers,
它的整個架構都高度依賴 Cloudflare 的 Durable Objects 和 Workers,
6:03.353–6:04.580
想搬家?幾乎不可能。
想搬家?幾乎不可能。
6:04.580–6:06.914
其次,這是一個橫跨了 FUSE、RPC、
其次,這是一個橫跨了 FUSE、RPC、
6:06.914–6:10.352
再到 Durable Object 等好幾個抽象層的複雜系統,
再到 Durable Object 等好幾個抽象層的複雜系統,
6:10.352–6:11.825
這代表萬一出了什麼問題,
這代表萬一出了什麼問題,
6:11.825–6:13.667
光是 debug 就會是一場惡夢。
光是 debug 就會是一場惡夢。
6:13.667–6:15.509
所以說,這個專案最後是成是敗,
所以說,這個專案最後是成是敗,
6:15.509–6:18.947
關鍵就看 Cloudflare 能不能在提供強大能力的同時,
關鍵就看 Cloudflare 能不能在提供強大能力的同時,
6:18.947–6:21.875
也有效地控制住系統的複雜度和效能瓶頸。
也有效地控制住系統的複雜度和效能瓶頸。
6:21.875–6:22.645
總結來說,
總結來說,
6:22.645–6:27.113
Cloudflare 的 computer 不單單只是一個工具,
Cloudflare 的 computer 不單單只是一個工具,
6:27.113–6:29.116
它更像是一套完整的世界觀,
它更像是一套完整的世界觀,
6:29.116–6:32.968
是用來解決 Serverless 核心限制的一種解答。
是用來解決 Serverless 核心限制的一種解答。
6:32.968–6:36.512
它想做的,就是賦予那些來去匆匆的雲端運算任務,
它想做的,就是賦予那些來去匆匆的雲端運算任務,
6:36.512–6:39.748
一個持久的「記憶」和一個靈活的「工作台」。
一個持久的「記憶」和一個靈活的「工作台」。
6:39.748–6:41.782
雖然專案現在還在實驗階段,
雖然專案現在還在實驗階段,
6:41.782–6:45.068
但它確實為我們指出了一個極具想像力的方向,
但它確實為我們指出了一個極具想像力的方向,
6:45.068–6:48.041
讓我們去思考,未來要如何打造出更強大、
讓我們去思考,未來要如何打造出更強大、
6:48.041–6:51.015
更有能力的 AI Agent 和自動化流程。
更有能力的 AI Agent 和自動化流程。
6:51.015–6:55.083
這也就是為什麼,所有關注雲端原生和 AI 技術的開發者,
這也就是為什麼,所有關注雲端原生和 AI 技術的開發者,
6:55.083–6:56.804
都應該花點時間來了解、
都應該花點時間來了解、
6:56.804–6:59.308
並且持續追蹤這個專案的後續發展。
並且持續追蹤這個專案的後續發展。