AI热点 7小时前 64 阅读 0 评论

「套壳」的最高境界:OpenAI揭秘Atlas浏览器架构OWL

作者头像
AI中国

AI技术专栏作家 | 发布了 246 篇文章

「又一个 Chromium 套壳?」


面对 OpenAI 上周发布的 AI 浏览器 Atlas,这可能是不少人的第一反应,参阅报道《刚刚,OpenAI 发布 AI 浏览器 ChatGPT Atlas,基于 Chromium》。但今天,OpenAI 官方用一篇技术博客「回怼」了这个说法:我们「套」了,但和别人完全不一样。


尽管今天还有 Sora 角色客串功能和 GPT-5 查找和修复安全漏洞智能体的消息,但本文的重点是深扒 Atlas 背后的「灵魂」—— OWL 架构。看看 OpenAI 究竟是如何驯服 Chromium,把它从浏览器「换皮」玩成了「架构重组」的。


基础是 Chromium


OpenAI 表示,要让 ChatGPT 成为网页浏览的真正副驾驶,必须彻底重构浏览器的底层架构:将 Atlas 与 Chromium 运行时剥离开来。这意味着要开发一种全新的 Chromium 集成方式,如此才能满足以下三个关键目标:


  • 秒级启动速度
  • 打开更多标签页时依旧流畅
  • 为智能体(Agent)场景打下坚实基础



OpenAI 强调,Chromium 是一个天然的构建基石。它能提供先进的网页引擎、完善的安全模型、一流的性能,以及卓越的网页兼容性;更重要的是,它由全球开发者社区持续改进。因此,它成为了现代桌面浏览器最常用的底层引擎。



重新定义浏览器体验


虽然基于 Chromium,但 OpenAI 自然也会强调自己的设计,包括在「Agent 模式」等功能中引入丰富的动画和视觉效果。


这要求工程团队使用最现代的原生框架(如 SwiftUI、AppKit 和 Metal),而不是简单地给开源的 Chromium 界面「换皮」。


结果,OpenAI 表示:「Atlas 的用户界面几乎是从零重建的一整套全新体验。


另外,为了实现快速启动和支持上百个标签页同时运行而不掉帧的目标。还需要对 Chromium 进行一些优化,毕竟其默认架构在启动流程、线程模型、标签管理等方面都非常「固执」。


OpenAI 说:「我们考虑过大幅修改 Chromium,但那样会让后续更新复杂且脆弱。为了保持开发速度,我们选择了一条更巧妙的路 —— 重新设计 Chromium 的集成方式。」


他们的一个关键的技术标准是:不仅要加快功能实验、迭代和上线的节奏,还要保留 OpenAI 的工程文化 —— 第一天就能上线代码。「每位新工程师入职第一天下午就要提交并合并一个小改动。即便 Chromium 的源码编译要花几个小时,我们也得保证这一传统能延续。」


OpenAI 的解决方案:OWL


为了解决这些挑战,OpenAI 构建了一个新的架构层,称为 OWL(OpenAI’s Web Layer)


OWL 是 OpenAI 整合 Chromium 的方式,其核心理念是:让 Chromium 的浏览器进程独立运行在 Atlas 主应用进程之外



可以这样理解:Chromium 通过将每个标签页放入独立进程来革新浏览器架构;而 OpenAI 更进一步 —— 把整个 Chromium 从主应用进程中分离出来,放入一个独立的服务层。


如此方法好处多多:


  • 更简洁现代的应用:Atlas 主要使用 SwiftUI 和 AppKit 构建,统一语言、统一技术栈、代码干净。
  • 更快启动:Chromium 会在后台异步加载,Atlas 几乎瞬间显示画面。
  • 隔离崩溃与卡顿:即使 Chromium 出问题,Atlas 也不会挂。
  • 更少的合并冲突:OpenAI 修改的 Chromium 代码极少,易于维护。
  • 更快的开发节奏:大多数工程师无需本地编译 Chromium,OWL 内部以预构建二进制形式分发,Atlas 构建只需几分钟。


因此,即使是新员工,也能在第一天下午轻松提交改动。


OWL 的工作方式


从高层来看,Atlas 浏览器是 OWL 客户端,而 Chromium 浏览器进程是 OWL 主机(Host)。两者通过 Mojo(Chromium 的进程间通信系统)进行通信。OpenAI 编写了 Swift(甚至 TypeScript)的 Mojo 绑定,使 Swift 应用能直接调用主机端接口。


OWL 客户端库提供了一套简洁的 Swift API,用于抽象主机层的关键功能:





此外,还提供书签、下载、扩展、自动填充等服务端点。


渲染:跨进程传递像素


WebView 在客户端应用中共享一个合成容器,不同标签页的内容会动态交换显示。在 Chromium 一侧,这对应于一个 gfx::AcceleratedWidget,由底层的 CALayer 支撑。


OpenAI 的设计是将该层的上下文 ID 暴露给客户端,由 NSView 通过私有的 CALayerHost API 嵌入。



诸如 <select> 下拉框或颜色选择器等独立弹窗,也采用相同机制。OWL 会保持视图几何与 Chromium 同步,确保 GPU 合成器输出正确分辨率和比例的内容。


OpenAI 也借用这种机制,将 Chromium 原生界面的一部分直接投射到 Atlas 中,比如权限提示框,从而快速实现功能原型而无需完全重写。


输入事件:捕获与转发


通常,Chromium UI 会将 macOS 的 NSEvent 转换为 Blink 的 WebInputEvent,然后再传递给渲染器。


但由于 OWL 中 Chromium 在后台运行,OpenAI 在 Swift 客户端中自己完成事件转译,再将转换后的事件发给 Chromium。



如果网页未处理某个事件,系统会把事件返回客户端,OpenAI 重新生成 NSEvent,让 Atlas 其他部分接管输入处理。


Agent 模式:特殊情况


Atlas 的智能体浏览对渲染、输入和数据存储提出了额外挑战。OpenAI 的计算机使用(computer use)模型需要屏幕的完整图像作为输入。


但有些 UI(如 <select> 下拉框)会在标签页外单独渲染。在 Agent 模式下,OpenAI 会将这些弹窗重新合成为主页面的一部分,让模型在一帧中看到完整的上下文。


输入事件同样遵循安全原则:Agent 生成的事件直接传给渲染器,不经过特权浏览器层,以确保沙箱隔离。例如,防止自动化事件触发系统快捷键等非网页行为。


此外,Agent 浏览可以在临时「登出」上下文中运行。它不会使用用户的隐私模式配置,而是借助 Chromium 的 StoragePartition 创建独立的内存存储。每个 Agent 会话都是全新的,结束后所有 cookie 和数据都会被清除。用户可以同时运行多个互不干扰的「登出」 Agent 会话。


结语


OpenAI 最后再次重申了 Chromium 的作用:「如果没有全球 Chromium 社区的卓越贡献,这一切都无法实现。OWL 在此基础上开辟了新的方向:将引擎与应用解耦,结合顶级网页平台与现代原生框架,打造更快、更灵活的架构。」


对此,你怎么看?


参考链接


https://openai.com/index/building-chatgpt-atlas/



文章来自于微信公众号 “机器之心”,作者 “机器之心”

作者头像

AI前线

专注人工智能前沿技术报道,深入解析AI发展趋势与应用场景

246篇文章 1.2M阅读 56.3k粉丝

评论 (128)

用户头像

AI爱好者

2小时前

这个更新太令人期待了!视频分析功能将极大扩展AI的应用场景,特别是在教育和内容创作领域。

用户头像

开发者小明

昨天

有没有人测试过新的API响应速度?我们正在开发一个实时视频分析应用,非常关注性能表现。

作者头像

AI前线 作者

12小时前

我们测试的平均响应时间在300ms左右,比上一代快了很多,适合实时应用场景。

用户头像

科技观察家

3天前

GPT-4的视频处理能力已经接近专业级水平,这可能会对内容审核、视频编辑等行业产生颠覆性影响。期待看到更多创新应用!