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