Workflow
浏览器架构重组
icon
搜索文档
「套壳」的最高境界:OpenAI揭秘Atlas浏览器架构OWL
36氪· 2025-10-31 11:34
核心技术架构 (OWL) - 构建了名为OWL的新架构层,其核心理念是将Chromium浏览器进程与Atlas主应用进程完全分离[5] - 该方法使Atlas主应用能使用SwiftUI和AppKit等现代原生框架构建,而Chromium作为独立服务运行[4][7] - 架构分离带来多项优势:应用启动速度更快、Chromium问题不会导致主应用崩溃、与上游Chromium代码的合并冲突更少、整体开发节奏更快[7] 技术实现细节 - OWL客户端(Atlas)与主机(Chromium进程)通过Mojo进程间通信系统进行通信,公司编写了Swift和TypeScript的Mojo绑定[8] - OWL客户端库提供简洁的Swift API,抽象了Session、Profile、WebView等关键功能,并包含书签、下载、扩展等服务端点[8][10] - 渲染方面,WebView在客户端应用中共享合成容器,通过暴露CALayer的上下文ID给客户端,由NSView嵌入实现[11] - 输入事件处理在Swift客户端中完成转译后再发送给Chromium,若网页未处理事件则返回客户端重新生成NSEvent[14][17] 产品性能与设计目标 - 产品设计需满足三个关键目标:秒级启动速度、打开大量标签页时保持流畅、为智能体场景奠定坚实基础[2] - 用户界面几乎是从零重建的全新体验,而非对开源Chromium界面的简单换皮[4] - 为实现快速启动和支持上百个标签页同时运行,对Chromium的集成方式进行了重新设计,而非大幅修改其默认架构[4] 智能体模式特性 - 智能体浏览模式对渲染、输入和数据存储有特殊要求,计算机使用模型需要屏幕完整图像作为输入[18] - 在Agent模式下,会将如下拉框等独立弹窗重新合成为主页面的一部分,确保模型能在一帧内看到完整上下文[18] - 输入事件遵循安全原则,Agent生成的事件直接传递给渲染器,不经过特权浏览器层,以确保沙箱隔离[18] - Agent浏览可在临时登出上下文中运行,使用独立的StoragePartition创建内存存储,会话结束后所有数据被清除,支持多个互不干扰的会话同时运行[18] 开发文化与工程实践 - 架构选择旨在保留公司的工程文化,即新工程师入职第一天下午就要提交并合并代码改动[4] - OWL内部以预构建二进制形式分发,使Atlas的构建时间仅需几分钟,大多数工程师无需本地编译Chromium[7] - 采用更巧妙的集成路径是为了保持开发速度,使功能实验、迭代和上线节奏加快[4]
「套壳」的最高境界:OpenAI揭秘Atlas浏览器架构OWL
机器之心· 2025-10-31 11:01
文章核心观点 - OpenAI发布的新浏览器Atlas虽然基于Chromium,但通过其创新的OWL架构实现了根本性的重构,将Chromium引擎与主应用进程分离,从而提升了性能、开发效率和用户体验,并非简单的“套壳”浏览器 [1][10][12] OWL架构的设计理念与优势 - OWL架构的核心理念是将Chromium浏览器进程独立于Atlas主应用进程之外运行,通过Mojo进程间通信系统进行连接 [11][12][17] - 该设计带来多重优势:应用几乎实现秒级启动、Chromium问题不会导致主应用崩溃、极大减少了与上游Chromium代码的合并冲突、使大多数工程师无需本地编译Chromium,构建时间缩短至几分钟 [7][15][18] - 公司强调其工程文化是“第一天就能上线代码”,新工程师入职当天下午即需提交代码,OWL架构保障了这一传统得以延续 [10] 技术实现细节 - 用户界面几乎从零重建,使用最现代的原生框架如SwiftUI、AppKit和Metal,而非简单为开源Chromium界面“换皮” [8][9][10] - 渲染机制通过跨进程传递像素实现,WebView在客户端应用中共享合成容器,不同标签页内容动态交换显示 [23][24] - 输入事件处理由Swift客户端完成转译后再发送给Chromium,如果网页未处理事件,系统会重新生成NSEvent让Atlas其他部分接管 [30][31][34] Agent模式的特殊处理 - 智能体浏览模式对渲染、输入和数据存储有特殊要求,需要屏幕完整图像作为输入,因此会将如下拉框等独立弹窗重新合成为主页面的一部分 [35][36] - 输入事件遵循安全原则,Agent生成的事件直接传递给渲染器,不经过特权浏览器层,以确保沙箱隔离 [36] - Agent会话可在临时“登出”上下文中运行,借助Chromium的StoragePartition创建独立内存存储,会话结束后所有Cookie和数据均被清除,用户可同时运行多个互不干扰的会话 [37]