<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mohit Rai</title>
    <description>The latest articles on DEV Community by Mohit Rai (@mohsemohit).</description>
    <link>https://dev.to/mohsemohit</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3837976%2Fb724bed6-43fc-4c82-96e1-1cbaf4b32d97.jpg</url>
      <title>DEV Community: Mohit Rai</title>
      <link>https://dev.to/mohsemohit</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mohsemohit"/>
    <language>en</language>
    <item>
      <title>Browser Agents Weren't Built for the Web They Use: Why We Built Wizang EYES</title>
      <dc:creator>Mohit Rai</dc:creator>
      <pubDate>Sat, 08 Aug 2026 14:56:00 +0000</pubDate>
      <link>https://dev.to/wizangai/browser-agents-werent-built-for-the-web-they-use-why-we-built-wizang-eyes-2jcl</link>
      <guid>https://dev.to/wizangai/browser-agents-werent-built-for-the-web-they-use-why-we-built-wizang-eyes-2jcl</guid>
      <description>&lt;p&gt;Over the past year, everyone has tried to build autonomous browser agents. &lt;strong&gt;Most of them break in production.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you’ve built agents using &lt;strong&gt;Puppeteer&lt;/strong&gt;, &lt;strong&gt;Playwright&lt;/strong&gt;, or &lt;strong&gt;Selenium&lt;/strong&gt; combined with an &lt;strong&gt;LLM&lt;/strong&gt;, you know the frustration:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Vision-based perception&lt;/strong&gt; — sends high-res screenshots to GPT-4o. It’s slow (1.5s+ per frame), costs \$0.05–\$0.15 per step, misses offscreen state, and fails when bounding boxes jitter.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ARIA snapshots&lt;/strong&gt; - dump massive 20,000+ token accessibility trees into the context window. Your prompt overflows, costs explode, and 90% of the payload is DOM noise that has zero interactive value.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Raw HTML extraction&lt;/strong&gt; - crashes token budgets instantly and chokes the model on CSS classes, SVG paths, and minified scripts.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &amp;gt; The web was engineered for human eyes and browser rendering engines. “It was never designed for machine perception.”
&lt;/h3&gt;

&lt;p&gt;We spent the last few months asking a fundamental question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What is the minimal, deterministic mathematical representation of a webpage that an AI agent needs to act with 99.9% reliability?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The answer became Wizang EYES.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7cpjmwbtuey0nrzn9f55.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7cpjmwbtuey0nrzn9f55.webp" alt=" " width="640" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Perception Problem in Numbers
&lt;/h2&gt;

&lt;p&gt;When an AI agent navigates a page like Hacker News or Amazon:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Raw HTML:&lt;/strong&gt; ~150,000 characters (~35,000 tokens).&lt;br&gt;
&lt;strong&gt;2. ARIA Accessibility Tree:&lt;/strong&gt; ~24,000 tokens of nested role hierarchies.&lt;br&gt;
&lt;strong&gt;3. Wizang EYES Semantic Map:&lt;/strong&gt; 1,338 tokens containing exact &lt;code&gt;(x, y)&lt;/code&gt; click coordinates, semantic roles (&lt;code&gt;button&lt;/code&gt;, &lt;code&gt;link&lt;/code&gt;, &lt;code&gt;input&lt;/code&gt;), and normalized visible text.&lt;/p&gt;

&lt;p&gt;That is an &lt;strong&gt;80% to 94%&lt;/strong&gt; token reduction with zero loss of interactive fidelity.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;{&lt;br&gt;
  "url": "https://news.ycombinator.com",&lt;br&gt;
  "element_count": 29,&lt;br&gt;
  "tokens": 1338,&lt;br&gt;
  "elements": [&lt;br&gt;
    { "t": "link", "tx": "Hacker News", "x": 130, "y": 12 },&lt;br&gt;
    { "t": "input", "tx": "Search", "x": 48, "y": 457 },&lt;br&gt;
    { "t": "button", "tx": "Submit", "x": 471, "y": 12 }&lt;br&gt;
  ]&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Machine-Native Perception Architecture
&lt;/h2&gt;

&lt;p&gt;Wizang EYES is not another browser wrapper or scraper. It is infrastructure:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Deterministic Coordinate Grounding:&lt;/strong&gt; Every interactive element is mapped to page-level viewport coordinates &lt;code&gt;(x, y)&lt;/code&gt; in a single sub-20ms JS extraction pass.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Multi-Frame Layout Normalization:&lt;/strong&gt; Iframes, shadow DOMs, and nested layers are normalized into a unified spatial frame.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Sub-Millisecond Context Recycling:&lt;/strong&gt; A warm pool of headless Chromium instances recycles execution contexts to eliminate cold-boot penalties.&lt;/p&gt;

&lt;p&gt;If you are building browser agents, web automation workflows, or autonomous QA testers, we’re opening up early access for design partners.&lt;/p&gt;

&lt;p&gt;API Docs: &lt;a href="https://wizang-eyes.onrender.com/docs" rel="noopener noreferrer"&gt;Here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>agents</category>
      <category>llm</category>
    </item>
  </channel>
</rss>
