1. ego lite 为什么值得一试
让 AI 操作网页这件事本身不难,难的是现有工具都没把「日常可用」做好。坑集中在三个:
坑一:登录态断层。 绝大多数自动化工具会拉起一个「干净」的浏览器实例——没有你的 Cookie、没有你登录过的账号。让 AI 帮你整理邮箱,得先在新窗口里重新登录一遍,还可能触发二次验证,而且每个需要登录的任务都要重复这一步。
坑二:自动化痕迹。 传统自动化框架(Puppeteer、Playwright)驱动的浏览器带有明显的机器特征:navigator.webdriver = true、空白的用户 Profile、反常的时序行为。对反爬严格的网站(机票、社媒、电商),轻则弹验证码,重则直接封禁。
坑三:人和 AI 抢浏览器。 很多方案是「桥接」你正在用的浏览器——AI 接管了它,你就没法用了;你动一下鼠标,AI 的定位就可能跑偏。同一时刻,浏览器只能服务一方。
市面上的方案大致是三条路线:
| 路线 | 代表 | 典型短板 |
|---|---|---|
| MCP 桥接 | Chrome DevTools MCP | 默认启动独立调试实例,登录态不继承 |
| 命令行 / 代码库 | Playwright CLI、Browser-Use、Vercel agent-browser | 自动化痕迹明显,连接脆弱,人机互抢 |
| 内置 Agent 的 AI 浏览器 | ChatGPT Atlas、Perplexity Comet | 只有内置 AI 能用,你自己的 Claude Code / Codex 进不去 |
ego lite 走的是第四条路:它本身就是一个完整的 Chromium 浏览器,你日常用它上网;同时它内置了给 Agent 用的连接层(ego-browser skill),让任何主流 Agent CLI 都能进来干活——在你旁边的独立工作区里,用你已经登录的账号。
前面三个坑,正好对应它的三个设计:迁移 Chrome 数据解决登录态断层,真实浏览器 + 真实 Profile 解决自动化痕迹,Space 隔离工作区解决人机互抢。这就是本文推荐它的原因。
2. ego lite 是什么:三个核心概念
2.1 定位:一个浏览器,而不是一个「驱动器」
ego lite 基于 Chromium,扩展、历史、登录态可以从 Chrome 原样迁移,日常浏览体验几乎无差别。关键区别在于:它从设计之初就假设浏览器有两个用户——你,和你的 AI Agent。
整个体系由两部分组成:
ego lite浏览器本体:渲染页面、保存登录态、提供隔离工作区;ego-browserskill:安装时自动写入本机各 Agent 的技能目录(如~/.agents/skills、~/.claude/skills),Agent 通过它把 JavaScript 脚本送进浏览器执行。
2.2 Space:每个 Agent 的独立工作区
![]()
一个 Space 就是浏览器内一个完全隔离的工作区,有自己的一组标签页:
- Agent 在它自己的 Space 里开页面、点按钮、读内容,你正在浏览的标签页完全不受影响——鼠标指针都不会动;
- 可以同时存在多个 Space:Claude Code 在一个 Space 里整理线索,Codex 在另外五个 Space 里抓五个竞品网站,互不干扰;
- 你随时能看到哪个 Space 有 Agent 在跑,并且可以随时接管或叫停。
2.3 Snapshot:Agent 「看」网页的方式
![]()
纯文本模型没有眼睛,靠 Snapshot 理解页面——把当前页面转成一份结构化的文本树,每个可操作元素带一个 @数字 引用。ego lite 在引擎层做了定制,Snapshot 质量属于同类方案里的第一档,尤其在深层嵌套 iframe 这类其他方案普遍翻车的场景下依然可靠。
你现在只需要记住:Agent 干活的基本循环是「拿 Snapshot → 选目标 → 执行动作 → 再拿 Snapshot」。
2.4 Code-based,而不是 CLI-based
传统 CLI/MCP 方案的交互模式是「调两个命令 → 看返回 → 再调两个命令」,每一步都是一次独立的工具调用,中间夹着大量上下文传输。ego-browser 则把浏览器能力封装成一组 JavaScript 函数,让 Agent 做它最擅长的事——写代码:把「导航 → 等待 → 提取 → 点击 → 验证」这样的多步任务组合成一段脚本,一次送进浏览器跑完。
官方与 Vercel agent-browser 的对照 benchmark(同一模型、同一任务、各跑 5 次取中位数)显示,在四个复杂任务上 ego lite 最高快 2.6 倍、省 2 倍 token;Expedia 订机票任务上对手直接被反爬拦截,ego lite 正常完成——这是「真实浏览器 + 真实 Profile」的红利。
2.5 先泼点冷水:它的真实成本和缺点
上面的 benchmark 是相对值,别因此以为它便宜。我自己用下来的真实感受是:
- Token 消耗依然不小。 浏览器任务的本质是「看一页、动一下、再看一页」,Snapshot 压缩得再好,一个复杂页面也是几千 token 起步。一个多步骤任务跑下来,烧掉的 token 经常比让 Agent 写一段代码还多。开三个 Space 并行,就是三倍的速度、三倍的账单。用它之前先想清楚:这件事值不值得用 token 换。
- 仅支持 macOS。 Windows 还在封闭内测,Linux 在路线图上——这直接挡掉一大半潜在用户。
- 它很年轻。 skill 和 API 还在快速迭代,教程里的细节几个月后可能过时,以官方文档为准。
- 它不是测试框架。 没有断言体系、没有 CI 集成,别拿它替代 Playwright 干回归测试。
- 登录态是双刃剑。 Agent 能用你已登录的账号,意味着它理论上也能以你的身份发消息、下订单。敏感操作不要让 Agent 代劳。
3. 前置知识
必须掌握:
- 一个 AI Agent CLI:Claude Code、Codex 或 Cursor 任意一个,能正常对话即可(官方文档以前两者为例)。
- 基础命令行:能打开终端、复制执行命令。
- macOS:Windows 用户可以先收藏本文。
4. 环境搭建
4.1 环境清单
| 工具 | 用途 | 必须/可选 |
|---|---|---|
| ego lite(最新版) | 浏览器本体 | 必须 |
| Claude Code / Codex / Cursor(任一) | 发起任务的 Agent | 必须 |
| ego-browser skill | Agent 与浏览器的连接层 | 必须(自动安装) |
| Chrome | 迁移登录态、扩展、书签的来源 | 可选但强烈建议 |
4.2 安装 ego lite
三种方式任选其一。
方式一:下载 macOS 应用(推荐)
到 GitHub 仓库(github.com/citrolabs/ego-lite)或官网下载 DMG,双击安装。安装过程会顺带把 ego-browser skill 写入机器上所有已安装 Agent 的技能目录。
方式二:用 npx 只装 skill
# 只安装 ego-browser skill;首次执行浏览器任务时会引导你安装浏览器本体
npx skills add citrolabs/ego-lite
方式三:让你的 Agent 自己装
把这段话粘贴进 Agent 对话框:
Set up ego lite for me: https://github.com/citrolabs/ego-lite
Read `skills/ego-browser/references/install.md` and follow the steps to install ego lite.
4.3 首次启动:迁移 Chrome 数据(关键一步)
首次打开 ego lite,它会问:是否迁移 Chrome 数据。
建议选「是」。你的登录态、Cookie、扩展、书签会整体迁入,此后 Agent 操作的每个网站都是「你已登录」的状态。
迁移时系统可能要求输入开机密码——这是为了解密 Chrome 的 Cookie 和登录凭据,属正常流程。同时 ego lite 会扫描已安装的 Agent,把 ego-browser skill 写入 ~/.agents/skills、~/.claude/skills/ 等目录。
4.4 调整 Agent 权限
如果你的 Agent 有权限分级,建议设为 Full access:ego-browser 需要启动本机的 ego lite 应用,沙箱外启动应用需要这个权限。以 Codex 为例,在会话权限中选择 Full access 即可。
4.5 验证安装
在 Agent 对话框输入:
/ego-browser 打开 example.com 并告诉我页面标题
预期结果:ego lite 被唤起,一个新的 Space 出现,Agent 在其中打开页面并回报标题「Example Domain」——你自己的标签页全程不受影响。看到这个结果,环境就绪。
5. 快速上手:第一个任务
先跑一个两分钟的任务建立直觉。在 Agent 对话框输入:
/ego-browser 打开 OpenAI 和 Anthropic 的官方博客,各总结最近三篇文章的要点,用中文列表回复我
接下来你会观察到一次完整的执行循环:
- 建 Space:Agent 创建(或复用)一个 Space,浏览器侧边能看到它开始运转;
- 看页面:在 Space 里打开博客页面,取一次 Snapshot;
- 做事情:按 Snapshot 里的元素引用逐个点开文章、读取正文;
- 报结果:把总结返回给你,并按需关掉它创建的页面。
整个过程你不需要碰浏览器。
<!-- 配图位:此处插入 Agent 在 Space 中执行任务的真实截图,最好同时露出聊天面板和浏览器侧栏(需实截) -->提示:一个任务对应一个 Space。后续追加指令(「再往下翻两页」「把第三篇展开讲讲」),Agent 会复用同一个 Space,不会重复开窗口。
6. 进阶实操
四个场景由浅入深:前两个用自然语言即可,第三个开始接触 Snapshot 和选择器,最后两节涉及手写脚本和人机接力。
6.1 场景一:社媒操作(登录态继承的价值)
任务:让 Agent 在 X 上关注某个账号,并整理你关注列表里的讨论热点。
/ego-browser 在 x.com 上关注 @ego_agent,然后浏览我首页时间线,总结我今天关注的人都在讨论什么,列出三条热点
因为安装时迁移了 Chrome 数据,此时 X 已经是你的登录态——没有登录环节,没有二次验证,Agent 直接以「你」的身份干活。作为对比,用 Chrome DevTools MCP 做同样的事,默认会打开一个全新的调试窗口,X 会把它当作一台陌生设备要求重新登录。
干活过程中你可以切到那个 Space 实时围观——可见、可接管、可叫停。
6.2 场景二:信息抓取汇总(多 Space 并行)
任务:同时抓取多个信息源并汇总。
/ego-browser 并行开三个任务:分别抓取 TechCrunch、Hacker News 和 Product Hunt 今天的首页头条,汇总成一张表,包含标题、链接和一句话摘要
Agent 会为每个信息源开独立的 Space 同时工作,而不是串行地一个站点抓完再抓下一个——总耗时约等于最慢的那个任务。对「盯竞品」「盯舆情」「盯价格」这类日常监控场景很实用,配合 Agent CLI 的定时任务能力,就是一套个人情报系统。
<!-- 配图位(可选):此处插入多个 Space 同时运转的截图(需实截) -->提醒一句:并行开几个 Space,token 消耗就翻几倍。三个信息源并行是划算,十个就请先算算账。
6.3 场景三:邮箱 / 办公自动化(读懂 Snapshot 与选择器)
任务:让 Agent 进你的邮箱,把今天的未读邮件按紧急程度分类。
/ego-browser 打开我的邮箱,列出今天的未读邮件,按「需要今天回复 / 本周处理 / 仅知会」分类,附上发件人和主题
跑完之后,让 Agent 把某一步的 Snapshot 打印出来:
/ego-browser 把当前页面的 snapshot 打印出来给我看看
你会看到类似这样的结构化文本:
- table "收件箱"
- row "张三 项目周报请查收 ..."
- checkbox @21
- link "项目周报请查收" @22
- row "GitHub [repo] New pull request ..."
- checkbox @23
每个可操作元素都有一个 @数字 引用,Agent 的动作就是基于这些引用和语义选择器定位的:
@22或ref=22:直接用 Snapshot 引用;loc=role:link[name='项目周报请查收']:按角色 + 名称定位;text="回复":按页面文本定位;loc=css:#main .unread:CSS 选择器。
看懂这个很实用:当 Agent 偶尔点错目标时,你能给出精确的纠偏指令(「你要点的是 @22」),而不是让它反复重试、白白烧 token。
6.4 场景四:开发调试 —— 用 ego lite 自测你写的网页
任务:你刚写完一个落地页,让 Agent 替你走一遍核心流程并截图。
/ego-browser 打开 http://localhost:3000,走一遍注册流程:填写测试邮箱 test@example.com、提交表单,确认跳转到欢迎页,每步截图保存到 ./qa-screenshots/
与 Playwright 系工具相比有一个微妙但实用的差别:ego lite 里装着你日常的浏览器扩展,Agent 操作的环境就是你用户真实面对的环境,测出来的问题更接近真实用户体验。
对于没有 DOM 语义的界面(Canvas 编辑器、地图、富文本),Agent 会切换成「截图 + 坐标级鼠标键盘」的策略,你在指令里说明「这是个画布应用,按看到的内容操作」即可。
6.5 手写 ego-browser 脚本:批量提取与文件下载
大多数时候你不需要自己写代码,但了解脚本长什么样,能帮你判断 Agent 干得对不对。ego-browser 脚本通过 heredoc 送进 Node.js 运行:
ego-browser nodejs <<'EOF'
const task = await taskSpace("scrape headlines");
const page = task.page("p1");
await page.goto("https://news.ycombinator.com");
// 在页面内批量提取(evaluate 的回调运行在页面里)
const rows = await page.evaluate(
({ selector, limit }) =>
[...document.querySelectorAll(selector)].slice(0, limit).map((node) => ({
title: node.textContent?.trim(),
href: node.href,
})),
{ selector: ".titleline > a", limit: 30 },
);
console.log(rows);
await task.finish({ keep: [] });
EOF
三个要点:taskSpace("名称") 创建/进入一个 Space,task.page("p1") 取第一个页面;page.evaluate() 的回调跑在页面内部,适合批量提取;结尾 task.finish({ keep: [] }) 关掉 Agent 创建的页面,把 Space 还给你。
下载文件:
const downloadPromise = page.waitForEvent("download", { timeout: 30_000 });
await page.click("button.download");
const download = await downloadPromise;
await download.saveAs("/absolute/path/report.pdf"); // 换成你的绝对路径
6.6 人机接力:handOff 与接管
有些步骤不该让 Agent 做——比如输支付密码、过滑块验证。ego lite 的解法是把浏览器交还给你:
/ego-browser 帮我把购物车结算到支付页,到输密码那步停下来交给我
Agent 执行到该步骤时会调用 handOff(),控制权回到你手里;你操作完告诉它「好了」,它在同一个 Space 里继续。反过来,任何时候你都可以在浏览器界面直接接管或叫停一个正在跑的 Space。
一句话心法:简单任务用自然语言,批量任务让 Agent 写脚本,敏感步骤交还给人。
7. 横向对比:ego lite vs Chrome DevTools MCP vs Playwright CLI
7.1 对比总表
| 维度 | ego lite | Chrome DevTools MCP | Playwright CLI |
|---|---|---|---|
| 定位 | 人机共用的 Chromium 浏览器 | Google 官方调试向 MCP 服务器 | 微软官方测试向 CLI |
| 登录态 | ✅ 迁移 Chrome 数据,直接继承 | ⚠️ 默认干净实例,需重新登录 | ⚠️ 默认干净 Profile |
| 自动化痕迹 | 低(真实浏览器 + 真实 Profile) | 较高 | 较高 |
| 多任务并行 | ✅ 多 Space 原生支持 | ❌ | ❌ |
| Token 消耗 | 中:比同类方案省,但绝对量仍不小 | 高:MCP 上下文开销大 | 较低:快照落盘、按需读取 |
| 调试 / 性能分析 | 一般 | ✅ 主场 | 一般 |
| 测试 / CI | ❌ 不适合 | 可用 | ✅ 主场 |
| 平台 | ⚠️ 仅 macOS | ✅ 全平台 | ✅ 全平台 |
| 费用 | 免费 | 免费开源 | 免费开源 |
表里的「登录态」「自动化痕迹」说的是各工具的默认行为:DevTools MCP 可以用 --browser-url 接管一个以调试端口启动的 Chrome,Playwright CLI 也能配置持久化 Profile——但配置成本本身就该算进选型里,而且这些模式下人机仍然共用同一个窗口。
7.2 Chrome DevTools MCP:为「调试」而生
它把 Chrome DevTools 的能力(性能追踪、网络分析、控制台、DOM 操作)暴露给 Agent。「帮我分析这个页面的 LCP 为什么慢」「抓一下这个请求为什么挂」——这类任务上它依然是最好的选择,ego lite 没有同等级别的性能剖析工具。
短板在日常自动化:默认启动独立的调试实例,登录态不在里面;接管日常浏览器的模式配置繁琐,而且 Agent 和你操作的是同一个窗口,互抢焦点。
7.3 Playwright CLI:为「测试」而生
微软官方为 Agent 设计的命令行入口:页面快照写成 YAML 落盘、Agent 用 run-code 执行代码,token 消耗比 Playwright MCP 低不少。
它的主场是可复现的自动化测试:CI 流水线、回归测试、跨浏览器矩阵,工程化程度是三者中最成熟的。短板在「扮演用户」:作为测试框架,它的指纹恰恰是为「被识别为自动化」设计的;持久化 Profile 和你日常 Chrome 的 Profile 也是两套世界,登录态、扩展都不共享。
7.4 选型建议
- 「我的页面为什么慢 / 哪个请求挂了」 → Chrome DevTools MCP,性能面板和网络瀑布图是它的独门武器。
- 「把流程固化成 CI 里的回归测试」 → Playwright CLI。注意区分「定期重复办事」和「回归测试」:前者 ego lite 也能做——跑过的脚本可以存下来复用,配合 Agent 的定时任务就能每周执行;后者要的是确定性断言和 CI 集成,LLM 驱动的操作天然做不到,这是 Playwright 的主场。
- 「去我的邮箱 / 社媒 / CRM / 内部后台办件事」 → ego lite。这类任务的共性是需要登录态、网站有反爬、你还想同时正常上网——三条全中。
- 「同时盯十个网站」 → ego lite,多 Space 并行是三个方案中唯一原生支持的,但注意 token 成本也随并行数线性上涨。
最后补一句实用建议:不是所有上网的事都值得派给 Agent。查个资料、看个页面这种一分钟能做完的事,自己动手更快更便宜。
结语与后续
到这里,ego lite 的核心概念(Space / Snapshot / Code-based)、四类典型场景的玩法、以及和两个主要竞品的选型逻辑都讲完了。它是我目前用过的方案里,「让 AI 替我上网办事」体验最顺的一个——但前提是你接受它烧 token 的现实,并且是个 Mac 用户。
本教程的常见问题排查、进阶拓展和 Cheatsheet 速查表三章将另行补充。如果你在实际使用中踩了坑,欢迎反馈,排查章节会优先收录真实问题。
附录
术语表
| 术语 | 解释 |
|---|---|
| Space | ego lite 中 Agent 的隔离工作区,包含一组独立标签页,可多开并行 |
| Snapshot | 页面的结构化文本表示(基于可访问性树),Agent 赖以「看见」页面 |
| ego-browser | 连接 Agent CLI 与 ego lite 浏览器的 skill,同时是执行脚本的命令行入口 |
@数字 引用 | Snapshot 中每个可操作元素的编号,供后续动作精准定位 |
| Code-based | 相对 CLI 逐条命令的交互模式:把多步操作组合成一段 JS 脚本一次执行 |
| handOff / takeOver | 人机接力机制:Agent 主动交还控制权,或从用户手中接管 Space |
参考链接
- ego lite GitHub 仓库:https://github.com/citrolabs/ego-lite
- ego lite 官方文档:https://lite.ego.app/document/
- Chrome DevTools MCP:https://github.com/ChromeDevTools/chrome-devtools-mcp
- Playwright CLI:https://github.com/microsoft/playwright-cli