
搞 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
夜雨聆风