截胡OpenAI!清華復(fù)旦等搶先開(kāi)源智能體框架Eko,一句話打造「虛擬員工」
OpenAI的首席執(zhí)行官Sam Altman最近宣布,2025年將推出「虛擬員工計(jì)劃」,代號(hào)Operator,AI智能體能夠自主執(zhí)行任務(wù),如寫(xiě)代碼、預(yù)訂旅行等,成為企業(yè)中的「數(shù)字同事」。
搶在OpenAI發(fā)布Operator之前,清華、復(fù)旦和斯坦福的研究者聯(lián)合提出了名為Eko的 Agent開(kāi)發(fā)框架,開(kāi)發(fā)者可以通過(guò)簡(jiǎn)潔的代碼和自然語(yǔ)言,快速構(gòu)建可用于生產(chǎn)的「虛擬員工」。AI智能體能夠接管用戶的電腦和瀏覽器,代替人類完成各種任務(wù),為工作流程提供自動(dòng)化支持。
核心技術(shù)創(chuàng)新有三點(diǎn):
- 混合智能體表示:提出了Mixed Agentic representation,通過(guò)無(wú)縫結(jié)合表達(dá)高層次設(shè)計(jì)的自然語(yǔ)言(Natural Language)與開(kāi)發(fā)者低層次實(shí)現(xiàn)的程序語(yǔ)言(Programming Language)。
- 跨平臺(tái)Agent框架:提出環(huán)境感知架構(gòu),實(shí)現(xiàn)同一套框架和編程語(yǔ)言,同時(shí)支持瀏覽器使用、電腦使用、作為瀏覽器插件使用。
- 生產(chǎn)級(jí)干預(yù)機(jī)制:現(xiàn)有Agent框架普遍強(qiáng)調(diào)自治性(Autonomous),即無(wú)需人類干預(yù),而Eko框架提供了顯性的生產(chǎn)級(jí)干預(yù)機(jī)制,確保智能體工作流可以隨時(shí)被中斷和調(diào)整,從而保障人類對(duì)生產(chǎn)級(jí)智能體工作流的有效監(jiān)管和治理。
Homepage: https://eko.fellou.ai
Github link:https://github.com/FellouAI/eko
Docs:https://eko.fellou.ai/docs
Eko:革新生產(chǎn)級(jí)智能體開(kāi)發(fā)的框架
用實(shí)際的例子來(lái)感受一下這個(gè)Agent框架的開(kāi)發(fā)難度:只需要一句話,就可以讓Eko生成一個(gè)全Agent幫你做股票分析。這不就是妥妥的生產(chǎn)力工具嗎!真是解放雙手!
在雅虎財(cái)經(jīng)上收集納斯達(dá)克的最新數(shù)據(jù),包括主要股票的價(jià)格變化、市值、交易量,分析數(shù)據(jù)并生成可視化報(bào)告。
當(dāng)前登錄頁(yè)面自動(dòng)化測(cè)試:
1. 正確的賬戶和密碼是:admin / 666666
2. 請(qǐng)隨機(jī)組合用戶名和密碼進(jìn)行測(cè)試,以驗(yàn)證登錄驗(yàn)證是否正常工作,例如:用戶名不能為空、密碼不能為空、用戶名不正確、密碼不正確
3. 最后,嘗試使用正確的賬戶和密碼登錄,驗(yàn)證登錄是否成功
4. 生成測(cè)試報(bào)告并導(dǎo)出
清理當(dāng)前目錄下大于1MB的所有文件
環(huán)境感知架構(gòu)(Environment-Aware Architecture)
主要場(chǎng)景
i)瀏覽器使用:主要專注于通過(guò)圖形用戶界面(GUI)來(lái)操作網(wǎng)頁(yè)和瀏覽器中的元素,常見(jiàn)的實(shí)現(xiàn)方式包括截圖和網(wǎng)頁(yè)提取技術(shù)。
ii)電腦使用:與瀏覽器不同,Node.js 自動(dòng)化則主要面向命令行界面(CLI)操作和文件系統(tǒng)管理,未來(lái)還會(huì)引入GUI感知能力。
架構(gòu)介紹
Eko的跨平臺(tái)開(kāi)發(fā)是通過(guò)其環(huán)境感知架構(gòu)(Environment-Aware Architecture)實(shí)現(xiàn)的,架構(gòu)由三個(gè)關(guān)鍵層次構(gòu)成:通用核心(Universal Core)、環(huán)境特定工具(Environment-Specific Tools)和環(huán)境橋接(Environment Bridge)。
- 通用核心:這一層提供了與環(huán)境無(wú)關(guān)的基本功能,如工作流管理、工具注冊(cè)管理、LLM(大語(yǔ)言模型)集成和鉤子系統(tǒng)。
- 環(huán)境特定工具:每種環(huán)境(如瀏覽器擴(kuò)展、Web環(huán)境、Node.js環(huán)境)都提供了優(yōu)化的工具集。
- 環(huán)境橋接:這一層負(fù)責(zé)環(huán)境的檢測(cè)、工具注冊(cè)、資源管理和安全控制,確保不同平臺(tái)之間能夠順利互動(dòng)和通信。
安全性和訪問(wèn)控制:Eko針對(duì)不同環(huán)境實(shí)施了適當(dāng)?shù)陌踩胧g覽器擴(kuò)展和Web環(huán)境都采用了嚴(yán)格的權(quán)限控制和API密鑰管理,而Node.js環(huán)境則允許更廣泛的系統(tǒng)級(jí)訪問(wèn),基于用戶權(quán)限進(jìn)行文件操作和命令執(zhí)行,在需要時(shí)會(huì)在執(zhí)行前請(qǐng)求用戶確認(rèn)。
自動(dòng)工具注冊(cè):通過(guò) loadTools() 等工具,Eko 自動(dòng)注冊(cè)適用于當(dāng)前環(huán)境的工具,這使得開(kāi)發(fā)者可以在多個(gè)環(huán)境中無(wú)縫地切換,并確保工具的正確加載。
層次化規(guī)劃(Hierachical planning)
研究人員提出層次化感知框架,將任務(wù)的拆解分為兩層,包括Planning layer 和 Execution layer。其中Planning layer負(fù)責(zé)將用戶的需求(自然語(yǔ)言或代碼語(yǔ)言表示)和現(xiàn)有工具集拆解成一個(gè)有領(lǐng)域特定語(yǔ)言(Domain-specific language)表示的任務(wù)圖(Task graph)。
任務(wù)圖是一個(gè)有向無(wú)環(huán)圖,描述了子任務(wù)之間的依賴關(guān)系。該任務(wù)圖由LLM一次性合成。在Execution layer中,根據(jù)每個(gè)任務(wù)調(diào)用LLM來(lái)合成具體的執(zhí)行行為和工具調(diào)用。
多步合并優(yōu)化:當(dāng)Eko檢測(cè)到兩次執(zhí)行都是對(duì)LLM的調(diào)用時(shí),會(huì)觸發(fā)框架的自動(dòng)合并機(jī)制,將兩次調(diào)用的system prompt自動(dòng)整合,合并成一次調(diào)用。從而加快推理速度。
視覺(jué)-交互要素聯(lián)合感知(Visual-Interactive Element Perception)
視覺(jué)-交互要素聯(lián)合感知框架(VIEP)是一種先進(jìn)的瀏覽器自動(dòng)化解決方案,通過(guò)將視覺(jué)識(shí)別與元素上下文信息相結(jié)合,顯著提升了在復(fù)雜網(wǎng)頁(yè)環(huán)境中自動(dòng)化任務(wù)的準(zhǔn)確性和效率。該技術(shù)的核心在于提取網(wǎng)頁(yè)中的交互元素和相關(guān)數(shù)據(jù),優(yōu)化了自動(dòng)化過(guò)程,極大地提高了任務(wù)執(zhí)行的成功率。
具體來(lái)說(shuō),首先VIEP通過(guò)識(shí)別網(wǎng)頁(yè)上的關(guān)鍵交互元素——如按鈕、輸入框、鏈接等——來(lái)聚焦用戶可能進(jìn)行操作的核心區(qū)域。
接著,每個(gè)可交互的元素都被分配唯一的標(biāo)識(shí)符,并通過(guò)彩色框標(biāo)記,確保精確定位。隨后,系統(tǒng)通過(guò)結(jié)合截圖和偽HTML的方式構(gòu)建元素信息,利用文本和視覺(jué)數(shù)據(jù)的結(jié)合,幫助自動(dòng)化模型更好地識(shí)別和操作這些元素,尤其在復(fù)雜網(wǎng)頁(yè)結(jié)構(gòu)中尤為重要。
與傳統(tǒng)瀏覽器自動(dòng)化方法不同,通過(guò)提取并簡(jiǎn)化網(wǎng)頁(yè)中與交互相關(guān)的元素,生成一個(gè)小巧高效的偽 HTML 結(jié)構(gòu),避免了直接處理龐大的 HTML 內(nèi)容所帶來(lái)的資源消耗和處理難度。
Google 首頁(yè)的原始HTML長(zhǎng)達(dá)22萬(wàn)多字符,但VIEP技術(shù),HTML內(nèi)容可以精簡(jiǎn)至僅1,058個(gè)字符,大幅提升了自動(dòng)化操作的處理速度和精準(zhǔn)度。這一技術(shù)的優(yōu)勢(shì)不僅體現(xiàn)在降低成本和提高準(zhǔn)確性上,還在于性能優(yōu)化和跨環(huán)境適應(yīng)性。
生產(chǎn)級(jí)的可干預(yù)機(jī)制
在構(gòu)建AI驅(qū)動(dòng)的自動(dòng)化系統(tǒng)時(shí),開(kāi)發(fā)者常常需要監(jiān)控任務(wù)的執(zhí)行情況,隨時(shí)調(diào)整行為,或在必要時(shí)進(jìn)行干預(yù)。
雖然“鉤子”是軟件開(kāi)發(fā)中的常見(jiàn)概念,但在Eko中,它們承擔(dān)了獨(dú)特的角色——在AI自動(dòng)化和人工監(jiān)督之間架起了一座橋梁。簡(jiǎn)單來(lái)說(shuō),你可以在 Workflow 執(zhí)行前后插入自己的邏輯,比如驗(yàn)證輸入、處理結(jié)果、甚至重試失敗的任務(wù)。代碼如下:
// Javascript
await eko.execute(workflow, {
hooks: {
beforeToolUse: async (tool, context, input) => {
console.log(`準(zhǔn)備執(zhí)行工具:${tool.name},輸入?yún)?shù):`, input);
return input;
},
afterToolUse: async (tool, context, result) => {
console.log(`工具執(zhí)行完成:${tool.name},輸出結(jié)果:`, result);
return result;
}
}
});
Eko提供三種不同層級(jí)的鉤子,每個(gè)層級(jí)都具有獨(dú)特的作用:
- 工作流鉤子(Workflow Hooks)這些鉤子位于工作流的最上層,用于整體控制和監(jiān)控自動(dòng)化流程的啟動(dòng)和結(jié)束。例如,你可以在工作流開(kāi)始之前進(jìn)行資源初始化,或在工作流結(jié)束后進(jìn)行清理和處理最終結(jié)果。
- 子任務(wù)鉤子(Subtask Hooks)這些鉤子位于工作流的中間層,允許你在每個(gè)子任務(wù)開(kāi)始前和結(jié)束后進(jìn)行監(jiān)控和處理。例如,你可以在每個(gè)子任務(wù)前記錄日志,或在任務(wù)完成后對(duì)中間結(jié)果進(jìn)行處理。
- 工具鉤子(Tool Hooks)這是最細(xì)粒度的鉤子,允許你在每個(gè)工具執(zhí)行前后進(jìn)行驗(yàn)證和修改。例如,你可以在工具執(zhí)行前驗(yàn)證輸入?yún)?shù),或在工具執(zhí)行后處理返回結(jié)果。
鉤子可以幫助開(kāi)發(fā)者實(shí)時(shí)優(yōu)化工作流,提高自動(dòng)化系統(tǒng)的精度和效率。例如,在執(zhí)行某些任務(wù)時(shí),開(kāi)發(fā)者可以通過(guò)鉤子對(duì)輸入數(shù)據(jù)進(jìn)行驗(yàn)證,防止錯(cuò)誤信息傳入系統(tǒng);或在任務(wù)完成后,處理和轉(zhuǎn)化結(jié)果,以便更好地利用輸出。鉤子還能幫助開(kāi)發(fā)者收集執(zhí)行數(shù)據(jù),進(jìn)行性能分析,識(shí)別瓶頸并優(yōu)化自動(dòng)化流程。
除了常規(guī)的監(jiān)控和調(diào)試功能,Eko的鉤子系統(tǒng)還支持更創(chuàng)新的使用場(chǎng)景。例如,在一些關(guān)鍵任務(wù)執(zhí)行時(shí),鉤子可以暫停工作流并等待人工審批;在AI決策出現(xiàn)問(wèn)題時(shí),開(kāi)發(fā)者可以通過(guò)鉤子進(jìn)行人工干預(yù)或覆蓋AI的判斷,確保業(yè)務(wù)流程的順暢。
展望
無(wú)論你是AI開(kāi)發(fā)者還是自動(dòng)化使用者,Eko為你提供了更靈活、高效的工具,幫助你將虛擬員工部署到實(shí)際生產(chǎn)環(huán)境中,提升工作效率和質(zhì)量。立即關(guān)注 Eko,讓 AI 自動(dòng)化為你的生產(chǎn)力加速!
作者介紹
陸逸文,清華大學(xué)博士生,研究興趣為具身智能平臺(tái)和智能體。
羅卓偉,F(xiàn)ellouAI 首席工程專家,目前從事人工智能相關(guān)領(lǐng)域工作。
馬驍騰,清華大學(xué)自動(dòng)化系博士后,博士畢業(yè)于清華大學(xué)。主要研究興趣為強(qiáng)化學(xué)習(xí)和智能體。
陳家棋,復(fù)旦大學(xué)碩士生,斯坦福大學(xué)訪問(wèn)學(xué)生學(xué)者。主要研究領(lǐng)域?yàn)橛?jì)算機(jī)視覺(jué)和智能體。