Eko 是一个强大的 Agent 开发框架,开发者能用自然语言和简单代码快速构建「虚拟员工」,完成从简单指令到复杂工作流的任务,如股票分析、自动化测试等;通过混合智能体表示、跨平台架构和生产级干预机制等创新技术,实现高效、灵活且安全的自动化工作流程。
OpenAI 的首席执行官 Sam Altman 最近宣布,2025 年将推出「虚拟员工计划」,代号 Operator,AI 智能体能够自主执行任务,如写代码、预订旅行等,成为企业中的「数字同事」。
抢在 OpenAI 发布 Operator 之前,清华、复旦和斯坦福的研究者联合提出了名为 Eko 的 Agent 开发框架,开发者可以通过简洁的代码和自然语言,快速构建可用于生产的「虚拟员工」。AI 智能体能够接管用户的电脑和浏览器,代替人类完成各种任务,为工作流程提供自动化支持。
核心技术创新有三点:
混合智能体表示:提出了 Mixed Agentic representation,通过无缝结合表达高层次设计的自然语言(Natural Language)与开发者低层次实现的程序语言(Programming Language)。
跨平台 Agent 框架:提出环境感知架构,实现同一套框架和编程语言,同时支持浏览器使用、电脑使用、作为浏览器插件使用。
生产级干预机制:现有 Agent 框架普遍强调自治性(Autonomous),即无需人类干预,而 Eko 框架提供了显性的生产级干预机制,确保智能体工作流可以随时被中断和调整,从而保障人类对生产级智能体工作流的有效监管和治理。
Homepage: https://eko.fellou.ai
Github link:https://github.com/FellouAI/eko
Docs:https://eko.fellou.ai/docs
用实际的例子来感受一下这个 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)。
通用核心:这一层提供了与环境无关的基本功能,如工作流管理、工具注册管理、LLM(大语言模型)集成和钩子系统。
环境特定工具:每种环境(如浏览器扩展、Web 环境、Node.js 环境)都提供了优化的工具集。
环境桥接:这一层负责环境的检测、工具注册、资源管理和安全控制,确保不同平台之间能够顺利互动和通信。
安全性和访问控制: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)是一种先进的浏览器自动化解决方案,通过将视觉识别与元素上下文信息相结合,显著提升了在复杂网页环境中自动化任务的准确性和效率。该技术的核心在于提取网页中的交互元素和相关数据,优化了自动化过程,极大地提高了任务执行的成功率。
具体来说,首先 VIEP 通过识别网页上的关键交互元素 —— 如按钮、输入框、链接等 —— 来聚焦用户可能进行操作的核心区域。
接着,每个可交互的元素都被分配唯一的标识符,并通过彩色框标记,确保精确定位。随后,系统通过结合截图和伪 HTML 的方式构建元素信息,利用文本和视觉数据的结合,帮助自动化模型更好地识别和操作这些元素,尤其在复杂网页结构中尤为重要。
与传统浏览器自动化方法不同,通过提取并简化网页中与交互相关的元素,生成一个小巧高效的伪 HTML 结构,避免了直接处理庞大的 HTML 内容所带来的资源消耗和处理难度。
Google 首页的原始 HTML 长达 22 万多字符,但 VIEP 技术,HTML 内容可以精简至仅 1,058 个字符,大幅提升了自动化操作的处理速度和精准度。这一技术的优势不仅体现在降低成本和提高准确性上,还在于性能优化和跨环境适应性。
在构建 AI 驱动的自动化系统时,开发者常常需要监控任务的执行情况,随时调整行为,或在必要时进行干预。
虽然“钩子”是软件开发中的常见概念,但在 Eko 中,它们承担了独特的角色 —— 在 AI 自动化和人工监督之间架起了一座桥梁。简单来说,你可以在 Workflow 执行前后插入自己的逻辑,比如验证输入、处理结果、甚至重试失败的任务。代码如下:
// Javascriptawait eko.executeworkflow { 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 提供三种不同层级的钩子,每个层级都具有独特的作用:
工作流钩子(Workflow Hooks)这些钩子位于工作流的最上层,用于整体控制和监控自动化流程的启动和结束。例如,你可以在工作流开始之前进行资源初始化,或在工作流结束后进行清理和处理最终结果。
子任务钩子(Subtask Hooks)这些钩子位于工作流的中间层,允许你在每个子任务开始前和结束后进行监控和处理。例如,你可以在每个子任务前记录日志,或在任务完成后对中间结果进行处理。
工具钩子(Tool Hooks)这是最细粒度的钩子,允许你在每个工具执行前后进行验证和修改。例如,你可以在工具执行前验证输入参数,或在工具执行后处理返回结果。
钩子可以帮助开发者实时优化工作流,提高自动化系统的精度和效率。例如,在执行某些任务时,开发者可以通过钩子对输入数据进行验证,防止错误信息传入系统;或在任务完成后,处理和转化结果,以便更好地利用输出。钩子还能帮助开发者收集执行数据,进行性能分析,识别瓶颈并优化自动化流程。
除了常规的监控和调试功能,Eko 的钩子系统还支持更创新的使用场景。例如,在一些关键任务执行时,钩子可以暂停工作流并等待人工审批;在 AI 决策出现问题时,开发者可以通过钩子进行人工干预或覆盖 AI 的判断,确保业务流程的顺畅。
无论你是 AI 开发者还是自动化使用者,Eko 为你提供了更灵活、高效的工具,帮助你将虚拟员工部署到实际生产环境中,提升工作效率和质量。立即关注 Eko,让 AI 自动化为你的生产力加速!
陆逸文,清华大学博士生,研究兴趣为具身智能平台和智能体。
罗卓伟,FellouAI 首席工程专家,目前从事人工智能相关领域工作。
马骁腾,清华大学自动化系博士后,博士毕业于清华大学。主要研究兴趣为强化学习和智能体。
陈家棋,复旦大学硕士生,斯坦福大学访问学生学者。主要研究领域为计算机视觉和智能体。
参考资料:
https://github.com/FellouAI/eko
本文来自微信公众号:新智元(ID:AI_era)