AIxiv专栏是机器之心发布学术、技术内容的栏目。过去数年,机器之心AIxiv专栏接收报道了2000多篇内容,覆盖全球各大高校与企业的顶级实验室,有效促进了学术交流与传播。如果您有优秀的工作想要分享,欢迎投稿或者联系报道。投稿邮箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com
近期,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 框架提供了显性的生产级干预机制,确保智能体工作流可以随时被中断和调整,从而保障人类对生产级智能体工作流的有效监管和治理。让我们用实际的例子来感受一下这个 Agent 框架的开发难度:只需要一句话,就可以让 Eko 生成一个全 Agent 帮你做股票分析。这不就是妥妥的生产力工具吗!真是解放双手!“在雅虎财经上收集纳斯达克的最新数据,包括主要股票的价格变化、市值、交易量,分析数据并生成可视化报告。”
1. 正确的账户和密码是:admin / 666666 2. 请随机组合用户名和密码进行测试,以验证登录验证是否正常工作,例如:用户名不能为空、密码不能为空、用户名不正确、密码不正确 3. 最后,尝试使用正确的账户和密码登录,验证登录是否成功
环境感知架构(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 提供三种不同层级的钩子,每个层级都具有独特的作用:这些钩子位于工作流的最上层,用于整体控制和监控自动化流程的启动和结束。例如,你可以在工作流开始之前进行资源初始化,或在工作流结束后进行清理和处理最终结果。这些钩子位于工作流的中间层,允许你在每个子任务开始前和结束后进行监控和处理。例如,你可以在每个子任务前记录日志,或在任务完成后对中间结果进行处理。这是最细粒度的钩子,允许你在每个工具执行前后进行验证和修改。例如,你可以在工具执行前验证输入参数,或在工具执行后处理返回结果。钩子可以帮助开发者实时优化工作流,提高自动化系统的精度和效率。例如,在执行某些任务时,开发者可以通过钩子对输入数据进行验证,防止错误信息传入系统;或在任务完成后,处理和转化结果,以便更好地利用输出。钩子还能帮助开发者收集执行数据,进行性能分析,识别瓶颈并优化自动化流程。除了常规的监控和调试功能,Eko 的钩子系统还支持更创新的使用场景。例如,在一些关键任务执行时,钩子可以暂停工作流并等待人工审批;在 AI 决策出现问题时,开发者可以通过钩子进行人工干预或覆盖 AI 的判断,确保业务流程的顺畅。无论你是 AI 开发者还是自动化使用者,Eko 为你提供了更灵活、高效的工具,帮助你将虚拟员工部署到实际生产环境中,提升工作效率和质量。立即关注 Eko,让 AI 自动化为你的生产力加速!陆逸文,清华大学博士生,研究兴趣为具身智能平台和智能体。罗卓伟,FellouAI 首席工程专家,目前从事人工智能相关领域工作。马骁腾,清华大学自动化系博士后,博士毕业于清华大学。主要研究兴趣为强化学习和智能体。陈家棋,复旦大学硕士生,斯坦福大学访问学生学者。主要研究领域为计算机视觉和智能体。