首页/新闻资讯/正文详情

Ego Lite怎样让AI操作网页?用一次真实表单演示看懂快照与回读

发布时间:2026/11/3 19:26:23 来源:云帆数科 栏目:资讯中心
Ego Lite怎样让AI操作网页?用一次真实表单演示看懂快照与回读
AI操作网页不必每一步都盯着截图猜坐标。Ego Lite向Agent提供页面快照、填写、点击和结果读取等能力模型先获得页面里有哪些控件再调用工具操作浏览器最后读取页面变化决定是否继续。下面用一个无账号、无外部请求的学习表单演示这条链路。目标很具体输入“缓存”点击查找确认页面显示“找到1条资料”而不是停在“点击命令已发出”。Space、Page和快照各负责什么图CitroLabs在ego-lite仓库提供的架构原图仓库内容采用MIT许可。它展示Agent、连接层和多个Space的关系图中的宣传性命名不作为速度、成本或安全效果的实测结论。Space负责组织这次浏览器任务的页面和控制权Page对应其中一个页面。快照把页面里的标题、文本、输入框、按钮等变成结构化描述供模型选择操作目标。它不是一张截图也不等于页面全部底层数据。对象在这个例子里的用途TaskSpace保存“查找学习资料”任务及其页面后续调用继续使用同一个SpacePagep1打开学习表单、填写关键词、读取结果Snapshot告诉Agent页面有“关键词”输入框、“查找资料”按钮及当前状态Action执行fill、click等浏览器操作回读检查状态文字和结果区判断目标是否实现Space把任务页面组织起来并不意味着每个Space都有完全独立的网站账号或操作系统权限。作者README里的性能对比也有特定测试条件不能直接推成你自己的任务一定更快、更省。从一个能看见结果的页面开始图独立学习表单的实际截图尚未输入或提交。页面不是产品界面仿图也没有使用私人账号后台。要复现一个最小版本可以把下面内容保存为C:\ego-demo\index.html。它只在本页显示匹配结果不发送网络请求。!doctype htmlmeta charsetutf-8 h1学习资料检索/h1 form idsearch label关键词 input placeholder例如缓存 required/label button查找资料/button /form p idstatus rolestatus尚未检索/p section idresults/section script const items [提示缓存, Git分支, 工具调用]; document.querySelector(#search).onsubmit e { e.preventDefault(); const word document.querySelector(input).value.trim(); const rows items.filter(x x.includes(word)); document.querySelector(#status).textContent 检索完成${word}找到 ${rows.length} 条资料; document.querySelector(#results).textContent rows.join(、); }; /script在终端启动一个只监听本机的临时服务这个例子需要Python和已经配置好的ego-browser不涉及模型账号安装教程。python -m http.server 8767 --bind 127.0.0.1 --directory C:\ego-demo第一轮打开页面并观察在已支持ego-browser的Agent环境中先运行ego-browser skill读取当前用法再执行下面的浏览器脚本。一个任务只建一个Space后续轮次继续使用它。const task await taskSpace(learning-form-demo); console.log(Space ID:, task.spaceId); const page task.page(p1); await page.goto(http://127.0.0.1:8767/index.html); console.log(await page.snapshot());例如把这段脚本保存为C:\ego-demo\round-1.mjs在PowerShell执行下面的命令第二轮同样保存为round-2.mjs换成对应文件名执行。.mjs文件中的浏览器辅助方法由ego-browser运行环境提供不能直接用普通node命令运行。ego-browser nodejs -e await import(file:///C:/ego-demo/round-1.mjs)本文实际演示页的快照包含关键词输入框、按钮和“尚未检索”状态。它还给控件分配了当前引用例如ref1与ref2并为输入框提供input[placeholder例如缓存]定位线索。textbox [ref1, loccss:input[placeholder例如缓存]] button [ref2] text 查找资料 status text 尚未检索这些引用属于当时的页面观察结果不能把别人的1复制后当作任何页面都适用的按钮编号。页面导航或内容变化后应重新观察如果选择器匹配多个对象就进一步限定目标。第二轮继续同一个任务操作后再读结果const task await taskSpace(learning-form-demo); const page task.page(p1); console.log(await page.snapshot()); await page.fill(input[placeholder例如缓存], 缓存); await page.click(text查找资料); await page.waitForFunction(() document.querySelector(#status).textContent 检索完成缓存找到 1 条资料 ); console.log(await page.snapshot()); await task.finish({ keep: [] });图同一任务跨两轮后实际页面显示关键词“缓存”、完成状态和“提示缓存”资料。截图来自实际浏览器操作这里验证的是表单查找流程不是工具对任意网站的通用成功率。click返回只能说明动作已经发出。实际网站可能还在校验、等待网络响应或者显示了错误。这里用状态文字作为完成条件真实任务也应选择可观察的结果例如保存成功提示、列表出现新增记录或错误信息消失。从源码能追到哪一步公开仓库的package/ego-browser/src/driver/observe.ts中snapshot()调用浏览器侧快照能力并将返回的refs写入引用映射。它解释了为什么快照描述能与后续控件操作衔接。这份文件是连接层证据不是整个浏览器引擎的源码。Ego Lite的API也不是完整Playwright名称类似不代表可以直接调用locator()或任意Playwright方法具体方法与参数仍要以当前skill为准。做网页任务时可以沿着“观察当前页面→执行一个明确动作→等待可见变化→读取结果”的顺序组织脚本。先把一次查找、一次保存做完整再扩展到多个页面通常比只写一串点击更容易发现失败发生在哪一步。来源CitroLabs《ego-lite项目》及仓库observe.ts架构图版权归CitroLabs按仓库MIT许可使用许可原文见仓库LICENSE。

相关推荐

Fixture DRI Training_Fixture讲解
Fixture DRI Training_Fixture讲解

目录 一、坐标转换介绍 坐标转换介绍 坐标转换示例 如何实现坐标转换 CogTransform2DLinear 的方法介绍 形状坐标转换的方法介绍 坐标转换的功能 二、转换坐标 图像转换坐标 脚本转换坐标 用脚本转换坐标(MapPoint): 三、Mapping工具 MappingToolBlock流程 介绍 … · 2026/11/3 19:26:23

Docker Image-- 镜像命令详解与使用示例
Docker Image-- 镜像命令详解与使用示例

目录 1. Docker 镜像是什么 2. 镜像命令详解 2.1 docker images 2.2 docker tag 2.3 docker pull 2.4 docker push 2.5 docker rmi 2.6 docker save 2.7 docker load 2.8 docker image inspect 2.9 docker history 2.10 docker image prune 2.11 docker build 2… · 2026/11/3 19:26:23

LinkedList知识
LinkedList知识

一、LinkedList 介绍LinkedList 是 List 接口的实现类,同时实现了Deque(双端队列)接口 ✅ List 共性:有序、可重复、带索引 底层:双向链表,每个 Node 节点:prev前驱指针 item数据 next后继指针… · 2026/11/3 19:25:22

前端图片上传0KB问题解析与解决方案
前端图片上传0KB问题解析与解决方案

1. 前端图片上传0KB问题深度解析最近在VueElementUI项目中处理图片上传时,遇到了一个典型问题:部分用户上传的图片在服务器端显示为0KB的破损文件。这个问题看似简单,实则涉及前端文件处理机制、浏览器API使用规范、前后端交互协议等多个技术… · 2026/11/3 20:02:38

用ping二分法快速定位MTU故障:原理、参数与上线自检清单
用ping二分法快速定位MTU故障:原理、参数与上线自检清单

1. MTU配错到底会怎样:从三个真实症状说起MTU 这个词听起来很基础,但真正在现网里遇到它的时候,往往已经是半夜被告警叫醒的状态了。我先说三个我自己碰到过的场景,你对号入座一下,看看是不是眼熟。第一个场景&#xf… · 2026/11/3 20:02:38

Ansible Playbook进阶实战:生产级自动化技巧
Ansible Playbook进阶实战:生产级自动化技巧

1. Ansible Playbook进阶实战:从基础到生产级自动化(开头部分) 第一次接触Ansible Playbook时,我被它简洁的YAML语法和声明式编程模式深深吸引。但真正在生产环境大规模使用时,才发现那些基础教程里没讲的细节才是决定… · 2026/11/3 20:02:38

SURPAC地质建模规范:数据表、ID编号与文件命名避坑指南
SURPAC地质建模规范:数据表、ID编号与文件命名避坑指南

简介:这份文档面向地质勘探、矿产资源评价及环境监测领域的建模初学者与技术人员,系统梳理了 SURPAC 软件建模的核心知识点,帮助读者建立从数据组织到解译建模的完整认知框架。压缩包内为 1 个 docx 文件,约 17KB,内容… · 2026/11/3 20:02:38

RTDE 实时数据交换:125Hz 上限、两阶段设计与避坑指南
RTDE 实时数据交换:125Hz 上限、两阶段设计与避坑指南

简介:面向UR(优遨)机器人开发者与自动化集成工程师的RTDE接口技术手册,聚焦如何通过标准TCP/IP连接将外部程序与UR控制器同步,同时不破坏控制器实时属性,适用于现场总线驱动交互、机器人I/O操作与轨迹状态绘… · 2026/11/3 20:02:38

Firefox中文语言包安装与失效排查:版本匹配与多平台配置
Firefox中文语言包安装与失效排查:版本匹配与多平台配置

帮别人装浏览器这种事我干过不少回,最常被追问的一句话就是——为什么装完之后界面还是英文的?Firefox 中文语言包的安装方法看着简单,真动手的时候却总在几个地方卡住:语言包版本差一位装不上、xpi 文件拖进去没反应、装完重启还… · 2026/11/3 20:01:37

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码