site-memory
为浏览器自动化 Agent 注入持久记忆,让重复访问的网站越用越快,综合成本降低 70%-90%
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
为浏览器自动化 Agent 注入持久记忆,让重复访问的网站越用越快,综合成本降低 70%-90%
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你的 AI Agent 每次访问 Booking.com 都要从零摸索,35 步操作、近 8 分钟才能完成订酒店。但第二次访问时,它已经记住网站结构,只需要 5 步、30 秒直奔目标。这不是科幻——这就是 site-memory 正在做的事。
Browser Agent(浏览器自动化 Agent)是当下 AI 应用落地最活跃的领域之一:从自动填表、数据抓取,到复杂的多步操作,Agent 正在接管大量重复性浏览器任务。然而,现有的 Agent 实现存在一个根本性缺陷——没有持久记忆。
每次运行,Agent 访问同一个网站,都要重新分析页面结构、重新学习按钮位置、重新判断最佳操作路径。这造成了双重浪费:GPU tokens 被消耗在「重新发现」早已知道的信息上,任务执行时间也成倍增长。对于结构稳定、内容更新频率低的网站(如预订平台、电商后台、数据报表系统),这种重复劳动尤其没有意义。
site-memory 的出现,正是为了解决这个「每次都是第一次」的问题。它是一个轻量级的持久记忆框架,专门为浏览器自动化 Agent 设计,安装后可以让 Agent 自动学习并记住每个网站的结构知识,越用越快。
site-memory 的设计哲学非常明确——做减法,不做加法。它不定义业务 schema,不接管浏览器驱动,只是安静地在 Agent 的工作流中插入两个关键节点:记忆加载和记忆写入。
第一阶段 Recall(回忆):Agent 在访问网站之前,先运行 build-recall-input.mjs 脚本,将当前任务描述作为查询输入。脚本会遍历 ~/.site-memory/ 目录下的所有记忆文件,通过语义匹配找出与当前任务最相关的笔记——可能是某个网站的导航结构、常用选择器、或者已知的操作陷阱。随后 Agent 读取这些笔记,作为先验知识注入上下文,而不必从零开始探索页面。
第二阶段 Distill(提炼):Agent 完成浏览器任务后,运行 build-distill-input.mjs,将本次任务的操作经验——哪些选择器有效、哪些路径更快、踩过哪些坑——结构化地写入记忆文件。这些经验会以 Markdown 格式存入 ~/.site-memory/,按 topic 分类组织,下次访问同一网站时直接加载复用。
记忆存储采用 Markdown 格式,配合 YAML frontmatter,结构清晰、易于维护。支持的笔记类型包括:reference(选择器、URL 模式、站点结构)、guidance(操作规则、警告信息)、context(跨次运行的上下文约束)、operator(协作偏好)等。
site-memory 在 WebVoyager 基准测试集上进行了系统评估,覆盖 15 个真实网站、50 个任务,每个任务运行 3 轮,共完成 150 次独立运行。
总体效果:第 1 轮到第 3 轮,指令数减少 67%,耗时减少 76%。平均每任务指令数从 10.0 降至 3.2,时间从 139 秒降至 33 秒。
结构稳定的网站收益最大:Booking.com 第 3 轮仅需 5 步/30 秒,相比第 1 轮的 35.7 步/497 秒,指令数下降 86%,时间下降 94%;Allrecipes 从 3.8 步/85 秒降至 1 步/3 秒;Amazon 第 3 轮仅需 2 步/12 秒(vs 第 1 轮 14.7 步/183 秒)。即使复杂如 Google Flights,第 3 轮也实现了 83% 的指令缩减。
这些数据说明:对于真实世界的重复性浏览器任务,site-memory 不仅仅是一个优化,而是一个数量级的效率提升。
site-memory 的代码库极为精简,总共 22 个文件,全部用 JavaScript(ES Module)编写,核心逻辑分布在 6 个脚本中:
memory-core.mjs:记忆文件的核心读写与索引管理build-recall-input.mjs:构建语义检索查询build-distill-input.mjs:构建知识蒸馏写入提示scan-manifest.mjs:扫描记忆目录,生成索引清单read-recalled-files.mjs:按需读取指定记忆文件cdp-proxy.mjs:Chrome DevTools Protocol 浏览器控制代理(内置)项目以 Hermes Skills 格式发布,可以直接通过 npx skills add LittleYier/site-memory 安装到 Claude Code、Gemini CLI、Codex 等主流 Agent 运行时。依赖只有一个——Node.js 22+,无需 Python 环境,无需 GPU,无需 Docker。
内置的 CDP 代理支持 nav(导航)、click(选择器点击)、shot(截图)、snap(无障碍树快照)、eval(JS 执行)等命令,足够覆盖常见浏览器操作场景。当然,也可以搭配已有的 Playwright MCP、browser-use 等工具使用。
site-memory 专注于结构稳定、重复访问的场景,不适合以下情况:单次任务(没有第二次访问,记忆无从积累)、高频变化页面(如实时搜索结果、动态加载内容)、需要登录和会话状态管理的复杂流程(当前版本不处理 cookies/sessions)。此外,记忆的选择器可能随网站更新而失效,项目文档明确建议「用前验证」——每次使用前检查笔记中的选择器是否仍然有效。
site-memory 代表了一个正在浮现的趋势:AI Agent 需要持久化记忆层。随着 Agent 从单次调用走向连续运行,从单任务走向多任务,从玩具场景走向生产环境,如何在任务之间共享和复用知识,将成为下一代 Agent 框架的核心议题。
在 WebVoyager 这样严格的 benchmark 上,site-memory 证明了记忆的价值:不需要更大的模型,不需要更贵的 API,只需要一个简单的持久化层,就能带来数量级的效率提升。随着更多 Agent 运行时(Claude Code、Codex、Gemini CLI)原生支持 skills 加载机制,site-memory 类的基础设施有望成为 Agent 工具链的标配组件。
