如何为ego-lite贡献第一个新站点Learnings?首个PR实战指南
【免费下载链接】ego-liteThe fastest browser for AI agents to run browser automation, built for sharing your logged-in browser state with your AI agents, like Codex or Claude Code, without disturbing you. Zero cost, zero config.项目地址: https://gitcode.com/GitHub_Trending/eg/ego-lite
ego-lite是为 AI Agent 打造的最快浏览器自动化运行环境,让 Codex、Claude Code 等 AI 助手直接复用你已登录的浏览器状态。它的Learnings(站点知识包)机制允许每个网站沉淀一份可复用的"地图"——页面结构、稳定选择器和现成工具函数。想给项目提第一个 PR?新增一个站点 Learnings 就是门槛最低、收益最高的切入点。本文带你走完整条实战流程 🧭
为什么从 Learnings 入手?
Learnings 目录完全独立于核心源码,改它不需要理解整个 TypeScript 运行时,也不会影响其他站点的行为。对新手而言:
- 📦改动范围小:一个站点就是一个文件夹,包含 4 类文件
- 🤖价值直观:你写的工具函数会被 AI Agent 直接调用,让它在对应站点上更快、更准
- ✅有自动校验兜底:内置校验脚本会在你提交前拦住所有格式错误
上图是官方基准测试:在真实 Web 任务中,ego-lite 不仅更快,成本也更低。而你贡献的 Learnings,正是让 AI 在这些任务上表现更好的"秘密武器"。
Learnings 目录结构速览
每个站点的知识包位于 skills/ego-browser/learnings/ 下,结构固定:
learnings/<站点名>/ ├── manifest.json # 元数据:域名匹配、工具清单与参数模式 ├── notes/*.md # 人类可读的站点笔记:页面结构、导航方式、边界情况 ├── tools/*.js # Node 侧工具(在 CLI 进程中运行) └── browser-tools/*.js # 浏览器侧工具(注入页面内运行)可以直接对照两个成熟示例学习:
- Google 示例:manifest.json、notes/overview.md、tools/search-extract.js
- X (Twitter) 示例:manifest.json、notes/overview.md
官方贡献指南的 Site Learnings 章节 也对此有权威说明。
实操:5 步新增一个站点 Learnings
第 1 步:克隆仓库并准备环境
git clone https://gitcode.com/GitHub_Trending/eg/ego-lite cd ego-lite/package/ego-browser npm ci第 2 步:仿照现有站点搭建目录
在skills/ego-browser/learnings/下新建你的站点目录,例如learnings/my-site/。目录名将成为站点的id——manifest 中的id字段必须与目录名完全一致,否则校验直接失败。
第 3 步:编写 manifest.json
manifest 是"说明书",告诉运行时应匹配哪些域名、有哪些工具。核心字段:
| 字段 | 作用 |
|---|---|
id/name | 站点标识(须等于目录名)与展示名 |
domains[] | 域名匹配列表,支持*.example.com通配 |
notes[] | 指向notes/*.md的笔记路径 |
nodeTools{} | Node 侧工具:路径必须是tools/*.js,并声明callable导出函数名 |
browserTools{} | 浏览器侧工具:路径必须是browser-tools/*.js |
每个工具还需声明description、args(参数名 + 类型 + 是否必填)和returns。类型仅限string / number / integer / boolean / array / object。
第 4 步:写笔记与工具函数
notes 是"地图"不是"日记":只记录页面结构、稳定选择器(CSS / ARIA / 文本)、导航方式和边界情况。参考 x-com 的 overview.md,它清晰列出了data-testid选择器与防误点模式。
硬性红线(校验器会扫描你的所有文件):
- ❌ 禁止出现像素坐标、密钥/token、任务流水账
- ❌ 禁止临时快照引用(如
@12或ref=12这类编号),必须用稳定选择器 - ✅ 只捕获站点的"形状",而非你某次任务的经过
第 5 步:本地校验
cd package/ego-browser npm run validate:site-skills校验规则全部实现在 validate-learning-format.ts,会逐一检查:manifest 合法性、域名格式、notes 路径、工具文件是否存在、callable函数是否真实导出、是否混入临时引用。校验逻辑本身可参考 src/learning/index.ts 中工具如何被加载与调用。
提交 PR 前的自检清单
按照 CONTRIBUTING.md 的流程,你的 PR 需要满足:
- 分支与提交:从
main拉分支,提交信息遵循 Conventional Commits,scope 用站点名,如feat(learnings/my-site): add search tool - 最小验证门槛:
npm test全绿;涉及 Learnings 改动时npm run validate:site-skills通过 - PR 描述三件套:改了什么(一句话)、为什么改、如何验证(附运行示例或截图)
- 加上 release-note 标签(如
feat),方便自动生成分组发布说明 - 注意:CI 会在每次 PR 上自动执行
npm test+validate:site-skills,本地先跑过可避免往返 🚀
常见踩坑一览
| 报错 | 原因 |
|---|---|
manifest id must match directory name | id字段与文件夹名不一致 |
path must be a relative tools/*.js path | Node 工具没放在tools/下或路径写了绝对路径 |
missing Node callable | 工具文件的导出函数名与 manifest 中callable不匹配 |
contains temporary snapshot ref | 代码或笔记里写了@12这类临时引用,请换稳定选择器 |
结语
一个站点 Learnings 通常只有几个文件、百来行代码,却是让 ego-lite 变得更聪明的真实贡献。挑一个你天天用的网站,把"地图"画出来——你的第一个 PR,就从这里开始 🎉
【免费下载链接】ego-liteThe fastest browser for AI agents to run browser automation, built for sharing your logged-in browser state with your AI agents, like Codex or Claude Code, without disturbing you. Zero cost, zero config.项目地址: https://gitcode.com/GitHub_Trending/eg/ego-lite
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考