Manus 背后的重要 Infra,E2B 如何給 AI Agents 配備“專屬電腦”?

0 評論 3861 瀏覽 0 收藏 40 分鐘

在AI技術(shù)飛速發(fā)展的當(dāng)下,多智能體系統(tǒng)(Multi-Agent System)正成為新的突破方向,而Agent Infra(智能體基礎(chǔ)設(shè)施)則成為實現(xiàn)這些系統(tǒng)落地的關(guān)鍵。E2B作為這一領(lǐng)域的新興參與者,憑借其為Manus等項目提供的“專屬電腦”支持而備受關(guān)注。E2B不僅允許用戶在云端的安全隔離沙盒中運行AI生成的代碼,還致力于成為AI Agent時代的AWS,為Agent從開發(fā)到部署的完整生命周期提供支持。

Multi agent 系統(tǒng)正成為新的突破方向的過程中,agent infra 也成為落地關(guān)鍵。在 computer use 帶來范式創(chuàng)新的趨勢下,virtual machine 將成為潛在創(chuàng)業(yè)機會,E2B 就是這個領(lǐng)域的新興參與者。

E2B 之所以受到市場關(guān)注很大程度上是因為 Manus,Manus agent 完成任務(wù)過程中的 virtual computer 支持正是來自于 E2B。E2B 成立于 2023 年,作為一個開源基礎(chǔ)設(shè)施,允許用戶在云端的安全隔離沙盒中運行 AI 生成的代碼。E2B 本質(zhì)上是一個可以快速啟動(~150 毫秒)的 microVM,它的底層類似于 AWS Firecracker 這個代表性的 MicroVM,在此基礎(chǔ)上, AI Agents 可以在 E2B 中運行代碼語言、使用瀏覽器、調(diào)用各種操作系統(tǒng)中的工具。

隨著 Agent 生態(tài)的繁榮,E2B 的沙盒月創(chuàng)建量一年內(nèi)從 4 萬增長到 1500 萬,一年內(nèi)增長了 375 倍。

為什么 AI agents 需要專屬的“電腦”?

為了更好地理解這個問題,我們編譯了 CEO Vasek Mlejnsky 最新的兩次訪談,以及 E2B 內(nèi)部一篇有關(guān) computer use agent 的技術(shù)博客。本文詳細(xì)介紹了 E2B 的技術(shù)理念,以及團(tuán)隊從代碼解釋器轉(zhuǎn)型為更通用的 agent 運行環(huán)境背后的思考。

E2B 的愿景很大,CEO 的目標(biāo)是成為 AI Agent 時代的 AWS,成為一個自動化的 infra 平臺,未來可以提供 GPU 支持,滿足更復(fù)雜的數(shù)據(jù)分析、小模型訓(xùn)練、游戲生成等需求,并可以托管 agent 構(gòu)建的應(yīng)用,覆蓋 agent 從開發(fā)到部署的完整生命周期。

01.E2B 是什么?

E2B 的創(chuàng)立、發(fā)展和轉(zhuǎn)型

E2B 的兩個創(chuàng)始人是 Vasek Mlejnsky(CEO)和 Tomas Valenta(CTO),來自捷克。在正式創(chuàng)業(yè)之前,二人就已經(jīng)合作過很多項目。

在創(chuàng)立 E2B 之前,Vasek 和 Tomas 在做的產(chǎn)品叫做 DevBook,這是一個面向開發(fā)者的交互式文檔,可以看作是 E2B 的雛形。GPT-3.5 發(fā)布后,二人嘗試構(gòu)建 agent 來自動化工作,因為每一個項目都需要一套工具集成到后端,于是他們利用 DevBook 已有的沙盒技術(shù)運行代碼,并將 agent 自動拉取 GitHub、編寫代碼、部署到 Railway 的相關(guān)內(nèi)容發(fā)到了 twitter,推文意外被 Greg Brockman 等人轉(zhuǎn)發(fā),在幾天內(nèi)獲得了大約 50 萬次瀏覽。之后二人迅速開源并將重心轉(zhuǎn)向沙盒環(huán)境,在 2023 年 3 月創(chuàng)立了 E2B。

Vasek 表示,團(tuán)隊一開始就意識到了代碼執(zhí)行是 agent 技術(shù)棧中至關(guān)重要的一環(huán)。代碼就像是一種通用語言,可以作為連接一切的粘合劑,人類開發(fā)者就是通過代碼把各種服務(wù)和 API 連接起來,從而讓系統(tǒng)跑得起來的,為什么 agent 不能做同樣的事情呢?Agent 需要一個安全、靈活的代碼執(zhí)行環(huán)境,且隨著 agent 越來越強大,代碼運行環(huán)境也變得越來越重要。

E2B 發(fā)展的一個關(guān)鍵點是引入了“代碼解釋(code interpretor)”這個概念,當(dāng)團(tuán)隊開始用這個詞解釋產(chǎn)品的時候,很多用戶一下子就明白了:如果用戶想用 AI 進(jìn)行數(shù)據(jù)分析、可視化,代碼執(zhí)行就非常關(guān)鍵,因為這些任務(wù)都需要運行 AI 生成的代碼;如果想讓大模型更聰明,比如能做數(shù)學(xué)運算,那代碼就可以被看作是一個非常通用的計算器;有用戶想構(gòu)建一個 AI 驅(qū)動的 Excel,只需要描述每一列該做什么,agent 就會根據(jù)描述動態(tài)生成代碼、執(zhí)行代碼,用戶就可以輕松完成數(shù)據(jù)增強、數(shù)據(jù)分析等任務(wù)。

在創(chuàng)業(yè)早期,E2B 花了很多時間通過使用明確的用例來教育市場、獲取用戶。

2024 年 10 月,Anthropic 推出了 computer use,但其實早在六個月前,E2B 就已經(jīng)有了一個桌面版的沙盒環(huán)境,只是當(dāng)時沒有模型能夠真正用起來,因此這一功能未被廣泛關(guān)注。大約在 2024 年底至 2025 年初,團(tuán)隊開始觀察到用戶將沙盒用于 computer use。同時 Vasek 注意到,在 2024 年的時候人們還在嘗試構(gòu)建 agent,但到了 2025 年,agent 已經(jīng)被越來越多地被投入到生產(chǎn)環(huán)境,出現(xiàn)了大量新的用例。

隨著這一趨勢的發(fā)展,人們已經(jīng)不再沙盒僅僅用于運行數(shù)據(jù)分析等代碼片段,E2B 順勢調(diào)整了產(chǎn)品定位,不再將沙盒僅視為代碼解釋器,而是逐漸拓展為更通用的 LLM 或者 agent 運行時的環(huán)境。

受益于 LLM 能力的提升和 agent 的落地,E2B 在 2024 年取得了非常好的增長,2025 年更是直線上升,沙盒的月創(chuàng)建量一年內(nèi)從 4 萬增長到 1500 萬。

產(chǎn)品功能和定位

E2B 提供了一個安全的沙盒環(huán)境,能夠讓 AI agent 在云端安全運行 ,agent 可以使用沙盒創(chuàng)建文件、使用瀏覽器、分析數(shù)據(jù)、編寫小型應(yīng)用程序、創(chuàng)建 Excel 表格等,可以實現(xiàn)的任務(wù)場景相當(dāng)豐富。

E2B 支持多種代碼語言,目前使用最多的是 Python 和 JavaScript,前者每月有接近 50 萬次的 SDK 下載,后者有約 25 萬次。

Vasek 希望 E2B 能成為 AI agent 時代的 AWS,成為一個自動化的 infra 平臺,未來可以提供 GPU 支持,滿足更復(fù)雜的數(shù)據(jù)分析、小模型訓(xùn)練、游戲生成等需求,并可以托管 agent 構(gòu)建的應(yīng)用,覆蓋 agent 從開發(fā)到部署的完整生命周期。

但這并不意味著 E2B 會去做 prompt 或者 memory 等,Vasek 相信 LLMs 會持續(xù)變得更強大,很多現(xiàn)在看起來復(fù)雜的問題,未來可能都會自動被解決。

但有些問題是比較難被自動解決的:比如怎么確??偸悄軓?LLM 得到一個響應(yīng)?如果接入的模型提供商宕機了,要怎么自動切換到另一個提供商?這是開發(fā)者多年來一直在面對的老問題,只不過現(xiàn)在換了場景:以前是在傳統(tǒng)軟件中,現(xiàn)在是在 AI 環(huán)境中。

此外,傳統(tǒng)云計算是為已有應(yīng)用設(shè)計的,而 agent 執(zhí)行的代碼是動態(tài)生成、不可預(yù)知的。這些問題還是需要用一種全新的方式來解決。

Vasek 提到,大多數(shù)時候,開發(fā)者找到 E2B 也是從一個很簡單的需求開始的,比如開發(fā)者一開始只是用一個 serverless 函數(shù),或者是在服務(wù)器上跑一個 API 接口來執(zhí)行代碼,在開發(fā)的早期階段甚至可以就在本地運行代碼。

但隨著產(chǎn)品的發(fā)展,尤其是想要規(guī)?;剡\營時,問題就會一個接一個地出現(xiàn)了。比如:

  • 安全性與隔離性:開發(fā)者希望確保不同用戶的代碼不會在同一個環(huán)境里運行,因為開發(fā)者并不知道用戶的代碼具體在干什么,也不知道有沒有敏感信息被泄露。
  • 權(quán)限與自由度:開發(fā)者想給 agent 或 AI 應(yīng)用盡可能大的自由度,讓它們可以運行任何想運行的代碼,這可能包括訪問完整的文件系統(tǒng)、下載依賴包等。

這些都會帶來各種技術(shù)和安全挑戰(zhàn),比如如何高效、動態(tài)地生成隔離的代碼執(zhí)行環(huán)境,如何讓這些環(huán)境隨時可用,并確保穩(wěn)定和安全等等。很多開發(fā)者慢慢意識到這需要一個更專業(yè)、更安全的解決方案,也就自然而然地轉(zhuǎn)向像 E2B 這樣的產(chǎn)品。

隨著 multi agent 的發(fā)展,團(tuán)隊接下來會盡快推出新功能 forking(分叉)和 checkpointing(檢查點),從而使得多個 agent 可以并行嘗試不同解決路徑,就像樹狀結(jié)構(gòu),每個節(jié)點就是一個沙盒快照,可以分叉出去進(jìn)入下一個狀態(tài),最終找到最優(yōu)路徑,類似蒙特卡洛樹搜索。forking 和 checkpointing 還可以很好地解決本地狀態(tài)管理問題,比如保留中間進(jìn)度,避免每次都從頭來過。

蒙特卡洛樹搜索是一種常用于決策問題中的搜索算法,結(jié)合了隨機模擬和樹狀搜索的優(yōu)點,能在計算資源有限的情況下找到接近最優(yōu)的決策。

E2B 目前已經(jīng)實現(xiàn)了 persistence(持久化),這是實現(xiàn) forking 和 checkpointing 的基礎(chǔ)。用戶可以先暫停沙盒,然后在一個月后將沙盒恢復(fù)到暫停時的狀態(tài),從而使得 agent 可以運行更長時間或間歇性執(zhí)行任務(wù)。

使用場景

E2B 最重要的使用場景之一是給 AI 數(shù)據(jù)分析提供支持。

開發(fā)者上傳一個 CSV 文件,然后向 AI 提問:“我上傳了一個 CSV 文件,它包含這些列,你可以寫 Python 代碼來分析這些數(shù)據(jù)。”但是這些代碼必須要有地方可以運行,E2B 專門為這種場景打造了一個高度優(yōu)化過的運行環(huán)境,并提供了一個專用的 SDK,叫做 code interpreter SDK,整個環(huán)境的閉環(huán)非常自然:

  • 開發(fā)者可以直接創(chuàng)建圖表,甚至是交互式圖表;
  • 開發(fā)者可以安裝第三方庫,E2B 已經(jīng)預(yù)包裝了常用的數(shù)據(jù)分析包;
  • AI 模型可以方便地引用自己前面生成的代碼塊;
  • 如果代碼出錯了,開發(fā)者可以把錯誤信息快速反饋給 LLM,讓它嘗試修復(fù)。

對于開發(fā)者來說,由于 E2B 做了隔離機制,每一個 agent 都有專屬的沙盒環(huán)境,agent 會更可靠。

E2B 第二大使用場景是作為 AI 生成應(yīng)用的運行平臺,這個領(lǐng)域發(fā)展得非??欤绕涫侨藗冮_始基于各種不同的框架來構(gòu)建 AI 驅(qū)動的應(yīng)用,這些應(yīng)用需要一個可以運行 AI 生成代碼的環(huán)境,也就是需要一個專門的運行時(runtime)來支撐這類 AI 生成的應(yīng)用邏輯。

因此 E2B 創(chuàng)建了一個開源模板,叫做 Fragments,開發(fā)者可以復(fù)制這個模板作為構(gòu)建自己 AI 應(yīng)用平臺的起點。開發(fā)者可以在界面中直接輸入:“幫我用 Next.js 構(gòu)建一個待辦事項應(yīng)用”,LLM 會生成相應(yīng)的代碼,并把它發(fā)送到沙盒環(huán)境中運行,開發(fā)者馬上就會看到應(yīng)用效果。

E2B 現(xiàn)在正在逐步進(jìn)入更多的場景,Vasek 觀察到有開發(fā)者在做代碼執(zhí)行的時候,目的并不是構(gòu)建面向開發(fā)者的 agent,比如有開發(fā)者做了一個 AI 驅(qū)動的 Excel,這個產(chǎn)品并不是面向開發(fā)者的,它的最終用戶可能是 CEO、企業(yè)高管、業(yè)務(wù)人員,或者公司內(nèi)部任何需要使用數(shù)據(jù)的人。但在這個產(chǎn)品底層,是通過代碼執(zhí)行來實現(xiàn)功能的。

Vasek 表示看到了越來越多這樣的趨勢——雖然現(xiàn)在還非常早期,但這是一個非常令人興奮的方向,因為人們正在意識到,代碼執(zhí)行不僅僅服務(wù)于開發(fā)者,也可以服務(wù)于其他類型的用戶。

還有一個有趣的 use case 是 Hugging Face 在構(gòu)建 Open R1 的時候,在強化學(xué)習(xí)、代碼生成的訓(xùn)練階段用到了 E2B,具體來說,Open R1 模型有一個訓(xùn)練步驟是模型接收一個編程題,然后需要生成并在某個地方運行代碼,接著獎勵函數(shù)會返回一個 0 或 1 來表示是否正確,再用這個反饋來優(yōu)化模型。

Hugging Face 使用 E2B 的沙箱來運行這些代碼,每個訓(xùn)練步驟會啟動數(shù)百甚至上千個沙箱,從而實現(xiàn)高并發(fā)。這種方式非???,而且不需要用昂貴的 GPU 集群來處理。在使用 LLM 的時候,開發(fā)者不用擔(dān)心它會改動集群里的權(quán)限進(jìn)而影響系統(tǒng),因為每個沙盒都是彼此隔離和安全的。

Vasek 表示已經(jīng)有幾家公司要以這種方式來使用 E2B 訓(xùn)練模型,雖然這不是團(tuán)隊一開始設(shè)想的場景,但現(xiàn)在看起來是非常合理的。從 AI agent 生命周期角度來看,E2B 應(yīng)當(dāng)在周期里介入得越早越好,而訓(xùn)練階段可能就是最早的一環(huán)。

如何提高開發(fā)者粘性?

提升開發(fā)者的粘性是構(gòu)建開發(fā)者工具中最難的一點,關(guān)鍵在于找到合適的開發(fā)者體驗(DX)。

Vasek 認(rèn)為,“GPT Wrapper”在當(dāng)下是個好生意,能夠快速利用底層模型能力提升帶來的益處,目前來看,用戶切換模型的成本越來越低,基本上只需要一兩行代碼,就可以從 Gemini 切換到 Claude 或者 OpenAI,用戶也經(jīng)常切換模型。但確保自身的應(yīng)用或 agent 在模型切換中還能正常運行其實是很難的。

E2B 的一個重要價值主張是,當(dāng)客戶(尤其是大公司)使用 E2B 時,他們不會覺得被某一個 LLM 鎖死。比如 OpenAI 有自己的 code interpreter,但很多客戶并不想用,一方面是因為他們控制不了,另一方面是如果他們用了,他們就必須一直綁定在 OpenAI 上,沒法切換到 Google 或者開源模型,因為 OpenAI 的 code interpreter 不會去適配其他模型,所以他們根本沒有這個動力去使用。所以 E2B 需要讓開發(fā)者更容易去切換模型。

Vasek 認(rèn)為真正贏得開發(fā)者的方法是提供的體驗好到讓開發(fā)者幾乎不需要思考自己在用一個工具——就像是大腦的延伸一樣。雖然這聽起來好像反而讓人更容易換工具,因為開發(fā)者沒有在有意識地去依賴它,但實際上,正因為開發(fā)者不需要思考,才更不愿意換,工具完全進(jìn)入了工作流。要達(dá)到這個效果,需要注意各種小細(xì)節(jié),比如開發(fā)者不需要理解 infra 的復(fù)雜邏輯,不需要做一堆配置文件,這些東西是糟糕的開發(fā)體驗。

總而言之,E2B 需要對 LLM 保持中立。從技術(shù)角度來看,E2B 希望成為 agent 領(lǐng)域的 Kubernetes,同時具有更好的開發(fā)者體驗。

Kubernetes 是一個開源的容器編排平臺,用于自動化容器化應(yīng)用的部署、管理、擴(kuò)展和運行。

02.E2B 是怎么看 AI Agent 的?

Agent 時代,軟件該如何定價?

Agent 的定價是一個非常值得討論的問題,有人認(rèn)為傳統(tǒng)的按席位收費并不適用于 agent,因為有些 agent 可能只運行幾秒鐘,有些 agent 可能需要運行幾個小時,但如果按使用量計費,用戶可能會在不知情的情況下花費很多錢,從而導(dǎo)致用戶不敢繼續(xù)使用。

Vasek 認(rèn)為對于 infra 公司來說,定價確實是一個非常難的事情。

創(chuàng)始人在創(chuàng)辦一家 infra 公司時,常常希望把定價做得非常簡單,比如每月用戶就付一百美元,如果超過了某個限制,再使用其他方式收費,但開始擴(kuò)展規(guī)模的時候,創(chuàng)始人就會發(fā)現(xiàn)需要考慮的因素非常多,比如要考慮流量、存儲量,還有各種細(xì)小的資源消耗等等,最后往往會有一張非常復(fù)雜的價格表。

因此如何向用戶傳達(dá)定價邏輯就變得非常重要,基本的功能是必須要有的,比如計費上限、費用預(yù)警,這些功能可以確保用戶感到對自己的支出是有完全的掌控感。同時還要提供良好的可觀測性,用戶必須清楚知道他們用掉了什么資源、花了多少錢。

Agent 的下一個應(yīng)用場景:computer use

現(xiàn)在 agent 被廣泛談?wù)摰娜齻€主要使用場景是:

  1. 寫代碼(coding),比如 Cursor;
  2. 銷售(sales),比如市場拓展環(huán)節(jié)開始自動化,很多原本銷售代表需要手動做的工作正在被解放;
  3. 客戶支持(customer support),比如 Sierra 和 Decagon 這樣的公司正在被《財富》百強企業(yè)使用。

Vasek 認(rèn)為下一個 agent 真正能工作起來的場景是:讓 agents 控制電腦或者瀏覽器

Anthropic 是去年最早公開發(fā)布相關(guān)內(nèi)容的公司之一,OpenAI 今年也發(fā)布了 Operator。這件事帶來了各種可能性和挑戰(zhàn),比如,用戶可能不會希望 agent 完全隨意使用自己的電腦,用戶還是會希望有一些控制,比如可以選擇是否允許 agent 操作。

現(xiàn)在人們正在為 agent 構(gòu)建電腦,E2B 也推出了自己的 Desktop Sandbox,本質(zhì)上就是一個帶圖形界面的云電腦,還開源了一個 open-computer-use 項目,結(jié)合開源大模型,嘗試去模擬使用電腦的行為。這個項目對 E2B 來說也是個挑戰(zhàn):E2B 能不能僅憑開源大模型就構(gòu)建出能使用電腦的 agent?

Vasek 認(rèn)為,在 2025 年,這個方向會非常有趣,因為潛在回報非常高,但不確定性也很大。Vasek 并不完全確定五年后,agent 是否還會用云電腦的方式來運作,可能會有更好的替代方案出現(xiàn)。但現(xiàn)在,這是一個非常值得探索的領(lǐng)域,特別是如果 E2B 能為每臺本地機器創(chuàng)建一個數(shù)字孿生,那對企業(yè)和非開發(fā)者類的工作來說,將會是一件大事。

不過 Operator 這類產(chǎn)品的目標(biāo)并不是“看著 agent 替你完成任務(wù)”,Vasek 認(rèn)為人在使用 agent 的時候,好處在于心理負(fù)擔(dān)會小很多,因為根本不需要再去思考“我必須去做這件事”——在理想世界里,會有一個待辦事項應(yīng)用,人們只要在這個應(yīng)用中輸入一個任務(wù),這個任務(wù)就會自動由某個 agent 開始處理了。

不過有個有趣的問題是,現(xiàn)在的網(wǎng)站,比如航空公司訂票網(wǎng)站、酒店預(yù)訂平臺,都是專門為讓人點擊操作而優(yōu)化的,很多公司為此花了數(shù)百萬美元去提升點擊率。但現(xiàn)在,訪問這些網(wǎng)站的卻開始變成了 agent。

現(xiàn)在還有一個潛在概念是 LLM 可以讓用戶即興完成各種事情,用戶甚至不需要電腦,一切都可以被“生成”出來。

如何教 AI 使用電腦?

在 computer use agent 這個話題上,E2B 的 AI engineer James Murdza 在 2025 年 1 月撰寫了一篇博客,文中介紹了 James 做的一個開源 computer use agent,可以使用個人電腦的全部功能,比如接收“在網(wǎng)上搜索可愛貓咪圖片”這樣的指令,通過 LLM 進(jìn)行推理,自動操作鼠標(biāo)和鍵盤來完成任務(wù)。

這個工具和其他工具的不同之處在于它是完全開源的,并且只使用開源權(quán)重模型。這意味著任何人都可以自由運行和修改這個項目。工作原理是 agent 會不斷截取屏幕截圖,并詢問 Llama 下一步該怎么做,直到模型判斷任務(wù)完成為止。

這個項目的技術(shù)挑戰(zhàn)在于:

  • 1. 安全性:需要將操作系統(tǒng)隔離在一個安全、可控的環(huán)境中;
  • 2. 點擊操作:要讓 AI 能精準(zhǔn)點擊、操控 UI 元素;
  • 3. 推理能力:要讓 AI 能根據(jù)所見決定下一步該做什么或何時結(jié)束任務(wù);
  • 4. 部署小眾 LLM:需要以低成本托管開源模型,尤其是小眾的開源項目 OS-Atlas;
  • 5. 實時畫面流傳輸:要有一種低延遲的方式來展示和錄制沙盒環(huán)境。

挑戰(zhàn)一:安全性

理想的 AI agent 運行環(huán)境應(yīng)該是易于使用、性能良好、且具備安全保障的,畢竟讓 AI agent 直接訪問個人電腦和文件系統(tǒng)是非常危險的,因為 agent 可能會誤刪文件,甚至執(zhí)行一些無法挽回的操作。因此 James 沒有讓 agent 直接訪問本地電腦,而是使用了 E2B。

挑戰(zhàn)二:點擊操作

基于 LLM 的“電腦操作”在界面是文本為主的情況下其實相對簡單,只靠文字指令就能完成很多任務(wù)。但有些應(yīng)用基本不可能在沒有鼠標(biāo)的情況下使用,因此如果想做一個真正全面的電腦操作 agent,就必須支持鼠標(biāo)點擊功能。

傳統(tǒng)方案的效果并不令人滿意,比如使用傳統(tǒng)計算機視覺模型作為屏幕和 LLM 之間的橋梁,這類方法在識別文字和部分圖標(biāo)方面還不錯,但根本分不清文本框、按鈕或者其他交互元素。中國有學(xué)者在研究具身視覺語言模型(grounded VLMs),這是一種視覺+語言模型,關(guān)鍵是可以輸出精確的坐標(biāo),指向輸入圖像中的具體位置。Gemini 和 Claude 也具備類似能力,但并不是開源的。

最后 James 選擇了 OS-Atlas,因為 OS-Atlas 不僅在 Hugging Face 上發(fā)布了模型權(quán)重,還在一篇論文中詳細(xì)介紹了模型訓(xùn)練過程。

OS-Atlas 是一個開源免費的項目,目的是為游戲玩家提供用于運行游戲的操作系統(tǒng),基于 Windows 10 定制,刪除了各種非必要的系統(tǒng)組件。

挑戰(zhàn)三:推理能力

Agent 的強大之處就在于它可以在多種操作之間做出選擇,并基于最新的信息做出合理判斷。最初用戶通過 prompt 可以讓 LLM 以特定的文本格式輸出一個操作,然后把操作結(jié)果添加進(jìn)上下文中,再次調(diào)用 LLM 進(jìn)行下一步。后來用戶可以通過微調(diào)來強化系統(tǒng)提示,這個能力一開始叫“函數(shù)調(diào)用(function calling)”,現(xiàn)在更流行的說法是“工具調(diào)用(tool use)”。

但將視覺輸入結(jié)合進(jìn)工具調(diào)用流程,并在一次 LLM 調(diào)用中完成視覺理解和操作決策,在當(dāng)時還是一個相對新穎的做法,James 表示他使用的是:

  • Llama-3.2-90B-Vision-Instruct:用于查看沙盒環(huán)境的畫面,并決定下一步該做什么;
  • Llama 3.3-70B-Instruct:將 Llama 3.2 的決策轉(zhuǎn)化成工具調(diào)用的格式;
  • OS-Atlas-Base-7B:作為一個可以“被調(diào)用”的工具,依據(jù)輸入的 prompt 進(jìn)行點擊操作。

值得一提的是,James 認(rèn)為市面上的 agent 框架不太有用。這些框架的主要作用是封裝 LLM 的輸入格式和輸出解析、做 agent 的 prompt、做 agent 的運行循環(huán)(Run loop),但 James 希望運行循環(huán)非常簡單,同時也不希望 agent 的 prompt 被框架直接黑盒化處理,因為這是 James 最常需要調(diào)整的部分。所以框架唯一的可能用處就是對接 LLM 服務(wù)商,尤其是涉及工具調(diào)用和圖像支持的時候,但當(dāng)時大多數(shù)服務(wù)商已經(jīng)在統(tǒng)一使用 OpenAI 的工具調(diào)用格式了,當(dāng)有例外時,框架文檔又常常說明不清。

James 表示工具調(diào)用不是一個單一的功能,而是一整套組合拳,包括 LLM 的微調(diào)、prompt 設(shè)計、字符串格式解析、API 接口規(guī)范等。不管是在服務(wù)端還是客戶端,要把這些拼好并持續(xù)更新,框架是很難抽象到位的,最后開發(fā)者還是要手動調(diào)整。

挑戰(zhàn)四:部署小眾 LLM

為了讓 agent 運行更快,James 希望 LLM 推理能放在云端,同時還希望用戶能開箱即用。問題在于,James 能為 Llama 這樣相對主流的模型找到靠譜的服務(wù)商,但 OS-Atlas 這樣相對冷門的模型,很多推理服務(wù)商都不愿意提供 serverless 服務(wù),最后 James 使用 Hugging Face 提供的免費空間來調(diào)用 OS-Atlas。

挑戰(zhàn)五:實時畫面流傳輸

為了能看到 AI 正在做什么,James 希望實時獲取沙盒環(huán)境中的屏幕畫面,并成功用 FFmpeg 實現(xiàn)。

FFmpeg 是一個開放源代碼的自由軟件,可以執(zhí)行音頻和視頻多種格式的錄影、轉(zhuǎn)換、串流功能。

服務(wù)端命令:把當(dāng)前屏幕錄成視頻流,通過 HTTP 開一個服務(wù)器,但一次只能連一個客戶端。

ffmpeg?-f x11grab -s?1024×768 -framerate?30?-i $DISPLAY -vcodec libx264 -preset ultrafast -tune zerolatency -f mpegts -listen?1?http://localhost:8080

客戶端命令:客戶端連接服務(wù)器,同時把視頻保存下來并實時播放。

ffmpeg?-reconnect?1?-i http://servername:8080?-c:v libx264 -preset fast -crf?23?-c:a aac -b:a?128k -f mpegts -loglevel quiet – | tee output.ts | ffplay -autoexit -i -loglevel quiet –

James 在整個開發(fā)過程中一直在思考一個問題:AI agent 到底應(yīng)該盡量通過 API 控制,還是靠視覺去模擬人類點擊?答案其實很清楚:有 API 的時候,盡量用 API。但問題在于,大部分軟件壓根沒考慮被程序控制,所以基本沒有合適的 API。

因此,James 選擇特意讓 agent 模擬人類操作。但做 agent 的時候,其實也應(yīng)該考慮除了視覺界面以外的其他可用接口,比如:

  • 標(biāo)準(zhǔn) API:文件系統(tǒng) API、Microsoft Office API 等;
  • 代碼執(zhí)行接口:運行 Bash 或 Python 腳本來打開應(yīng)用、讀取文件;
  • 輔助功能 API(Accessibility API):桌面系統(tǒng)常提供這種接口,可以“看見”GUI 結(jié)構(gòu)(Graphics User Interface,圖形用戶界面);不過在 Linux 上支持度不如 macOS 或 Windows;
  • 網(wǎng)頁的 DOM 接口:可以半結(jié)構(gòu)化地訪問網(wǎng)頁元素;
  • MCP:專為 agent 設(shè)計,支持提供上下文與操作入口。

James 認(rèn)為現(xiàn)在只能靠視覺是因為大多數(shù)應(yīng)用根本不提供友好的結(jié)構(gòu)化入口,尤其是輔助功能 API,如果輔助功能 API 能更強,不光 AI agent 能用,人類視障用戶也會受益。如果一切都能像 Zapier 那樣有適配器統(tǒng)一接入,那效率會高很多。

還有一個懸而未決的大問題是如何安全地處理用戶認(rèn)證?最不安全的方式就是讓 AI 擁有和人一樣的權(quán)限。更安全的做法是設(shè)置權(quán)限范圍,就像 OAuth 授權(quán)、iOS App 權(quán)限控制那樣。

James 創(chuàng)建了一個全新的、隔離的沙盒環(huán)境,沒有任何用戶數(shù)據(jù),但這并不能從根本上解決問題。如果用戶沒有安全的方式可以選擇,他們往往就會選擇一個不安全的做法。因此,James 認(rèn)為以下問題值得思考:

1. 如何為 computer use agent 提供帶權(quán)限范圍限制的 API 訪問能力,比如 agent 可以使用傳統(tǒng) API 查看用戶的郵箱收件箱,但無法刪除或發(fā)送郵件。

2. 如何對傳遞給 LLM 的敏感信息進(jìn)行脫敏處理,并在輸出結(jié)果中還原,比如用戶可以預(yù)先設(shè)置一些信用卡卡號之類的密鑰信息,這些信息可以傳遞給工具使用,但不會暴露給大模型本身。

James 預(yù)期開源模型會迅速朝著具備視覺能力的推理進(jìn)步,也很期待通過給 agent 加入更多 API 工具來增強能力。

Agent 框架定制化 VS 使用現(xiàn)成框架

James 在上文提到現(xiàn)在市面上現(xiàn)成的框架并不好用,長期來看,中大型企業(yè)是否會覺得自身企業(yè)環(huán)境特殊,因此 agent 必須要有可擴(kuò)展性和定制能力,從而轉(zhuǎn)向自己開發(fā)?

Vasek 認(rèn)為最初這些框架誕生的時候,是在 LLM 發(fā)展的非常早期階段,當(dāng)時很多核心概念都在不斷演變,甚至現(xiàn)在也還在變化,但至少已經(jīng)形成了一些共識,比如某些類型的 prompt 可以被高效使用,Chain of Thought、ReAct 等方法已經(jīng)變得更為穩(wěn)定,也逐漸搞清楚了 agent 應(yīng)該怎么使用工具等等。

對開發(fā)者來說,如果在用的框架本身還在不停變化,那開發(fā)起來就會很痛苦。與其有十種不同的方式可以做一件事,不如有一個明確可用的方式,這也是 Vasek 使用框架的原因。

Vasek 認(rèn)為每個框架都有自身明確的“方法論”和偏好,開發(fā)者需要認(rèn)可它的方式,未來有明確主張的框架(opinionated frameworks)會越來越流行,開發(fā)者也會更愿意接受,Crew AI、LangGraph 已經(jīng)有這樣的趨勢了。

Crew AI 是開源 multi agent 協(xié)調(diào)框架,LangGraph 是由 LangChain 團(tuán)隊推出的一個在 LangChain 之上構(gòu)建的模塊,用于構(gòu)建有狀態(tài)和多角色的 agents 應(yīng)用。

框架的演進(jìn)是一場沒有終點的戰(zhàn)斗,總會有新的框架出現(xiàn)?,F(xiàn)在的 agent 框架之爭,就像當(dāng)初 Transformer 大模型之爭一樣,比如 Anthropic 和 OpenAI 之爭,只是現(xiàn)在演變成了 Crew 和 LangGraph 之爭。開發(fā)者可能沒法直接通過框架本身來賺錢,但可以圍繞 infra 或相關(guān)服務(wù)來捕捉價值。很多做框架的團(tuán)隊正在拓展自身的產(chǎn)品范圍,比如 LangChain 發(fā)展出了 LangGraph 和 LangSmith,開始把自己定位成“全套 Agent 解決方案”。

Vasek 特別提到,當(dāng)開發(fā)者還不清楚自己真正喜歡哪種構(gòu)建方式時,不一定要用框架?,F(xiàn)在有一些框架定位也不完全是傳統(tǒng)意義上的 Agent 框架,比如 LangChain 更像是一種更方便和大模型交互的工具。

03.為什么選擇扎根硅谷?

E2B 的兩個創(chuàng)始人來自捷克的一個邊境小鎮(zhèn),六年級就互相認(rèn)識了。后來二人都搬去了首都布拉格讀計算機專業(yè),雖然 Tomas 后來轉(zhuǎn)學(xué)去了別的城市,但每年夏天都會在布拉格和 Vasek 一起折騰各種項目。

創(chuàng)立 E2B 之后,雖然兩位創(chuàng)始人都是捷克人,但最終選擇在美國發(fā)展而不是歐洲,原因在于 Vasek 認(rèn)為應(yīng)該在用戶所在地去構(gòu)建產(chǎn)品,E2B 的用戶是開發(fā) AI 應(yīng)用的工程師,他們大多數(shù)都硅谷,所以在硅谷創(chuàng)業(yè)是很合理、順理成章的選擇。

Vasek 一開始并沒打算真的搬到硅谷,原本以為自己可以每兩個月過來一次,做一些市場和銷售相關(guān)的事情。從 2023 年開始,E2B 早期的四人核心團(tuán)隊隔段時間會一起到舊金山待上一兩個月,但每次來舊金山,團(tuán)隊都能明顯感覺到事情推進(jìn)得更快,特別是在早期階段,如果想幫助某個用戶開始使用 E2B,方法非常直接:坐在一起,當(dāng)面指導(dǎo)。面對面的支持效率和互動感,是遠(yuǎn)程永遠(yuǎn)比不了的。

Vasek 發(fā)現(xiàn)硅谷不僅有巨大的市場機會,更重要的是,硅谷聚集了最頂尖的工程師和最活躍的創(chuàng)業(yè)氛圍,人才密度非常高,比如在布拉格,Vasek 和十個人聊創(chuàng)業(yè)話題,可能只有一個人能夠帶來啟發(fā),但在硅谷,可能只有 5、6 個是普通對話,午飯間的聊天可能就會是高密度、高質(zhì)量的對話。

此外,雖然團(tuán)隊可以分布式辦公,但在早期,創(chuàng)始團(tuán)隊需要在同一個地方,因為在那個階段,每天都在快速變化,甚至幾個小時就有新想法、新決策,一切都很動態(tài),大家必須在一起,面對面討論、快速行動。所以 Vasek 堅定地選擇了扎根硅谷。

編譯:haozhen 編輯:Siqi

本文由人人都是產(chǎn)品經(jīng)理作者【海外獨角獸】,微信公眾號:【海外獨角獸】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!