解析 ChatGPT Work

Simon Willison··作者 Simon Willison

关键信息

Willison 指出,Work Cloud 可通过 chatgpt.com 和移动应用使用,而 Work Local 则来自 ChatGPT 桌面应用,也就是以前叫 Codex 的那个应用。文章称,ChatGPT Work 目前仅向每月 20 美元及以上的付费订阅者开放,并且它增加了模型选择、可联网的代码执行环境、无头 Chrome 浏览器、持久化共享文件系统、发布 ChatGPT Sites、子代理,以及可能的定时提示词自动化等功能。

资讯摘要

OpenAI 在 7 月 9 日宣布了 ChatGPT Work,并且自那以后一直在快速迭代。Simon Willison 形容这是一个“极其令人困惑但又非常强大”的产品。文章的核心结论是:ChatGPT Work 并不是一个单一功能,而是两个产品。一个是他称为 Work Cloud 的云端版本,可通过 chatgpt.com 和移动应用使用;另一个是他称为 Work Local 的桌面应用版本,入口来自 ChatGPT 桌面应用,而这个桌面应用以前叫 Codex。作者还补充说,Work Cloud 现在也可以在桌面应用里通过“Where should this chat run?” 下拉菜单来使用。

文章主要围绕 Work Cloud 展开。Willison 还指出,ChatGPT Work 目前只向每月 20 美元及以上的付费订阅者开放,免费用户和每月 8 美元的 Go 用户都没有权限。随后他认为 OpenAI 官方关于何时使用 Chat、何时使用 Work 的说明过于空泛,因为其中列出的很多任务,普通 ChatGPT Chat 其实早就能做。相较之下,真正有区别的功能包括:可以选择 GPT-5.6 Sol、Luna 和 Terra 等模型及多档推理强度;带互联网访问的代码执行环境;无头 Chrome 浏览器;持久化并跨会话共享的文件系统;发布 ChatGPT Sites;运行子代理会话;以及可能也出现在 ChatGPT Chat 中的定时提示词自动化。整篇文章的目的,是帮助用户把这个新产品从模糊的营销表述中拆解成可实际理解的工作流能力。

解析 ChatGPT Work

资讯正文

OpenAI 于 7 月 9 日发布了 ChatGPT Work,并从那以后一直在火速迭代。它是一款极其令人困惑、但又非常强大的产品。以下是我目前对它的理解。

ChatGPT Work 实际上是两个产品

更有意思的那个 ChatGPT Work 版本运行在云端。你可以通过 chatgpt.com 或 ChatGPT 移动应用访问它。我们把它称为 Work Cloud。

如果你安装 ChatGPT 桌面应用——也就是以前叫 Codex 的那个应用——你就能使用一个名为 ChatGPT Work 的功能,它可以访问文件并直接在你的电脑上运行程序。我们把这个版本称为 Work Local。这个版本更像是重新包装过的普通 Codex,只是看起来没那么让非软件开发者感到害怕。

(更新:Work Cloud 也可以通过 ChatGPT 桌面应用使用,方法是通过一个“这段对话应该运行在哪里?”下拉菜单。)

在本文其余部分,我将只讨论 Work Cloud。

Work 仅面向付费订阅用户

目前,ChatGPT Work(无论是哪种版本)仅对每月 20 美元及以上的订阅用户开放。免费用户和每月 8 美元的 Go 用户无法使用。

Work 具备 Chat 中没有的功能

访问 Work 的界面是一个标签选择器,它把它呈现为 Chat 的替代选项:

显而易见的问题是:我什么时候该用 Chat,什么时候该用 Work?

OpenAI 对这个问题的官方回答是:

“当你需要回答、解释、头脑风暴或一份简短草稿时,使用 Chat。当你希望 ChatGPT 完成一项具有明确结果的任务时,使用 ChatGPT Work,例如简报、演示文稿、分析、定期更新、工作流,或一份你可以审阅和使用的文件。”

我觉得这几乎完全没用,因为多年来我一直都在用普通的 ChatGPT Chat 来做这些任务类别!

因此,更好的问题是:Work 有哪些 Chat 中没有的功能?

经过大量实验,我认为自己已经大致弄清楚了:

- 可以选择用 Luna 和 Terra 代替 Sol

- 一个可访问互联网的代码执行环境

- 一个无头 Chrome 浏览器

- 一个在会话之间共享的持久化文件系统

- 能够发布 ChatGPT Sites

可以运行带有 Sol、Luna 和 Terra 的子代理会话的能力

定时提示自动化(也可能出现在 ChatGPT Chat 中)

模型选择

在 Work 中,你可以选择 GPT-5.6 Sol、Luna 或 Terra,每一种都提供 Light、Medium、High、Extra High、Max 或 Ultra 推理级别。你也可以选择 GPT-5.5,并提供 Light、Medium、High 或 Extra High 级别。

这些看起来与通过 OpenAI API 提供的模型是同一批。

Chat 提供了不同的选择:5.6 Instant、Medium、High、Extra High 和 Pro(实际上,Extra High 和 Pro 仅对每月 100 美元以上的订阅者开放——每月 20 美元的订阅者最高只能到 High)。它没有说明这些究竟是 Luna、Terra 还是 Sol(我猜是 Sol?)。5.6 Pro 看起来是 Chat 独占,在 Work 中没有对应版本。

我目前通过使用 Codex 得到的理解是,Ultra 是一种特殊模式,它会更积极地委派给子代理。

我认为 ChatGPT Work 会按你的 Codex 配额计费,而 ChatGPT Chat 会使用自己单独的配额。这或许有助于解释模型可用性上的差异。

支持联网的代码执行!

作为长期 Code Interpreter 模式的粉丝——该模式由 OpenAI 于 2023 年率先推出——这无疑是我在 ChatGPT Work(Cloud)中最兴奋的功能。

代码执行环境现在可以连接到互联网上的其他部分了!

ChatGPT Chat 做不到这一点——如果你要求它安装额外的软件包,或者与那些需要访问网站或 API 的内容交互,容器代理会阻止这种访问。

(奇怪的是,早在 1 月份,它曾经<a href="https://simonwillison.net/2026/Jan/26/chatgpt-containers/">获得了安装软件包的能力</a>,但现在似乎不再可用了。我真希望他们有更好的更新日志!)

Claude 的对应容器自去年 9 月<a href="https://simonwillison.net/2025/Sep/9/claude-code-interpreter/">发布以来</a>就一直允许受限的互联网访问。Claude 可以从 PYPI 和 NPM 安装软件包,也可以从 GitHub 克隆代码仓库。但也就到此为止:可允许的域名白名单非常短。

ChatGPT Work 允许的范围远不止这些。它可以配置为只允许特定域名列表,但默认情况下似乎对所有域都开放。

这让 Work 成为一个极其有用的工具。你可以让它克隆 GitHub 代码仓库,安装依赖,然后用它们与互联网上的其他服务交互!

完整的无头 Chrome 浏览器

ChatGPT Work 的另一个杀手级功能是浏览器工具。ChatGPT Work 可以启动完整的 Chrome 实例,加载网站,填写表单,并截取屏幕截图。

<p><img alt="ChatGPT 对话截图。黑色圆角气泡中的用户消息写着:访问 https://london-pelicans-in-her-piety.simonw.chatgpt.site/,并用浏览器截一张图。下面是一行折叠的状态显示‘Worked for 1m 18s >’,接着是回复‘Here's the screenshot of the live site:’,以及一张嵌入的网站截图。" src="https://static.simonwillison.net/static/2026/chatgpt-work-card.jpg" /></p>

<p>如果某个网站需要登录,浏览器可以提示你接管并输入密码和 2FA 验证码,而无需把这些凭据来回传给模型本身。</p>

<p>它甚至可以针对已加载页面的 DOM 运行 JavaScript。我提示道:</p>

<blockquote>

<p><code>在浏览器中打开 simonwillison.net,并使用 JavaScript 提取标题</code></p>

</blockquote>

<p>ChatGPT Work 启动了一个浏览器实例并运行了这段代码:</p>

<div class="highlight highlight-source-js"><pre><span class="pl-k">await</span> <span class="pl-s1">tab</span><span class="pl-kos">.</span><span class="pl-c1">playwright</span><span class="pl-kos">.</span><span class="pl-en">evaluate</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span>

<span class="pl-k">return</span> <span class="pl-v">Array</span><span class="pl-kos">.</span><span class="pl-en">from</span><span class="pl-kos">(</span><span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">"h1,h2,h3,h4,h5,h6"</span><span class="pl-kos">)</span><span class="pl-kos">,</span> <span class="pl-s1">heading</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">(</span><span class="pl-kos">{</span>

<span class="pl-c1">level</span>: <span class="pl-s1">heading</span><span class="pl-kos">.</span><span class="pl-c1">tagName</span><span class="pl-kos">.</span><span class="pl-en">toLowerCase</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">,</span>

<span class="pl-c1">text</span>: <span class="pl-s1">heading</span><span class="pl-kos">.</span><span class="pl-c1">innerText</span><span class="pl-kos">.</span><span class="pl-en">trim</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">replace</span><span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-cce">\s</span><span class="pl-c1">+</span><span class="pl-c1">/</span>g</span><span class="pl-kos">,</span> <span class="pl-s">" "</span><span class="pl-kos">)</span><span class="pl-kos">,</span>

<span class="pl-c1">id</span>: <span class="pl-s1">heading</span><span class="pl-kos">.</span><span class="pl-c1">id</span> <span class="pl-c1">||</span> <span class="pl-c1">null</span>

<span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

<span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>

这让我很有一种在用我的 <a href="https://shot-scraper.datasette.io/en/stable/javascript.html">shot-scraper javascript</a> 工具的感觉,只不过现在我可以在手机上用了!

### 持久共享文件系统

ChatGPT Chat 会为每个聊天会话分配一个全新的文件系统。这些文件系统不能被任何其他会话访问。

在 ChatGPT Work 中,每个会话都会得到自己的临时文件夹——名字类似 <code>/workspace/scratch/e00a0a017944</code>——但这些文件夹都会跨会话持久保存,所以你可以访问之前聊天中的文件。我现在在 <code>/workspace/scratch</code> 里有 171 个文件夹!

据我所能判断,那个 <code>/workspace</code> 卷会挂载到所有当前正在运行的 Work 会话上——一个会话里的文件编辑可以被其他会话立刻看到。不过它们似乎并不共享同一个进程空间,而且在一个会话里运行的 localhost 服务器也无法从另一个会话访问。

### ChatGPT Sites

ChatGPT Work 具备使用 Cloudflare Workers 构建并部署整个网站的能力。这些网站可以包含 HTML 和 JavaScript,也能运行服务端功能,包括基于 Cloudflare D1 和 R2 的有状态功能。

下面是我用这个功能做的一个简单网站:

<a href="https://london-pelicans-in-her-piety.simonw.chatgpt.site/">london-pelicans-in-her-piety.simonw.chatgpt.site</a>

我生成这个网站时用的提示词是:

输出要求:

- 返回适合直接在新闻详情页阅读的中文段落,段落之间空一行。

- 如果存在明显的网站 UI 残留或抽取痕迹,请将其删除。

- 去掉重复标题或导语、站点栏目导航、作者/署名信息、时间戳、页脚/关于/法律/联系方式模块、相关文章栏、推荐卡片,以及无关的编号推荐列表。

- 只保留事实性的文章内容。

只返回有效的 JSON 对象。

<p><code>找出伦敦所有带有“虔诚的鹈鹕”图像的地方,然后把这些内容整理成一个 JSON 文件,并围绕它们搭建一个 ChatGPT sites 网站</code></p>

<p>(“虔诚的鹈鹕”是一种很有意思的<a href="https://devonchurchland.co.uk/blog/pelican-in-her-piety/#What-is-a-Pelican-In-Her-Piety">中世纪基督教意象</a>——一旦你了解它们,就会发现它们无处不在。)</p>

<p>这些站点默认对创建它们的用户是私有的,但你可以把它们设为公开,并且在团队套餐中,还可以与其他特定个人共享。</p>

<h4 id="sub-agents-with-sol-luna-and-terra">使用 Sol、Luna 和 Terra 的子代理</h4>

<p>这个没什么可多说的。ChatGPT Chat 不能运行子代理,ChatGPT Work 可以。这非常明显是面向重度用户的功能:如果你正在运行一个复杂项目,并且可以从多个并行代理协同工作中受益,那么 Work 就能做到。</p>

<h4 id="scheduled-prompt-automations">定时提示自动化</h4>

<p>另一个似乎在某个时候从普通 ChatGPT 转移到了 ChatGPT Work 的功能。你可以像这样向 ChatGPT Work 发出提示:</p>

<blockquote>

<p><code>每天早上 8 点运行一次搜索,看看 Waymo 是否已经宣布了 Half Moon Bay 的发布日期</code></p>

</blockquote>

<p>这会按该频率安排一个提示任务运行。这些提示可以判断是否没有发生什么有趣的事情,也可以决定向你通知一些新信息。</p>

<p><strong>更新</strong>:实际上,这似乎也可以在 ChatGPT Chat 中使用。</p>

<p>不过这里仍然值得提一下,因为它可以与其他仅限 ChatGPT Work 的功能结合使用。例如,你可以设置一个定时任务,每小时更新一次 ChatGPT Site。</p>

<h4 id="is-this-safe-">这安全吗?</h4>

<p>我目前的一个悬而未决的问题是,这些东西到底有多<em>安全</em>。</p>

<p>我的<a href="https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/">致命三重奏模型</a>提醒人们注意任何代理系统固有的风险:一边能访问私有数据,一边会接触不受信任的内容,还能把窃取到的信息传回给攻击者。</p>

<p>ChatGPT Work 把这三者都结合在了一起!</p>

<p>我很想听听 OpenAI 更详细地说明,他们是如何保护 ChatGPT Work 会话免受提示注入攻击的。我猜他们的答案和 Codex 使用的<a href="https://learn.chatgpt.com/docs/sandboxing/auto-review">自动审查机制</a>是一样的。</p>

<h4 id="openai-could-make-this-a-lot-less-confusing">OpenAI 本可以把这件事做得没那么令人困惑</h4>

<p>把这些东西弄明白花了我远比应有更多的精力。</p>

<p>我认为这里有两个关键问题:</p>

<ol>

<li>OpenAI 对 Work 的解释是从它“用来做什么”出发,而不是从它“实际能做什么”出发</li>

<li>OpenAI 仍然坚持隐藏他们的系统提示和工具说明</li>

</ol>

<p>如果 ChatGPT Work 的文档里包含代理所使用的完整系统提示和工具说明,我就不需要写这篇文章了。</p>

<h4 id="all-the-tools">所有工具列表</h4>

在发表这篇文章后不久,我有了一个想法。我新开了一个 Work 会话,并输入了以下提示:

“构建一个网站,列出你所有的工具——按类别大致分组——并为每一个工具解释它的作用。尽量准确复制参数和工具描述。设计风格应当像技术文档,尽量少做装饰。”

这是它搭建的网站,其中包含 223 个已注册工具的详细信息——不过其中 6 个来自我通过 datasette-mcp 提供的个人 MCP。

而且还有大量 Skills

我注意到,列表里唯一与浏览器相关的工具是 web.run,它具备用于执行搜索、打开 URL 和点击链接的方法,但就无头浏览器自动化而言,它看起来并不是全部内容。

这让我怀疑还有什么东西缺失了,所以我对构建那个工具参考网站的 ChatGPT Work 会话说:

“把每个 skill 的完整副本都添加到网站上(分别放在从首页链接过去的独立页面上)。”

结果发现,ChatGPT Work 使用了很多 skills——实际上有 44 个!

control-browser skill 解释了浏览器是如何工作的:

“通过 Node REPL 的 js 工具运行浏览器设置代码。在这个环境里,可调用的 tool id 通常显示为 mcp__node_repl__js。[...]”

“直接与浏览器交互的能力是通过 browser-client 运行时、经由 agent.browsers.* API 暴露出来的。在尝试与它交互之前,你必须一次性输出并读取 await browser.documentation() 返回的完整文档。”

于是我对 Work 说:

“把 await browser.documentation() 的完整输出添加到 /skills/control-browser 页面底部。”

现在你也可以在 /skills/control-browser 上读到这部分内容了。

还有几个更有意思的 Skills:

documents:用于创建 .docx 文件

imagegen:附带使用 image_gen 工具创建图像的提示

pdf:既用于读取也用于渲染 PDF

Spreadsheets:用于处理 .xlsx、.xls、.csv、.tsv

sites:sites-building,用于创建 ChatGPT Sites

opeanai-docs,用于回答关于其自身的问题

data-analytics:build-dashboard,用于构建数据仪表盘

来源与参考

  1. 原始链接
  2. Understanding ChatGPT Work

收录于 2026-09-01