cerebellum
用 Claude 大模型驱动浏览器自动导航,LLM 作为规划器自主完成网页操作任务
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用 Claude 大模型驱动浏览器自动导航,LLM 作为规划器自主完成网页操作任务
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
项目主页: https://github.com/theredsix/cerebellum
主语言: Python / TypeScript | Stars: 864 | License: MIT
你对着屏幕说:"帮我找一根 10 英尺长的 USB-C 数据线,加入购物车。" 然后你就可以去泡杯咖啡了。几分钟后回来,购物车里已经躺着一根满足条件的线缆。
这不是科幻。这是 Cerebellum 正在做的事——一个用大语言模型(LLM)驱动浏览器自动化的系统。你告诉它目标,它自己规划路径、自己操作鼠标键盘、自己判断"任务完成了没有"。
图1:Cerebellum 在 Google 搜索中自主导航,找到 USB-C 线缆并加入购物车的完整过程
传统的网页自动化依赖预定义的规则和 XPath 定位——网站改版了,脚本就废了。RPA(机器人流程自动化)工具同样脆弱,每次页面结构调整都需要工程师重新维护。
而大语言模型带来了一个本质变化:它能理解网页的结构和意图。给定一个"在维基百科找到中本聪的页面"的目标,LLM 可以分析页面内容、理解可交互元素(按钮、输入框、链接),然后决定下一步该点什么。
Cerebellum 的作者 Han Wang(GitHub @theredsix)从这个洞察出发,于 2024 年 9 月启动了 Cerebellum 项目,核心目标很清晰——用 LLM 作为大脑,让浏览器变成一个可以自主完成复杂任务的智能代理(Agent)。
2026 年 6 月更新:项目已在 README 标注为 depreciated(已废弃),原因是团队认为 Agent Browser Protocol(https://github.com/theredsix/agent-browser-protocol)是更好的替代方案,其在 Online Mind2Web 基准测试中达到了 90% 的得分。
Cerebellum 将整个网页浏览过程建模为一张有向图(Directed Graph):
- 每个节点(Node) 代表一个网页状态——包含页面截屏、所有可见元素(按钮、输入框、链接)的坐标和描述
- 每条边(Edge) 代表一个操作——点击某个坐标、在输入框打字、按键盘快捷键、滚动页面
- LLM 的任务是从当前节点出发,找到一条通往"目标节点"的路径
这个抽象非常优雅:任何网页浏览任务,本质上都是在图上搜索一条路径。LLM 扮演的角色是"导航规划器(ActionPlanner)"——它接收当前页面状态,输出下一步应该执行什么操作。
Cerebellum 的核心是一个循环:
BrowserState图2:Python SDK 端到端示例,AI 自主导航到中本聪的维基百科页面
Cerebellum 定义了一套结构化的浏览器动作枚举(BrowserActionType):
| 动作类型 | 说明 |
|---|---|
left_click | 左键单击(最常用) |
left_click_drag | 左键拖拽 |
right_click / double_click | 右键/双击 |
mouse_move | 鼠标移动 |
type | 在输入框中输入文本 |
key | 键盘快捷键(xdotool 格式,如 ctrl+c) |
scroll_down / scroll_up | 页面滚动 |
switch_tab | 切换浏览器标签页 |
success / failure | 任务终止信号 |
LLM 每次只输出一个动作,并在动作中附上坐标(x, y)和推理过程(reasoning)——这使得整个执行轨迹完全可审计、可复现。
Cerebellum 有两套实现:Python(主要)和 TypeScript(npm 包):
Python 架构(python/src/cerebellum/):
browser.py(14KB):核心逻辑,包含 BrowserAgent、BrowserState、BrowserAction、ActionPlanner 抽象类等planners/anthropic.py(40KB):Anthropic Claude API 的 ActionPlanner 实现,代码量最大,是与 LLM 交互的核心utils.py(4KB):键盘解析(xdotool 格式 → Selenium Keys)、终端暂停等工具函数TypeScript 架构(typescript/src/):
browser.ts(10KB):核心类planners/anthropic.ts(31KB):TS 版 Claude 规划器util.ts:键盘映射等工具| 依赖 | 用途 |
|---|---|
Selenium(selenium>=4.0) | 跨浏览器自动化底层驱动 |
SeleniumBase(>=4.32) | Selenium 高级封装,提供 get_driver() 等便捷方法 |
Anthropic SDK(>=0.30) | Claude API 调用 |
| Pillow + NumPy | 图像处理(viewport 裁剪、鼠标位置标注) |
| Sharp(TS版) | Node.js 图像处理 |
training/ 目录包含一个 Jupyter Notebook(mind2web.ipynb,39KB),用于在 Mind2Web 数据集上训练和评估浏览器代理模型。项目计划未来用浏览器会话数据训练本地模型,路线图中明确列出"Train a local model"和"Integrate local model as ActionPlanner"。
数据集使用 osunlp/Multimodal-Mind2-Web——一个多模态网页浏览轨迹数据集,Notebook 中包含将 Mind2Web 轨迹格式转换为 Cerebellum 格式的工具函数。
@dataclass 定义,TypeScript 版本有完整 .d.tsPython 版本(推荐):
# 安装
pip install cerebellum
# 设置 API Key
export ANTHROPIC_API_KEY='sk-ant-...'
# 运行示例
python examples/google.py
TypeScript 版本:
npm i cerebellum-ai selenium-webdriver
前置依赖:必须先安装对应浏览器的 WebDriver(ChromeDriver / GeckoDriver)。这是唯一比较麻烦的步骤,不同操作系统的安装方式各不相同。
| 维度 | 评分 | 说明 |
|---|---|---|
| 代码规范 | ★★★★☆ | 使用 black(line-length=88)+ ruff 严格检查,mypy 开启 strict 模式 |
| 类型安全 | ★★★★☆ | Python 用 @dataclass(frozen=True) + mypy strict,TypeScript 有完整类型定义 |
| 测试覆盖 | ★★★☆☆ | pytest 配置完整(cov + html report),但实际测试文件内容未深入审查 |
| 文档质量 | ★★★★★ | README 结构完整,Python/TS 各自有独立文档,贡献指南清晰 |
| 架构设计 | ★★★★☆ | 抽象清晰(ActionPlanner 接口 + BrowserAgent 组合),易于扩展新 LLM |
扩展性亮点:ActionPlanner 是一个抽象基类,任何 LLM API(GPT、Claude、Gemini 等)只需实现 plan_action() 方法即可接入。目前仅有 Claude 实现,但架构上完全支持扩展。
Cerebellum 代表了 Web Agent 研究的一个务实路径——不做端到端 RL 训练,而是用 LLM 作为可插拔的规划器,底层用成熟的 Selenium 处理浏览器操作。这种"LLM 规划 + 工具执行"的模式,与 LangChain Agent、AutoGPT 的思路一脉相承,但针对浏览器场景做了深度定制。
从 GitHub 数据看,项目在 2024 年 9 月发布后持续活跃更新(最后 push 为 2026-06-01),collaborators 包括 Han Wang、Darwin Lo、Michael Shuffett、Shane Moran 等多位贡献者。路线图清晰指向"训练本地模型取代 Claude API"——这意味着 Cerebellum 正在从"LLM 工具"向"AI Agent 训练框架"演进。
作者已明确建议:如果想使用生产级的浏览器 Agent,请迁移到 Agent Browser Protocol,该项目的 Mind2Web 得分达到 90%,代表团队的最新技术方向。Cerebellum 本体虽然废弃,但它的设计理念和代码积累已经迁移到了更强大的继任者中。