Memoh浏览器与桌面自动化实战:如何教会AI替你操作Chrome和计算机
【免费下载链接】Memoh✨ The open-source multi-agent platform. Every agent gets its own computer, desktop, network, and long-term memory. You can bring your own key, or host your coding agent like Claude Code, Codex and so on.项目地址: https://gitcode.com/gh_mirrors/me/Memoh
想让 AI 替你打开网页、点按钮、填表单,甚至直接操作整台计算机?开源多智能体平台Memoh让每个 AI 智能体(Agent)都拥有一台专属"云电脑":独立的文件系统、浏览器、桌面和网络,24 小时在线。通过内置的浏览器自动化(Browser Use)与桌面自动化(Computer Use)能力,你可以直接对 AI 说"帮我登录后台导出报表",它会自己打开 Chrome、观察页面、一步步完成操作。
为什么 AI 需要"自己的电脑"
传统大模型只能"说"不能"做":它给你一段操作步骤,剩下的还得你自己点。Memoh 的思路是——给每个 Agent 分配一个隔离的工作区容器(workspace),里面跑着一台虚拟电脑:
- 🖥️独立桌面:Xvnc 虚拟显示,AI 能截屏、点击、输入
- 🌐独立浏览器:有界面的 Chrome,通过 CDP(Chrome DevTools Protocol)受控
- 🧠长期记忆:跨会话、跨平台记住你的偏好
- ⏰定时任务:你合上笔记本,任务照样在跑
这正是 Memoh 浏览器与桌面自动化的基础:AI 不是在"模拟"操作,而是在一台真实电脑上真实地操作。
一步开启:打开 Bot 的 Display 开关
浏览器与桌面工具默认不会注册给 Agent,需要在 Bot 设置中打开Display(显示/桌面)开关:
开启后,该 Bot 的工作区容器会启动 Xvnc 虚拟桌面和有界面 Chrome(CDP 端口9222),Web 端随之出现可视化的 Display 面板,你可以实时看到 AI 的"屏幕"。相关逻辑位于:
- 设置项定义:internal/settings/types.go(
display_enabled) - 桌面服务(Xvnc/RFB + WebRTC 推流):internal/display/service.go
- 前端开关组件:apps/web/src/pages/bots/components/bot-desktop.vue
- 容器内桥接程序(负责监管 Xvnc 与 Chrome 进程):cmd/bridge/
浏览器自动化:AI 如何"看见"并操作 Chrome
开启 Display 后,Agent 会获得两组核心工具(定义见 internal/agent/tool/browser.go):
| 工具 | 作用 | 常用子命令 |
|---|---|---|
browser_observe | 只看不动,观察当前页面 | snapshot(元素快照)、get_content(正文)、screenshot_annotate(带标注截图)、pdf、tab_list |
browser_action | 执行操作 | navigate、click、fill、type、press、scroll、drag、upload、tab_new等 |
这套设计的精髓是"先观察,再行动"(Observe before acting):
- AI 先调用
snapshot,拿到页面上可交互元素的可访问性树和引用(如e12); - 再用这些 ref 去执行
click、fill,而不是瞎猜 CSS 选择器——稳定性大幅提升; - 页面状态变化后再观察一次,形成"观察 → 行动 → 再观察"的闭环。
你:帮我查一下明天北京到上海的航班 AI:browser_action → navigate 打开机票网站 AI:browser_observe → snapshot 获取搜索框 ref AI:browser_action → fill 输入"北京 上海",click 搜索按钮 AI:browser_observe → get_content 读取航班列表并汇总给你截图类观察结果会保存在工作区的.memoh/screenshots路径下,AI 需要时再读取,不会无谓地塞满上下文(见 internal/agent/tool/browser.go 的screenshotSubdir常量)。
桌面自动化(Computer Use):不止浏览器,还能操作整台电脑
浏览器解决不了的问题——原生弹窗、非浏览器应用、拖拽文件——交给Computer Use。它由computer_observe/computer_action两个工具组成(见 internal/agent/tool/computer_a11y.go):
- 👀快照优先:
snapshot通过AT-SPI 无障碍树枚举桌面 UI 元素。无障碍服务由仓库自带的 Rust 小工具a11y-cli提供,位于 crates/a11y-cli/,打包进工作区镜像的/opt/memoh/toolkit/display/bin/a11y-cli; - 🖱️输入回退:当无障碍树够不到目标(如某些原生对话框)时,自动退化为 RFB(远程帧缓冲)原始鼠标/键盘事件,用坐标点击兜底;
- 🎯默认分辨率1280×800(internal/agent/tool/browser.go),坐标即所见即所得。
工具的使用策略写在给模型的提示里(internal/agent/tool/browser.go):浏览器能做的优先走浏览器;Computer Use 是"整桌面兜底"。这套分层设计让 AI 优先选择更稳定、更省资源的路径。
进阶玩法:把 Playwright 接进 AI 的浏览器
如果你有更复杂的批量场景(比如循环采集 200 个页面),可以让 Agent 直接写代码。browser_remote_session工具会把工作区 Chrome 的 CDP 端点暴露出来(127.0.0.1:9222),AI 即可在工作区内用chromium.connectOverCDP启动 Playwright 会话:
create:创建/激活一个标签页会话;status:查看当前所有标签页;close:结束会话。
也就是说,"AI 亲自点鼠标"与"AI 写 Playwright 脚本"两条路线可以混用——GUI 工具负责灵活应变,CDP 代码负责规模化。
新手避坑指南
- 先开 Display 开关:不开启时这些工具根本不会注册,AI 只会回答"我做不到";
- 给它看得见的结果:AI 的截图保存在工作区里,需要图像理解时它可自行读取,不必你在对话里贴图;
- 复杂登录任务:首次登录遇到验证码/滑块时,可借助 Web 端的 Display 面板自己上手接管,之后 AI 会带着会话继续跑;
- 模型建议选带视觉的:浏览器观察、无障碍树、截图理解,搭配支持图像输入的大模型效果最佳;
- 隔离是特性不是缺点:每个 Bot 一台电脑,误操作只发生在容器内,可随时重建,放心让 AI 放手试。
相关模块速查
- 📖 代码地图(架构总览):docs/codebase-map.md
- 🤖 Agent 运行时说明(含 Browser Use / Computer Use):docs/agent-runtime.md
- 🌐 浏览器/桌面工具核心实现:internal/agent/tool/browser.go
- 🖥️ 桌面显示服务(Xvnc/RFB/WebRTC):internal/display/
- 🧩 容器桥接(监管 Xvnc 与 Chrome):cmd/bridge/
- 🏠 工作区容器生命周期管理:internal/workspace/
- ⌨️ 无障碍辅助 CLI(Rust):crates/a11y-cli/
现在,打开 Memoh,给 Bot 打开 Display 开关,然后用一句话试试:"打开知乎,帮我找三篇关于 AI 自动化办公的热门文章并总结"——剩下的,交给它自己的那台电脑吧。
【免费下载链接】Memoh✨ The open-source multi-agent platform. Every agent gets its own computer, desktop, network, and long-term memory. You can bring your own key, or host your coding agent like Claude Code, Codex and so on.项目地址: https://gitcode.com/gh_mirrors/me/Memoh
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考