Eko团队 投稿
量子位 | 公众号 QbitAI

抢先OpenAI的“Operator”,清华、复旦、斯坦福等研究者联合起来整了个大活~

他们提出了一个名为“Eko”的Agent开发框架,开发者只需用简洁的代码和自然语言,就能快速构建可用于生产的“虚拟员工”:

Agent可以接管用户的电脑和浏览器,代替人类完成各种任务。

而这个操作,正是之前OpenAI被爆出的“Operator”所能实现的。爆料称OpenAI将会这个月发布“Operator”,现在直接被截胡了。

更为关键的是,研究团队还把Eko给开源了。



来看看Eko是如何让工作流程自动化的。

比如自动在雅虎财经上收集纳斯达克的最新数据,包括主要股票的价格变化、市值、交易量,分析数据并生成可视化报告。

再例如:

当前登录页面自动化测试:
正确的账户和密码是:admin / 666666
请随机组合用户名和密码进行测试,以验证登录验证是否正常工作,例如:用户名不能为空、密码不能为空、用户名不正确、密码不正确
最后,尝试使用正确的账户和密码登录,验证登录是否成功
生成测试报告并导出



清理当前目录下大于1MB的所有文件

这是如何实现的?



开源版“虚拟员工”开发框架

这项演技的核心技术创新有三点:

  • 混合智能体表示:提出了“Mixed Agentic representation”,通过无缝结合表达高层次设计的自然语言(Natural Language)与开发者低层次实现的程序语言(Programming Language)。
  • 跨平台Agent框架:提出环境感知架构,实现同一套框架和编程语言,同时支持浏览器使用、电脑使用、作为浏览器插件使用。
  • 生产级干预机制:现有Agent框架普遍强调自治性(Autonomous),即无需人类干预,而Eko框架提供了显性的生产级干预机制,确保智能体工作流可以随时被中断和调整,从而保障人类对生产级智能体工作流的有效监管和治理。



环境感知架构(Environment-Aware Architecture)

主要场景包括:

i)浏览器使用:主要专注于通过图形用户界面(GUI)来操作网页和浏览器中的元素,常见的实现方式包括截图和网页提取技术。

ii)电脑使用:与浏览器不同,Node.js 自动化则主要面向命令行界面(CLI)操作和文件系统管理,未来还会引入GUI感知能力。

Eko的跨平台开发是通过其环境感知架构(Environment-Aware Architecture)实现的,这一架构由三个关键层次构成:通用核心(Universal Core)、环境特定工具(Environment-Specific Tools)和环境桥接(Environment Bridge)。

  • 通用核心:这一层提供了与环境无关的基本功能,如工作流管理、工具注册管理、LLM(大语言模型)集成和钩子系统。
  • 环境特定工具:每种环境(如浏览器扩展、Web 环境、Node.js 环境)都提供了优化的工具集。
  • 环境桥接:这一层负责环境的检测、工具注册、资源管理和安全控制,确保不同平台之间能够顺利互动和通信。

安全性和访问控制: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执行前后插入自己的逻辑,比如验证输入、处理结果、甚至重试失败的任务。

代码如下:



Eko提供三种不同层级的钩子,每个层级都具有独特的作用:

工作流钩子(Workflow Hooks)
这些钩子位于工作流的最上层,用于整体控制和监控自动化流程的启动和结束。例如,你可以在工作流开始之前进行资源初始化,或在工作流结束后进行清理和处理最终结果。

子任务钩子(Subtask Hooks)
这些钩子位于工作流的中间层,允许你在每个子任务开始前和结束后进行监控和处理。例如,你可以在每个子任务前记录日志,或在任务完成后对中间结果进行处理。

工具钩子(Tool Hooks)
这是最细粒度的钩子,允许你在每个工具执行前后进行验证和修改。例如,你可以在工具执行前验证输入参数,或在工具执行后处理返回结果。

钩子可以帮助开发者实时优化工作流,提高自动化系统的精度和效率。

例如,在执行某些任务时,开发者可以通过钩子对输入数据进行验证,防止错误信息传入系统;或在任务完成后,处理和转化结果,以便更好地利用输出。钩子还能帮助开发者收集执行数据,进行性能分析,识别瓶颈并优化自动化流程。

除了常规的监控和调试功能,Eko的钩子系统还支持更创新的使用场景。

例如,在一些关键任务执行时,钩子可以暂停工作流并等待人工审批;在AI决策出现问题时,开发者可以通过钩子进行人工干预或覆盖AI的判断,确保业务流程的顺畅。

作者简介

陆逸文,清华大学博士生,研究兴趣为具身智能平台和智能体。



罗卓伟,FellouAI首席工程专家,目前从事人工智能相关领域工作。



马骁腾,清华大学自动化系博士后,博士毕业于清华大学。主要研究兴趣为强化学习和智能体。



陈家棋,复旦大学硕士生,斯坦福大学访问学生学者。主要研究领域为计算机视觉和智能体。



Homepage:https://eko.fellou.ai/
Github link:https://github.com/FellouAI/eko
Docs:https://eko.fellou.ai/docs/

ad1 webp
ad2 webp
ad1 webp
ad2 webp