<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Vision on All about Raspberry Pi</title><link>https://hugozhu.site/tags/vision/</link><description>Recent content in Vision on All about Raspberry Pi</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 29 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://hugozhu.site/tags/vision/index.xml" rel="self" type="application/rss+xml"/><item><title>用 Vision + macOS 自动化消灭 Browser MCP 的最后一个手动断点</title><link>https://hugozhu.site/post/2026/315-vision-macos-browsermcp-autoconnect/</link><pubDate>Wed, 29 Jul 2026 00:00:00 +0000</pubDate><guid>https://hugozhu.site/post/2026/315-vision-macos-browsermcp-autoconnect/</guid><description>&lt;p&gt;凌晨两点，我的 Agent 又停了。&lt;/p&gt;
&lt;p&gt;不是模型挂了，不是网络断了，不是 Token 用完了。是 Browser MCP 的 WebSocket 连接断了，而那个该死的 Chrome 扩展弹窗里，「Connect」按钮正安静地等着有人去点一下。&lt;/p&gt;
&lt;p&gt;我在跑 &lt;code&gt;--watch&lt;/code&gt; 模式——Agent 监控一个内部系统，页面一变就自动抓取数据、做分析、写报告。整条链路全自动，唯独 Browser MCP 的连接需要手动点。每次断连，我就得从床上爬起来，点开 Chrome 工具栏那个小图标，点一下 Connect。&lt;/p&gt;
&lt;p&gt;在 &lt;a href="https://hugozhu.site/post/2026/312-browser-automation-eight-tiers/"&gt;Agent 操作浏览器的九条路线&lt;/a&gt; 里，我把 Browser MCP 归到「真实浏览器 + 扩展 + CDP + MCP」那一类，给了它四颗星的企业推荐度。但那篇文章没写的是： &lt;strong&gt;它有一个致命的手动断点，而这个断点在自动化场景下足以毁掉整条链路。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这篇文章记录我怎么用 Vision 大模型 + macOS 原生自动化，把这个断点彻底消灭。不是 Demo，是从 v1.0 迭代到 v1.4.2、踩了六个坑之后的生产方案。&lt;/p&gt;
&lt;p&gt;值得一提的是：整个项目的所有代码——从第一行 &lt;code&gt;screencapture&lt;/code&gt; 调用到最后的 LaunchAgent plist——都是 Opus 4.8 写的。我做的事情是描述需求、测试、报错、再描述。这个过程本身就是一个有趣的发现：当你把「我需要一个能自动点击 Chrome 扩展按钮的脚本」这种模糊需求扔给一个足够强的模型，它给出的第一版方案往往方向正确但细节全错——而每一处「错」的背后，都藏着一个 macOS 平台特有的坑。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://hugozhu.site/img/2026/vision-macos-browsermcp-autoconnect.png"&gt;&lt;img src="https://hugozhu.site/img/2026/vision-macos-browsermcp-autoconnect-thumb.jpg" alt="Vision + macOS 自动化消灭 Browser MCP 手动断点"&gt;&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>