浏览器 agent 页面失效竞态怎么解?开发者给出 control epoch 方案
OyaAI · reddit · 2026-10-29
一位开发浏览器(人类与 agent 共享同一批标签页)的工程师分享了最费设计精力的问题:页面陈旧性(staleness)。Agent 读取页面后决定点击节点 42,但点击落地时可能弹出了模态框、用户已接管或页面已跳转,节点 42 已是错误目标。
他们的解法:每个 agent 调用携带 control epoch(当前谁在驱动标签页)和计划计算时的页面 revision。如果用户接管或文档已变化,调用直接返回 stale target 错误,agent 必须重新读取页面,绝不操作当前位置上碰巧存在的元素;开、选、关标签页只允许人类操作,agent 只能准备,提交动作由人完成。
作者坦承代价是更多往返通信,agent 要把 stale 当作正常结果而非异常;收益是避免了无人察觉的静默错误点击——那是要等表单已提交才发现的故障。他也在征集 Playwright/CDP 用户对快照 diff、锁定人类输入或接受竞态等做法的经验。
「编程与Agent」频道最新
- Vercel CI 发布:零配置自动跳过无关任务,快 2-6 倍 — cramforce · 2026-10-29
- AlsoAsked MCP Server:让 Claude 调用 Google「大家还在问」数据 — modelcontextprotocol · 2026-10-29
- Lobsters MCP Server:让 Claude 直接读取 lobste.rs 技术讨论 — modelcontextprotocol · 2026-10-29
- Shopify 新版发布:让 ChatGPT、Claude 直接开店下单 — jh3yy · 2026-10-29
- lydiahallie:动态工作流不必上百子代理,10 个就够用 — lydiahallie · 2026-10-29
- 开源 ymcp:让 Claude Code 全自动消化 YouTrack 工单开 PR — xlsoftware · 2026-10-29