乐于分享
好东西不私藏

AI操作浏览器又贵又不稳定?我做了一个CLI记忆层:一次成功,无限复用

AI操作浏览器又贵又不稳定?我做了一个CLI记忆层:一次成功,无限复用

搞 AI 研发的,需要全网追踪最新的开源项目🔍?

做自媒体的,需要高频刷新各大平台的热点榜单📈?

还是做业务的,每天要登录好几个后台系统扒取数据报表📊?

这些繁琐的网页浏览工作,理论上只要一句话,Agent 就应该能帮你全部搞定。

但现实中,让 Agent 去同一个网站执行相似的任务,它的表现往往像个完全没来过的新手🤦‍♂️。你想让它查个资料,它常常迷失在无尽的超链接里;想让它填个表单,它总是找不到隐藏的下拉框;想让它盯个动态,它每次都要重新摸索一遍页面的 DOM 结构。

Agent 就像一个永远记不住 WiFi 密码的室友,每次都要你重新念一遍🔄。

前几天,我想让 Agent 帮我查一下 B 站某位 UP 主的最新视频数据📺。我以为这是一句话的事,结果却变成了一场血压飙升的在线教学💢。

一开始,它不走正道,试图用通用的搜索引擎去搜,结果全是过时的网页快照。

“你直接进 B 站搜。”

进了 B 站,它又在首页迷路了,找不到 UP 主的房间🚶。

“不是这个,你点 UP 主头像进去。”

好不容易进了主页,它又瞎转悠,点了半天其他标签页。

“点投稿,按时间排序。”

就这样,在我的反复纠正下,它勉强完成了任务。但一看时间,10 分钟过去了⏱️。更要命的是,仅仅这一次查询,就吃掉了将近 150k 的上下文窗口。当上下文被大量消耗时,模型的推理能力会明显衰减。

更糟糕的是,下周如果我再让它查一次,同样的事情还要再来一遍😫。

那天查完视频后我坐在电脑前,意识到一个问题:我不是在让 Agent 帮我查视频,我是在一遍遍地教它 “怎么使用 B 站”。

Agent 缺的不是知识,而是操作的 “程序性记忆”🧠。

人类的记忆分两种。一种是 “知道是什么”(陈述性记忆),比如你知道引力波的概念;另一种是 “记住了怎么做”(程序性记忆),比如骑自行车、游泳🏊,你一旦学会,身体就会自动平衡,不需要每次重新推导。

现在的 Agent 方案已经能解决很多问题,但它们赋予 AI 的大多是陈述性的知识。我们依然缺乏一套很好的机制,去帮 Agent 在外部沉淀出 “怎么操作特定网页” 的程序性记忆。这就导致单次操作极度消耗上下文,复杂的长链路更是经常崩溃💥。

现有的自动化工具,还差了最后一步🚶‍♀️

现在操作浏览器的工具主要分为两层。

底层是 playwright 这样成熟稳定的自动化框架🧰。在它之上,playwright-cli 让 Agent 能够通过命令行直接调用浏览器。

有了这两个工具,Agent 确实能操作浏览器了,但依然没有解决 “记忆” 的问题。每次给它派任务,它还是得从头开始分析网页。

开源社区有一种流行方案:将软件或网站 CLI 化,即各种预置命令库,试图帮 Agent 把网站的操作提前打包好📦。我也尝试过这种方案,但很快发现它无法覆盖我的需求。

互联网是无限的🌐,预置库的覆盖永远是有限的。比如,我想让 Agent 查看知乎上我最新文章的数据情况:阅读量、赞同数、评论数、收藏趋势📝。没有任何预置库会内置如此个性化的指令。

而如果我想自己去自建这个命令,我需要去阅读底层源码、学习工具的协议规则,非常不方便❌。

这让我有了一个新思路💡。

WebSculpt:一次成功,无限复用♾️

我真正需要的,不是把整个知乎变成一个通用的 API,而是把 “我查知乎数据” 的这个习惯给沉淀下来。

基于这个想法,我开发了 WebSculpt。它本质上是一个浏览器自动化的 CLI 命令记忆层。简单来说,它的作用就是:把 Agent 费劲跑通的一次操作,固化成可以随时调用的本地命令⚙️。

WebSculpt 的安装很简单,只需要两行命令(你也可以直接把我的 GitHub 地址 发给 Agent,让它自己完成安装):

这两行命令的本质,不仅仅是装了个工具,而是向你的 Agent 植入了三个协作 Skill🧩。它们有着清晰的分工,指引着 Agent 的操作方向:

    你可以通过下面的工作流,直观感受一下加入记忆层后,Agent 的操作会有什么根本性的不同:

    1. 探索与沉淀(Explore & Capture)🔍→📥

    第一次: “帮我查一下知乎热榜。”

    收到指令后,Agent 遵循 websculpt-explore skill,首先检查本地记忆库:

    列表里也许有 github/list-trending 等其他沉淀好的命令,但没有获取知乎热榜的。于是,Agent 自动打开浏览器,开始尝试解析页面、寻找热榜元素、测试验证。几分钟后,它成功拿到了数据✅。

    此时,Agent 会询问:“我已经跑通了路径,是否需要将这段经验沉淀为 zhihu/get-hot 命令?”

    “确认沉淀。”

    当初 Agent 折腾半天跑通的路径,此刻已经变成了一个极其精简的、可以直接通过终端调用的命令资产:

    2. 零成本无限复用♻️

    第二次: “帮我查一下知乎前 3 的热榜数据。”

    几天后,当你再次需要这个数据。Agent 再次执行 websculpt command list,这次它发现了 zhihu/get-hot。于是它毫不犹豫地直接调用:

    屏幕闪烁了一下,数据秒级返回⚡。

    这一次,没有漫长的 DOM 分析,没有盲目的点击试错。零 Agent 思考时间,零额外 Token 消耗,纯代码执行,结果极其稳定。不仅是 Agent 可以调用,你也完全可以随时在自己的终端里手动敲入这行命令,获得完全一致的结果💻。

    3. 纯净上下文:Scope 机制✨

    随着日常使用,你的命令库里可能会积累几十甚至上百个命令。为了防止过多的命令干扰 Agent 的判断🧠,降低它选择正确命令的准确性,WebSculpt 支持 Scope 机制(项目级白名单)。

    手动操作时,你可以在当前项目目录执行如下命令,建立纯净的上下文:

    执行完毕后,原本全局可见的命令就被隔离了。此时如果执行 websculpt command list,列表将不再显示任何全局命令。接着,你可以将需要的命令加入白名单:

    配置完成后,当你再次执行 websculpt command list,列表里就只会精准展示刚才添加的知乎相关命令,屏蔽了其他所有无关噪音🚫。

    但在真实使用中,你完全不需要去记这些繁琐的命令📝。 你只需要直接和 Agent 说:“当前这个项目我只需要 websculpt 中知乎相关的命令。” Agent 就会自动加载 websculpt-scope skill,替你完成 init 和 add 的配置。当它处理该项目的任务时,绝不会看到 B 站或 GitHub 的命令,从而保持了极致纯净的上下文。


    天然复用本地登录态(CDP)🔐

    除了记忆复用,WebSculpt 在基础设施层面还解决了一个核心痛点:登录态。

    国内极具价值的信息几乎都在站内(比如知乎、B 站、各种公司的后台系统),必须登录才能查看。作为用户,大多数人并不愿意把自己的账号密码或 Cookie 交给第三方的云端 API🚫。

    WebSculpt 通过 CDP(Chrome DevTools Protocol)直接连接你本地的 Chrome 浏览器。这就意味着它天然复用你的登录态🔑。这种 “本地 CLI + 本地浏览器” 的组合,是兼顾自动化与保护隐私最合理的边界🛡️。

    约束 Agent 的边界:水面下的状态机⚙️

    WebSculpt 的日常使用非常简单。但为了保证这种 “无限复用” 的稳定,水面下的执行逻辑其实设计了一套的约束机制。

    最核心的设计,是将过程拆分为 explore(探索) 和 capture(沉淀) 两个严格分离的阶段。这就像是 “试驾”🚗和 “量产”🏭的区别。

    在 explore 阶段(试驾),允许 Agent 犯错❌。它可以点错按钮,可以走弯路,目标只有一个:把这条路跑通。但在 capture 阶段(量产),要求极度严谨✅。探索允许失败,但沉淀必须保证质量。

    为了控制 Agent 在这个过程中不迷路,底层的核心机制是一个 Harness 状态机

    如果不加约束,Agent 经常会 “自由发挥”🚀:跳过关键步骤、自作主张简化流程。WebSculpt 利用状态机,通过 explore assess(评估探索结果)和 capture status(检查沉淀状态)等关键节点来驱动整个过程。Agent 只有通过了这些前置的验收门槛(填入证据、通过校验、跑通测试),状态机才会允许它进入下一步,从而从根本上杜绝了交付残缺代码的可能🚧。

    结语💬

    梳理 WebSculpt 逻辑的过程,其实也是我重新思考人与 AI 关系的过程。

    一开始,我觉得把常用的网站封装成 CLI 就够了。但最后我发现,每个人对数据的诉求千差万别。不是网站需要被 CLI 化,而是你使用浏览器的 “业务习惯” 需要被 CLI 化。 工具应当记住人的成功经验,而不是让人去适应工具的预设🧑‍💻。

    这也是为什么在文章开头 B 站的那段经历里,那 10 分钟的折磨是不可避免的 —— 因为 “先点什么、后看什么、按什么排序”,这是人的业务经验。

    AI 模型再强大,它的强项在于理解 DOM、编写脚本、执行点击;而定义一条有价值的数据获取路径,依然需要人的经验去引导🧭。把这条经验喂给 AI,并固化下来,这才是完成自动化闭环的关键。

    AI 时代的稀缺资源,不是算力⚡,而是 “用好 AI、并知道如何让 AI 沉淀业务逻辑的人”👨‍🎓。

    如果你也需要 Agent 帮你高频操作浏览器,并且受够了同一个网站每次都要重新教一遍的折磨😩,欢迎试试 WebSculpt。

    • GitHub:github.com/bqw1013/WebSculpt
    • 安装命令:npm install -g @playwright/cli@^0.1.8 websculpt