抢先OpenAI的“Operator”,清华、复旦、斯坦福等研究者联合起来整了个大活~
他们提出了一个名为“Eko”的Agent开发框架,开发者只需用简洁的代码和自然语言,就能快速构建可用于生产的“虚拟员工”:
Agent可以接管用户的电脑和浏览器,代替人类完成各种任务。
而这个操作,正是之前OpenAI被爆出的“Operator”所能实现的。爆料称OpenAI将会这个月发布“Operator”,现在直接被截胡了。
更为关键的是,研究团队还把Eko给开源了。
来看看Eko是如何让工作流程自动化的。
比如自动在雅虎财经上收集纳斯达克的最新数据,包括主要股票的价格变化、市值、交易量,分析数据并生成可视化报告:
再例如:
当前登录页面自动化测试:
清理当前目录下大于1MB的所有文件
这是如何实现的?
这项演技的核心技术创新有三点:
主要场景包括:
i)浏览器使用:主要专注于通过图形用户界面(GUI)来操作网页和浏览器中的元素,常见的实现方式包括截图和网页提取技术。
ii)电脑使用:与浏览器不同,Node.js 自动化则主要面向命令行界面(CLI)操作和文件系统管理,未来还会引入GUI感知能力。
Eko的跨平台开发是通过其环境感知架构(Environment-Aware Architecture)实现的,这一架构由三个关键层次构成:通用核心(Universal Core)、环境特定工具(Environment-Specific Tools)和环境桥接(Environment Bridge)。
安全性和访问控制:Eko针对不同环境实施了适当的安全措施。浏览器扩展和Web环境都采用了严格的权限控制和API密钥管理,而Node.js环境则允许更广泛的系统级访问,基于用户权限进行文件操作和命令执行,在需要时会在执行前请求用户确认。
自动工具注册:通过 loadTools() 等工具,Eko自动注册适用于当前环境的工具,这使得开发者可以在多个环境中无缝地切换,并确保工具的正确加载。
团队提出层次化感知框架,将任务的拆解分为两层,包括Planning layer和Execution layer。
其中Planning layer负责将用户的需求(自然语言或代码语言表示)和现有工具集拆解成一个有领域特定语言(Domain-specific language)表示的任务图(Task graph)。
任务图是一个有向无环图,描述了子任务之间的依赖关系。该任务图由LLM一次性合成。在Execution layer中,根据每个任务调用LLM来合成具体的执行行为和工具调用。
多步合并优化:当Eko检测到两次执行都是对LLM的调用时,会触发框架的自动合并机制,将两次调用的system prompt自动整合,合并成一次调用。从而加快推理速度。
视觉-交互要素联合感知框架(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/
文章来微信公众号“量子位”
【开源免费】Browser-use 是一个用户AI代理直接可以控制浏览器的工具。它能够让AI 自动执行浏览器中的各种任务,如比较价格、添加购物车、回复各种社交媒体等。
项目地址:https://github.com/browser-use/browser-use
【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。
项目地址:https://github.com/n8n-io/n8n
在线使用:https://n8n.io/(付费)
【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。
项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file
【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。
项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file
在线使用:https://vectorvein.ai/(付费)
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0