用 AI Agent 干活的人大概都遇到过这种卡壳:让它写代码、查资料都很顺,可一旦要它「去某个网站帮我点几下、填个表、导个数据」,就动不了了——要么没有 API,要么必须先登录,要么卡在验证码上。ego (lite) 就是冲着这个问题来的:一款和 AI Agent 共用的浏览器。
我把安装、接入 Codex、跑通第一个浏览器任务的全过程整理成这篇教程,顺带说说它怎么工作、有哪些坑要提前知道。整个过程十几分钟,免费,也不用注册账号。
一、ego (lite) 到底是什么
一句话:它和 Chrome 一样基于 Chromium,但是为「人 + Agent 共用」重新设计过的浏览器。
- 你的扩展、书签、浏览记录、登录状态可以一键从 Chrome 迁过来,平时的浏览习惯基本不用改;
- Agent 用你真实的登录态去操作那些「登录后才能用」的后台,不用重新登录,也不容易卡在验证码、二次验证、SSO 跳转上;
- Claude Code、Codex、Cursor、Continue、Gemini CLI、OpenClaw、OpenCode 等任意 CLI Agent 都能接,不绑定某一家。
官方对它的定位很直白:ego (lite) 只是一款浏览器;ego 才是你跨设备的个人 Agent。 目前支持 macOS,Windows 和 Linux 在路线图上;完全免费,没有订阅费,也没有按任务计费。
二、它凭什么快:先搞懂三个概念
把这三个词理解了,后面用起来会顺很多。
Space:Agent 的独立工作区
Space 不是新窗口、不是新的 Chrome 个人资料,也不是 headless 模式,而是同一个浏览器进程里的分区。每个任务有自己的标签页、Cookie 和 Storage,所以 Agent 干活不会抢你的焦点、不会碰你的标签页,你可以一边看它跑,一边继续自己的事。
官方做过一次 6 并发、只开 about:blank 的对照测试,数据挺能说明问题:
| 方案 | 增加内存 | 增加进程数 | 并发启动耗时 |
|---|---|---|---|
| 独立浏览器实例 + Chrome 个人资料副本 | 约 15 GB | 约 84 个 | 约 2.5 秒 |
| ego (lite) Space | 约 0.9 GB | 约 6 个 | 约 0.6 秒 |
差距主要来自架构:传统做法要给每个任务复制一份 Chrome 个人资料,还得抢 user-data-dir 的文件锁;Space 则是主进程共享、上下文隔离。
Snapshot:让 Agent「看懂」页面
人看网页是看界面,模型看网页却是一大坨 HTML。Snapshot 把页面压成紧凑的无障碍树,每个可交互元素带一个临时编号,整页通常只要 200~400 个 Token。一个登录页的快照大概是这个画风:
Page: Example - Log in
URL: https://example.com/login
@1 [heading] "Log in"
@2 [form]
@3 [input type="email"] placeholder="Email"
@4 [input type="password"] placeholder="Password"
@5 [button type="submit"] "Continue"
@6 [link] "Forgot password?"Agent 看一眼就知道 @3 是邮箱框、@5 是提交按钮,直接 click('@5') 就行,不用猜 CSS 选择器,也不怕网站改 class 名。因为快照是在 Chromium 引擎内部生成的,深嵌套 iframe、shadow DOM、Stripe 收银台、Salesforce 嵌入组件这类「JS shim 方案容易翻车」的场景,它也能处理。
💡 一个容易踩的点:@N 编号只对当前这一次快照有效。页面跳转、刷新、弹窗、表单提交、切标签页之后,旧编号可能就失效了——让 Agent 重新拍一张快照即可。需要长期稳定的引用,用快照里的 loc=... 或自己写 CSS selector。
ego-browser:Agent 的操作入口
ego-browser 是命令行入口,通过 Chrome DevTools Protocol 连到 ego (lite) 的真实 Chromium 会话,以一段 Node.js heredoc 脚本为单位执行——Agent 一次把整段流程写完,而不是「跑一条命令、看一眼输出、再跑下一条」。一个典型循环长这样:
ego-browser nodejs <<'EOF'
const task = await useOrCreateTaskSpace('search github issues')
await openOrReuseTab('https://github.com/issues', { wait: true, timeout: 20 })
cliLog(await snapshotText())
EOF有个细节要注意:heredoc 里跑的是 Node.js 进程,只有 js(...) 里面才是浏览器页面上下文,两者别混着用;输出统一走 cliLog(...)。
三、安装与首次设置
安装本身没什么难度:
- 下载 macOS 版 DMG 安装包并打开;
- 按提示把 ego (lite) 拖进「应用程序」完成安装;
- 启动 ego (lite),走完 onboarding。
首次启动时有两件事值得留意,弄错了后面容易踩坑:
- 它会扫描你机器上已经装好的 Agent,把 ego-browser Skill 写进它们的 Skill 目录,大多数主流 Agent 开箱可用;Skill 文件也会落在 ~/.agents/skills/ 和 ~/.claude/skills/。
- 它会问你要不要迁移浏览器数据。选好对应的浏览器确认一下,登录状态、Cookie、扩展程序和 Chrome 个人资料就都跟过来了,Agent 可以直接复用。onboarding 过程中可能会让你输入密码,那是为了迁移这些登录数据。
🔒 关于隐私:迁过来的密码、Cookie、浏览记录、书签和扩展都不会上传;页面内容由你自己的 Agent 读取和操作,ego (lite) 只负责浏览器和桥接。不需要注册账号,也没有云端会话。
四、接入 Codex:开 Full access,加载 Skill
这里以 Codex 为例,其他 Agent 的流程大同小异。如果装完 ego (lite) 时 Codex 是开着的,先完全退出再重启一次,好让 Skill 列表刷新出来。
1. 选择 Codex 模式(桌面端)
如果你用的是 ChatGPT 桌面端,先把左上角的模式切到 Codex;用 Codex TUI 的话跳过这一步。
2. 打开 Full access
桌面端:打开输入框左下角的权限菜单,选 Full access 并确认。因为 ego-browser 需要启动本机上的 ego (lite),权限不够时沙箱会拦住应用启动,任务就会卡在等审批。
TUI:用下面这条命令开新会话。
codex --dangerously-bypass-approvals-and-sandbox3. 加载 ego-browser Skill
桌面端在输入框里输入 /ego,从列表里选 ego-browser;也可以直接敲 /ego-browser 然后按 Tab 激活。TUI 里同样输入 /ego 选择 ego-browser。
如果列表里找不到它:先确认 ego (lite) 已经完成初始设置,然后重启 Codex,再试一次 /ego。Skill 文件应该位于 ~/.agents/skills/。
五、跑通第一个浏览器任务
Skill 加载好、权限也给足了,就可以直接把任务丢给 Agent。官方文档里的第一个例子是让 Agent 去读 OpenAI 和 Anthropic 的博客:
使用 ego-browser 打开 OpenAI 和 Anthropic 的博客,检查是否有值得关注的新信息,并快速总结最新文章的核心内容。
Agent 会在 ego (lite) 里建一个 Space,在里面打开这两家的博客、翻最新文章、整理出重点,最后把总结返回给你。我自己第一次跑下来的感受是:最省心的地方在于「不用管它怎么点」——它自己拍快照、找元素、点进去读,读完把结论交回来。
六、想看 Agent 在干什么?打开 Space 面板
点 ego (lite) 右上角的 Space 按钮,就能进 Space 管理面板。带蓝色光晕的那个,就是 Agent 正在操作的 Space,你可以切进去看它停在哪个步骤,也可以直接接管——比如帮它完成扫码登录、输一下验证码,然后让它接着跑。任务结束后 Space 里的标签页会保留,方便复核它到底访问过哪些页面。
这也是这套设计里我比较喜欢的一点:Agent 在后台安静跑流程,只在需要你参与的时候把你拉进来,不打断你手上正在做的事。
七、ego-browser 常用能力速查
想让 Agent 跑得更精细(或者你自己写一段脚本),下面这张表可以当速查用。所有 helper 都在脚本作用域里以 camelCase 直接可用,不用 import。
| 分类 | Helper | 用途 |
|---|---|---|
| Task Space | listTaskSpaces / useOrCreateTaskSpace / completeTaskSpace / closeTaskSpace | 复用或创建任务空间,以及任务完成后的收尾 |
| 导航与状态 | openOrReuseTab / gotoAndWait / newTab / switchTab / currentTab / pageInfo | 打开、切换、复用标签页,读取当前页面信息 |
| 观察 | snapshotText / captureScreenshot / drainEvents | 读语义快照、截图、消费导航与网络事件队列 |
| 鼠标与滚动 | click / doubleClick / hover / dragMouse / scrollBy / scrollToBottomUntil | 点击、悬停、拖拽、滚动加载更多内容 |
| 键盘与输入 | typeText / fillInput / pressKey / dispatchKey | 输入文本、填表单、按键 |
| 文件与网络 | uploadFile / httpGet | 上传本地文件、在浏览器上下文发起 GET 请求 |
| 等待 | wait / waitForLoad / waitForElement / waitForNetworkIdle | 等页面、等元素、等网络空闲(默认单位是秒) |
| 浏览器执行 | js / elementEval / cdp | 直接跑 JS 抽数据、取元素信息、走原始 CDP |
| 输出与自查 | cliLog / help | 脚本里唯一的输出方式;help('click') 可以查用法 |
点选元素时,target 可以写 @ref、CSS selector、[x, y] 坐标,或者 { selector, x, y } 叠加偏移;加上 label 还会触发一次视觉高亮,方便事后复核。组合起来大概是这样:
await click('@21', { label: '查看登录状态' })
await fillInput('@2', 'user@test.com')
await pressKey('Enter')
const data = await js(String.raw`(() => {
const items = [...document.querySelectorAll('article')]
return items.map(el => ({ text: el.innerText, links: [...el.querySelectorAll('a')].map(a => a.href) }))
})()`)
cliLog(data)八、让它干得更稳:几条实践经验
- 任务描述里写清边界:目标页面,要读/填/点什么,不允许做什么(删除、发布、付款、发邮件),遇到验证码或支付要不要暂停,以及你希望拿到什么形式的结果(表格、摘要、截图、本地文件路径)。
- 该停就停:短信和邮箱验证码、扫码登录、硬件密钥、支付下单转账、发布删除归档、授权第三方应用访问账号——这些都应该由你本人来做,别把密码和验证码写进提示词。
- 结果要复核:看它有没有说明访问过哪些页面、返回内容能不能核对(标题、编号、链接、金额、时间)、下载任务有没有给本地路径、不可撤销的操作有没有在最终确认前暂停。觉得结果不对,让它重新拍一次快照,而不是基于旧回答继续推测。
- 只查公开信息就别折腾浏览器:普通 web search 更省事;Space 更适合登录后的后台、需要点击填表的流程。
九、它还能用来干什么
官方列了不少真实场景,基本覆盖「有网页、但没 API」的各种角落:
- 社交媒体:回复推文、抓互动数据、监控提及;X、LinkedIn、Threads、Reddit、Instagram、Facebook 都能跑;
- 求职和招聘:在 LinkedIn、Wellfound 上筛岗位,跳进 ATS 填申请表、传简历,提交前停下来等你确认;
- 房产、金融、购物:按条件筛房源、跑房贷和负担能力计算器、把结构化数据写进本地 Markdown;也能比价、批量下单;
- 预订:机票、酒店、餐厅的完整流程,自动填表,一直走到支付页之前停下;
- SaaS 后台:HubSpot、Salesforce、Notion、Airtable、Linear、Stripe、GA4、Search Console 这类系统的拉报表、刷仪表板、批量改字段;
- 内部工具:自己的管理后台、staging 环境、QA 流程——那些需要登录、其他自动化框架进不去的页面。
十、常见问题
| 问题 | 怎么处理 |
|---|---|
| 找不到 ego-browser | 确认 ego (lite) 已完成初始设置,重启 Codex,再输入 /ego 从列表里选择;Skill 文件应该在 ~/.agents/skills/ |
| Skill 加载了,但 ego (lite) 没启动 | 桌面端确认权限显示的是 Full access;TUI 需要关掉当前会话,用 codex --dangerously-bypass-approvals-and-sandbox 重新启动 |
| 网站要求登录或验证账号 | 在 Agent 所在的 Space 里自己完成登录或验证,再让 Agent 在同一个 Space 继续;不要把密码或验证码写进提示词 |
| Agent 说引用失效了 | 页面在上次快照之后发生了变化,让它重新拍一次快照 |
| 快照或截图读不全内容 | 图片里的文字、复杂 canvas、受限的跨域 iframe 可能读不到,可以让 Agent 结合截图或人工确认 |
十一、小结
ego (lite) 有意思的地方在于:它没有另造一套浏览器,而是把你熟悉的 Chromium 和一个「给 Agent 用的工作区」缝在了一起——登录态复用、Space 隔离、Snapshot 省 Token、ego-browser 一次往返跑完流程。装一次,以后让 Agent 处理那些需要登录、需要点击的网页任务就顺手多了。
如果你也经常让 AI 帮忙处理后台、表单、数据抓取这类活,值得花十分钟把它装上试试。
参考资料
- ego (lite) 官方文档 · 快速开始:https://lite.ego.app/document/zh/docs/quick-start
- Codex 使用指南:https://lite.ego.app/document/zh/docs/codex
- ego-browser 能力与 Helper 参考:https://lite.ego.app/document/zh/docs/ego-browser
- Space 与 Snapshot 机制:https://lite.ego.app/document/zh/docs/space



