ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

用 agent-browser 打通 Slate v2 iOS 模拟器 Safari 证明链:一次诚实的移动端 IME 验证 Spike 记录

2026/9/16 10:23:19 拓冰建站 浏览量
用 agent-browser 打通 Slate v2 iOS 模拟器 Safari 证明链:一次诚实的移动端 IME 验证 Spike 记录 用 agent-browser 打通 Slate v2 iOS 模拟器 Safari 证明链一次诚实的移动端 IME 验证 Spike 记录【免费下载链接】plateRich-text editor with AI and shadcn/ui项目地址: https://gitcode.com/GitHub_Trending/pl/plate导读本文围绕docs/plans/2026-04-11-slate-browser-agent-browser-ios-setup-proof.md记录的一次最小化、可复现的 iOS Simulator Safari 自动化证明实验展开在本地运行 Slate v2 示例页的前提下使用agent-browser打开 iOS 模拟器中的 Safari、解析路由、抓取可交互控件快照以此验证移动端浏览器传输层是否真实可用。读完本文你将掌握这套pnpm proof:agent-browser:ios:*证明命令的用途与手动执行流程理解为什么本次 spike 结论是传输真实、行为仍红以及为什么最终证明路线要从agent-browser转向直接 Appium iOS Safari。为什么把 iOS Simulator Safari 放在最前面该证明文档开篇就明确了选题优先级对应原文档Why This First一节核心理由有三条agent-browser已经能在本地打开 iOS 模拟器里的 Safari说明存在一条可走的自动化入口不必从零搭建iOS Simulator Safari 比桌面端模拟更接近移动 Web 的真实环境尤其是对 IME输入法行为验证而言桌面 Chromium 的自动化结果不能替代真实移动浏览器的组合输入语义它是比agent-device更合适的当下移动浏览器 spike 对象——agent-device面向 App/设备级自动化而当前阶段只需要先证明浏览器传输这一步。需要说明的是本次实验发生在独立的slate-v2仓库中该证明文档 frontmatter 的source_repos记录了plate-2、slate-v2、agent-browser三个仓库而当前 plate 仓库中的 docs/plans/2026-04-11-slate-v2-ime-mobile-browser-file-ledger.md 等计划文档完整记录了这批证明行的演进过程可作为本实验的横向佐证。这次 spike 证明了什么实验以本地运行的 Slate v2 示例页http://localhost:3100为目标具体验证动作与结果如下对应原文档What Was Proved步骤动作结果1agent-browser打开 iOS Simulator Safari访问本地 placeholder IME 示例带?debug1成功打开2agent-browser返回解析后的 URL成功返回3agent-browser snapshot -i抓取交互控件返回了可操作的控件列表Undo、Redo、Copy JSON、Copy Artifact以及文本框textbox围绕这三步可以得出两个阶段性的、诚实的结论iOS Simulator Safari 传输层是真实的——agent-browser确实能够驱动模拟器浏览器访问本地 Slate 示例当前 IME 调试面在该传输上可达——snapshot -i能枚举出 placeholder 示例暴露的调试控件撤销/重做/复制 JSON/复制产物说明?debug1调试面已经在移动浏览器里渲染出来了这个 spike 值得被正式化——它不是偶然的手工操作而是可以被命令化的证明路径。关于?debug1调试面docs/plans/2026-04-11-slate-v2-ime-mobile-browser-file-ledger.md 中有更详细的描述IME 调试覆盖层debug overlay会通过?debug1输出 Slate selection、DOM selection、placeholder shape、事件流和 HTML 快照这正是snapshot -i能抓到丰富控件信息的基础。现在能干净地断言什么原文档What Is Proved Cleanly Now一节给出了明确的证据边界历史性的 setup/open 证明已经存在入口是pnpm proof:agent-browser:ios:local这条打包命令iOS provider 在原理上是一个真实可用的传输层。但同一节也给出了一个必须记住的反向结论在当前 plate 仓库对应的本地 Slate 示例路由上不要依赖现有的agent-browseriOS provider 做选择器级证明。原因很具体它能打开 URL但经常只暴露 Next 的 shell/文档脚手架而不是真正挂载好的示例编辑器这导致在这些路由上做基于选择器selector的断言不可信对于这些本地路由直接 Appium iOS Safari 反而是更合适的 setup 传输层。换句话说这个文档记录的不只是成功而是成功打开 断言不可信的混合状态这是证明程序中非常重要的诚实边界。新增的操作面四条 proof 命令在slate-v2仓库中本次 spike 新增了四条打包证明命令对应原文档Added Operator Surfacepnpm proof:agent-browser:ios:localpnpm proof:agent-browser:ios:placeholder-input:localpnpm proof:agent-browser:ios:inline-edge-input:localpnpm proof:agent-browser:ios:void-edge-input:local这些命令假设本地服务器已经在运行其执行流程固定为四步在 iOS Simulator Safari 中打开指定的示例打印解析后的 URL打印一份初始的交互式快照interactive snapshot如有需要交给人工进行手动交互。默认目标路由是placeholder?debug1。从 docs/plans/2026-04-11-slate-v2-ime-mobile-browser-file-ledger.md 可以看到这四条命令分别对应 placeholder IME、inline-edge IME、void-edge IME 三个核心场景行属于整个 IME/mobile/browser 证明矩阵在 iOS 方向的打包入口。手动复现步骤与可选覆盖参数原文档Manual Setup给出了完整的两步复现流程。第一步先启动本地站点在slate-v2仓库目录下cd /Users/zbeyens/git/slate-v2 PORT3100 pnpm serve第二步另开一个终端执行证明命令cd /Users/zbeyens/git/slate-v2 pnpm proof:agent-browser:ios:local可选覆盖参数原文档还提供了三个可覆盖的环境变量与直接调用底层脚本的示例AGENT_BROWSER_IOS_DEVICEiPhone 17 Pro \ AGENT_BROWSER_DEBUG_QUERYdebug1 \ bash ./scripts/proof-agent-browser-ios-local.sh 3100 placeholder参数说明参数含义示例值AGENT_BROWSER_IOS_DEVICE指定 iOS 模拟器设备型号iPhone 17 ProAGENT_BROWSER_DEBUG_QUERY附加到路由上的调试查询串debug1脚本位置参数3100本地服务端口3100脚本位置参数placeholder目标示例名placeholder/inline-edge/void-edge等这种方式把设备型号、调试参数、端口、示例路由解耦成可配置项便于在同一套脚本下快速切换不同示例做横向验证。诚实的当前结论够用但不够宣称原文档Current Take对本次 spike 给出了精确的边界判断足够支撑的本次结果足以作为下一步传输架构工作的依据。不能宣称的三个明确红线不能宣称已有稳定的 iOS 自动化证明通道不能宣称已有稳定的输入后产物捕获post-input artifact capture不能宣称iOS 上 IME 完全对齐full IME parity。这三点红线与 docs/plans/2026-04-11-slate-v2-ime-mobile-browser-file-ledger.md 中记录的 iOS 行状态完全一致在文件台账里placeholder 与 no-FEFF placeholder 两行被标记为setup-green / behavior-red即能打开页面、但输入行为断言仍红而 inline-edge 与 void-edge 行则是直接绿色。这说明本次 spike 的打开成功与输入行为证明成功是两个必须严格区分的事实。后续发现问题在工具侧不在页面侧原文档Follow-On Finding给出了本次 spike 最重要的诊断结论当前本地问题大概率是工具侧tool-side问题而不是页面侧page-side问题。证据链非常清晰agent-browser -p ios能够打开本地路由但批量执行click #placeholder-ime/type #placeholder-ime ...可能失败因为挂载后的编辑器节点从未出现在 DOM 中它只渲染出了 Next 的 shell 文档在同一台机器上直接使用 Appium iOS Safari 加载完全相同的路由可以读到真实的编辑器 HTML。也就是说两条工具链面对同一路由时行为不一致agent-browser看不到挂载的编辑器节点Appium 能看到。文档还记录了该问题的上游跟踪项vercel-labs/agent-browser仓库的 issue #1221本文按规范不展开外部链接读者可在该仓库中检索该编号。该问题的完整影响面在 docs/plans/2026-04-11-slate-v2-ime-mobile-browser-file-ledger.md 的 iOS Safari 行有补充描述agent-browseriOS provider 在这些路由上经常只暴露 Next shell 而没有编辑器节点因此不应被当作行为证据。定位与分类结合文件台账中的证据分级可以把这个发现归类为传输真实agent-browser能打开 iOS Simulator Safari 并访问本地路由setup-green行为不可信在挂载节点缺失的前提下任何基于选择器的点击/输入断言都不可信behavior-red / 工具侧阻塞已知阻塞在vercel-labs/agent-browser#1221修复之前该传输对本地 Slate 路由应视为已知工具侧阻塞不应再作为本证明程序的默认 iOS setup 通道。下一个诚实步骤转向直接 Appium iOS Safari原文档Next Honest Step给出了明确的后续路线在本地路由的 setup 真实性上改用直接 Appium iOS Safari。agent-browseriOS 通道降级为上游 bug 参考保留到以下两个条件满足为止路由打开后挂载的编辑器节点稳定出现选择器动作能作用于真实页面而不是 shell 文档。这条转向路线不是凭空拍板而是有同级证据支撑的。参见同目录下的 docs/plans/2026-04-11-appium-android-setup-proof.md在 Android 侧Appium uiautomator2驱动已经证明能够创建真实的 Chrome 会话、导航到本地 Slate 示例http://10.0.2.2:3100/examples/placeholder?debug1并读回页面内容且通过先点击编辑器根节点 → 把 DOM 选择折叠到前导零宽文本叶 → 再发送文本输入并读回调试覆盖层这套可复用原语解锁了 placeholder / inline-edge / void-edge 三行的直接证明。同样的直接 Appium 作为 setup 真相源思路正在被复制到 iOS 方向。从整体架构看这次 spike 的结论也直接喂给了 docs/plans/2026-04-11-slate-browser-transport-architecture-plan.md该计划明确将浏览器移动端传输层排序为Playwright 桌面/浏览器 → Appium Android Chrome →agent-browseriOS Simulator Safari并且强调不要试图让各传输层看起来对称——本次 iOS spike 恰恰证明了这一点agent-browser与 Appium 在同一路由上表现不同强行对称抽象只会污染证明核心。从本次 spike 中可以沉淀的方法论把这份证明文档放在整个浏览器移动端证明体系里看可以沉淀出几条对测试工程有普适价值的经验能打开页面和能断言行为是两件事。本次 spike 中agent-browser打开成功但选择器断言失败说明 setup 证明与行为证明必须分开分级对应文件台账里的setup-green / behavior-red分级法。工具链差异必须在同一路由上直接对比。agent-browser与 Appium 在同一台机器、同一路由上结果不同这种对比才是定位工具侧 vs 页面侧问题的正确姿势。证明程序要保留反向结论。文档没有只写成功而是把哪些结论现在还不能宣称明确列为红线避免后续程序被过度的乐观预期带偏。已知阻塞要显式标记并给出上游跟踪项。将vercel-labs/agent-browser#1221作为已知工具侧阻塞记录在案而不是默默绕过保证了证明链的可追溯性。延伸阅读2026-04-11-appium-android-setup-proof.mdAndroid 侧的同类 setup proof含pnpm proof:appium:android:*命令与零宽选择折叠原语2026-04-11-slate-v2-ime-mobile-browser-file-ledger.mdIME/移动/浏览器证明行的完整台账含每条 iOS 行的当前状态与证据分级2026-04-11-slate-browser-transport-architecture-plan.md基于本次 spike 结果规划的传输架构共享证明核心 浏览器包 原生/设备包2026-04-12-ios-safari-broader-composition-focus-external-evidence-plan.md本次 spike 之后更广泛的 iOS Safari 组合输入/焦点外部证据计划2026-04-12-android-keyboard-feature-external-evidence-plan.mdAndroid 键盘特性自动纠错/滑行/语音输入的外部证据计划属于同一证明体系在 Android 方向的延伸。【免费下载链接】plateRich-text editor with AI and shadcn/ui项目地址: https://gitcode.com/GitHub_Trending/pl/plate创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考