今天下午,我把一个折腾了几十版仍然没有满意的图标设计任务直接扔给了 Dots,当时也没抱多大希望。

最近一直在给自己的追番软件 Kiroku 设计图标。最开始想画一个动漫角色,后来发现 Codex 用 SVG 绘制人物的能力实在有限,怎么画都不好看。于是退而求其次,改成只画背景和场景,但新的问题又出现了。ChatGPT 这边生图的效果通常不错,配色、构图、画面氛围都挺舒服。可它生成的是图片,不能直接当成最终的 SVG 图标使用。Codex 倒是能画 SVG,但经常画得太工程化。线条规规矩矩,颜色均匀,结构也没什么问题,可一放到 Dock 里,就是觉得不够好看。

于是我就在 ChatGPT 和 Codex 之间反复沟通。这边生成一版设计稿,拿给 Codex 画。Codex 画完,我又觉得缺少原稿的质感,再回来讨论怎么修改。来来回回,折腾到了三十多版。

最后我实在不想继续了,正好 OpenAI 最近一直在推广 Dots,我之前又始终不太理解这东西到底有什么用,干脆死马当活马医。我找到 Dot,告诉它这个图标已经改了很多次,还是不满意,让它去看看原来的设计记录,接手后续工作。

然后跟它说了一句:「我先去看动画了,你们忙完了叫我。」

一个 Agent 开始管理另一个 Agent

一开始,我其实以为 Dot 只是帮我传递消息。毕竟以前我也会这么做。比如让 ChatGPT 给出一个设计方案,再把方案复制给 Codex,让它按照要求修改。这件事我自己就能完成,无非多复制粘贴几次。

但 Dot 接手之后,表现得稍微有些不同。它先去找到了原来的设计对话,查看此前已经生成的版本、当前任务的进度,以及我之前反复强调过的要求。哪些方案已经被否定,哪些方向可以继续,什么地方需要保留,它都试着自己整理,这个过程让我觉得挺舒服。因为过去每次换一个新对话,我都需要重新解释一遍背景。我想做什么,之前做到了哪里,什么东西已经试过,为什么不满意。虽然现在可以通过 Markdown 文档做任务交接,但这些信息毕竟还是需要整理。Dot 至少开始尝试替我承担这部分工作。

接下来,它又去处理图标的具体问题,我之前一直在纠结图标外轮廓的尺寸。macOS 的应用图标虽然可以有自己的设计,但放进 Dock 之后,还是需要跟其他应用保持比较一致的视觉大小。Kiroku 原来的图标就有这个问题。单独放大看没什么毛病,放到 Xcode、Safari 和我的工作台图标旁边,就显得偏小,或者外轮廓不够统一。

Dot 能够理解这件事。它开始要求 Codex 检查不同尺寸下的效果,把图标放到模拟 Dock 中比较,调整留白、边框和主体比例。到这里,我已经觉得它比单纯传递指令更有价值了。因为它开始承担一部分原本需要我亲自完成的设计判断。

不过,真正让我改变认识的事情,还在后面。

Codex 卡住了,然后 Dot 换了一条路

在后续执行过程中,我的电脑网络突然出了问题。

这倒也不奇怪,我这边的网络环境一直比较复杂,尤其是电脑上,开发工具、客户端、网页、各种网络连接混在一起,偶尔出现问题很正常。但 Codex 的网络问题特别让人头疼。以前我经常遇到一种情况:对话突然断开,然后重新连接,最后界面显示正在思考。问题是,它会一直显示正在思考。十分钟、二十分钟,有时候半个小时过去,还是那个状态。我不知道它究竟有没有在工作。它可能真的还在推理,也可能连接已经断了,任务实际上早就停止了。有时候 Token 没有变化,但界面始终没有反馈。

以前碰到这种情况,我甚至不敢直接停止。因为我不知道停止之后,之前已经完成的东西会不会丢,也不知道应该怎样恢复。有时候我会发一句:「哥们,还活着吗?」试图把那个对话重新唤醒。这次我没有继续折腾,而是直接去问 Dot,结果它真的去查了。它告诉我,本地连接一直断断续续,那个任务已经卡住了,并没有继续正常执行,建议直接停止。它甚至尝试帮我操作,只是当时电脑连接仍然不稳定,最后还是我自己停掉的。

但接下来的处理就很有意思了。既然本地网络不好,它干脆在云端创建了一个新的 Codex 任务,继续完成原来的工作。我仍然在手机上跟 Dot 聊天。过了一段时间,它告诉我任务完成了,然后把结果拿出来给我看。后来电脑网络恢复,我点开它给出的链接,才看到那个云端 Codex 对话,里面的工作已经做完了。而且那个 Codex 对话没有像平时直接面对用户时一样,特意展开图片、打开网页,再一步步向我汇报。它只是负责执行任务,真正负责把结果交给我的,是 Dot。

这个体验对我来说挺新鲜的。以前使用 Codex,我需要亲自进入某个对话,等待它加载、连接、同步上下文,然后再查看结果。手机端远程管理本地 Codex 尤其麻烦。现在,我只需要在手机里跟 Dot 沟通。本地电脑出了问题,它可以换到云端。任务完成之后,它又把结果交给我。这已经超出了帮我节省几个操作步骤的程度,它解决了一个以前我自己根本不知道应该怎样处理的问题。

对于专业程序员来说,也许这些问题本来就有解决办法,但我确实不懂。而现在,Dot 开始替我承担这些专业判断了。

设计为什么总是沟通不明白

网络恢复之后,我们又继续处理图标。最后的设计逐渐确定成一种带有票根感觉的造型,后面有一条红色装饰,这时候已经没有必要再重新探索设计方向了,我只需要它把已经确定的东西画准确。但即使到了这个阶段,Codex 依然会出现一些让我不满意的地方,比如后面的红色条纹。

原来参考图上的红色有一种做旧的感觉,像印刷时油墨覆盖得不够均匀,表面有细小的白点和缺墨。Codex 用 SVG 画出来之后,整体就太整齐了。我让它增加颗粒,它确实增加了。可那些颗粒的分布还是过于平均,像按照某个规则均匀撒上去的。

我又跟 Dot 说,之前的参考图好像右边露出来的白色更多一些,而且颗粒应该有疏有密。Dot 把这个要求重新整理,再让执行任务的 Agent 修改。第一次还不够,继续调整。后来它开始改变颗粒的大小、密度和分布位置,让右边有更多露白,左边又保留一部分比较密集的纹理,最后终于接近原来的感觉了。我说,这个可以了。它便停下来,把 SVG 和相关的图标资源整理好,没有再继续增加新的设计。

整个过程其实很普通,就是修改一个软件图标,但它让我想到了一件事。我们过去一直觉得 Codex 的审美不好,或者说它的设计能力比 ChatGPT 弱。可今天 Dot 通过不断沟通,让 Codex 最终画出了我能够接受的东西。那就说明,至少在这件事上,Codex 的技术能力是够用的。

它之前表现不好,有一部分原因可能在于没能准确理解我的要求。而理解这件事,本身就很复杂。比如我说「这个图标看着有点廉价」,这句话包含的信息其实很少。究竟是颜色有问题、比例有问题、画面太复杂,还是材质和光影不协调?作为一个非专业设计师,我自己也不一定能马上说清楚。我需要不断比较,才能逐渐发现问题在哪里。而一个好的 AI,应该能够参与这个思考过程,帮助我把模糊的感受转化成可以执行的要求。

以前 Claude Code 给我的感觉,就是它很擅长做这件事。它会主动理解用户的意图,提出技术方案,然后自己完成工作。今天我发现,OpenAI 可能在尝试另一种实现方式。

OpenAI 可能在拼一个人

我们之前一直希望 AI 模型能够越来越全能。写文章要好,编程要好,画图要好,审美要好,操作电脑也要好,最好一个模型什么都会。Claude 给我的感觉就比较接近这种方向。不管是在 Chat、Claude Code,还是其他工作模式中,我都能感觉到比较一致的理解能力和表达习惯。尤其是 Opus 5.5,它在编程方面很强,但这种理解能力也能延伸到其他工作。所以当我把一个新需求交给它的时候,经常不需要特别详细地解释技术方案,它自己就会判断应该怎么做。

OpenAI 这边的产品体验却有些不同。ChatGPT 的对话和文字体验比较好,图像生成也有自己的优势,Codex 更偏向代码和工程实现,Work 的计算机操作能力又是另一套体系。它们各自有自己比较擅长的部分,也有一些很明显的短板。

过去我一直觉得,OpenAI 应该把这些短板逐渐补齐。为什么 ChatGPT 的设计水平不能直接出现在 Codex 里?为什么 Codex 不能像 ChatGPT 一样理解用户的审美?为什么 Work 和 Codex 明明放进了同一个客户端,还需要用户自己选择应该用哪个?

但今天用过 Dots 之后,我突然产生了另一种猜测。也许 OpenAI 从一开始,就没有打算让所有工具拥有完全相同的能力,它可能想做的是一整套分工明确的系统。ChatGPT 负责一些事情,Codex 负责一些事情,Work 负责另外一些事情。然后在上面放一个足够聪明的 Agent,负责理解用户、选择工具、分配任务、检查结果。

如果把整套系统比作一个人,那之前 OpenAI 可能一直在拼手脚,各种工具负责不同的动作。现在则开始尝试把大脑装上去,这个大脑,就是 Dots。这样再回头看,为什么 Dots 会使用 Astra 这种强模型作为底座,也就比较容易理解了,因为调度本身需要非常强的综合判断能力。它不仅要理解用户,还要理解任务、工具、执行环境,以及其他 Agent 返回的结果。

甚至在某个执行环境出问题时,它还需要决定是否应该停止任务、换一种方案,或者直接交给另一个 Agent。这些事情看起来可能比单纯写代码更加复杂。今天的经历,至少让我看到了这套思路的一部分。

也许我们看到的 OpenAI,和他们用的不一样

再往下想,就会出现一个更有意思的问题。OpenAI 内部人员实际使用的 AI,究竟是什么样的?我们现在接触到的是 ChatGPT、Codex、Work,以及刚刚发布不久的 Dots。但 OpenAI 内部可能已经拥有更成熟的工具体系,以及尚未公开的模型能力。

就像此前那些数学研究成果。他们的内部模型已经能够参与非常复杂的数学研究,产生大量研究文稿和证明材料。普通用户既没有机会使用同样的系统,也很难完整理解它们究竟达到了什么程度。

如果 OpenAI 内部员工已经长期使用更成熟的统一 Agent 系统,那么他们对未来产品形态的理解,可能与我们完全不同。在他们眼里,Chat、Work 和 Codex 也许早就已经是一套东西了。用户提出目标,后台自动选择执行方式,这时候他们可能真的不太在意用户究竟是从哪个客户端进入的,也不太在意某一项具体功能是否已经被放进传统 Chat 界面。因为他们看到的可能是整套系统最终能够完成什么。而我们看到的,则是当前公开版本中各个工具存在的问题。

当然,这种差异也可能带来麻烦。如果内部人员已经习惯了更先进、更完整的工作方式,就可能低估普通用户实际遇到的困难。比如网络连接、任务同步、额度不足,以及不知道应该选择哪种工作模式。这些事情对已经拥有完整系统的人来说,可能确实不算什么问题。但对于现在还在使用公开产品的用户,它们每天都在发生。

我此前对 Tibo 的很多批评,就来自这里。他不断强调未来的 Agent 产品,却没有让我感受到现有产品正在获得相应的改善。直到今天,我才通过一次实际使用,看到了他可能想要构建的东西。这也不能证明他过去的运营方式就是合理的。

只是对于他的产品方向,我开始有了另一种理解。

未来的软件,可能会变成什么样?

今天的体验还让我想到了自己正在开发的软件。

最近 Kiroku 已经开始真正投入使用了,RSS 订阅、下载管理、视频播放,都逐渐整合进了自己的软件,我现在已经开始用它追番。后面我还打算把 Kiroku 的数据库通过 MCP 接入 ChatGPT。这样以后我跟 AI 聊天,它就可以知道我看过哪些动画,喜欢什么题材,哪些作品追完了,哪些作品看了一半就放弃了。然后我可以直接问:「这季度有什么新番值得看?」它可以结合我的观看历史和个人评价,帮我推荐作品。如果我觉得某部作品有意思,它还可以直接帮我订阅。甚至进一步帮我管理 RSS 和下载任务。

那么到了那个时候,我还需要每次都打开 Kiroku 吗?可能很多操作已经不需要了。再往后,如果对话界面能够直接调用视频播放能力,我说想看某部动画,Agent 给我一张卡片,我点一下就开始看,这种交互也完全有可能出现。

原来的软件仍然需要负责保存数据、管理资源、执行下载和播放。但用户未必还需要通过一套固定的图形界面,才能操作这些功能。过去开发软件,需要数据库、业务逻辑和前端界面。以后可能越来越多的软件,会把自己的数据和业务能力开放给 Agent。由 Agent 决定什么时候调用什么功能,又以什么方式把结果展示给用户。有时候是一张卡片,有时候是一份文档,有时候是一个完整的可交互界面。

所以我现在觉得,对于自己的这些软件,有一件事情非常重要:让 Agent 能够真正介入软件。让它知道软件里有什么数据,当前是什么状态,能够执行哪些操作。这也是我现在准备通过 MCP 去做的事情。Kiroku 是这样,Shiori 也是这样。这些软件里面积累的数据,才是我长期投入形成的资产。

未来不管 Agent 的能力发展到什么程度,只要这些数据和业务能力能够被可靠调用,它们就仍然具有价值。甚至哪一天,用户真的不再需要像今天一样频繁打开独立 App,这些软件也可以继续作为后台系统存在。

当然,我现在仍然很喜欢 Kiroku 的海报墙,也很重视 Shiori 的数学排版和交互体验。这些可视化的东西本身就有价值。所以我也不急着判断未来是不是所有软件都要消失。

只是软件的使用方式,确实可能发生很大的变化。

为什么 Dots 推广起来这么困难

如果前面的猜测成立,那我觉得 Dots 现在的推广困境也挺有意思的。

它想解决的问题,其实可能已经超出了普通用户对 AI 助手的理解。OpenAI 一直强调,Dots 可以主动检查邮件、整理日程、在后台持续工作。但这些东西对我来说,吸引力确实不大。我没有那么多邮件需要处理。普通的定时检查,ChatGPT 已经能够完成。如果需要及时收到邮件,Gmail 自己的通知甚至更加直接。所以之前我一直想不到,为什么要使用 Dots。

今天真正让我觉得它有用的,是它帮我处理了一个已经陷入混乱的软件开发任务。但这样的场景,普通人不一定经常遇到。尤其是对于没有大量自主工作需要安排的人来说,可能根本不知道应该把什么交给 Agent。

企业用户的情况反而更容易理解。企业有明确的业务流程,可以让 Agent 负责资料处理、任务协调、系统维护和信息整理。公司可以先建立使用场景,再交给员工使用。而面向个人用户时,很多事情需要用户自己发现。偏偏这个产品又需要比较昂贵的订阅,普通人可能连尝试的机会都没有。

我现在能够体验 Dots,是因为自己本来就订阅了 Pro,而且有一些需要长期开发和维护的软件项目。如果我是一个普通上班族,没有这些项目,也不需要管理多个 Agent,我可能仍然不知道应该拿它来干什么。

这就形成了一个比较奇怪的局面。产品真正有价值的地方,需要用户经历一段相对复杂的工作过程才能理解,但营销需要让用户在很短时间内产生兴趣。

相比之下,Claude Code 最近通过代码生成视频的那些演示,就很容易传播。一段漂亮的动画,几秒钟就能看到效果。一个没有生图能力的编程模型,却能画出质量不错的视频,这件事本身就很有宣传价值。不过,我现在看这种视频已经没有最开始那么惊讶了。看得多了会发现,很多作品的配色、动画结构和整体质感都比较相似。尤其是那些经常出现的橙色系,看多了真的有点审美疲劳。技术能力值得肯定,但从成品角度看,也未必每一条都特别有意思。

Dots 恰好相反。今天它最让我满意的事情,是帮我处理了一个卡住的 Codex 对话。这件事很难剪成一段特别精彩的宣传视频。但对真实使用者来说,却可能比生成一段漂亮动画更有价值。

我甚至觉得,OpenAI 现在面临的可能有一部分是营销困境。它想让大家理解一套新的工作方式,却很难通过简单的产品演示,把这种工作方式真正解释清楚。

最后还是绕不开 Token

不过,今天体验下来,我仍然有一个最现实的顾虑:额度。

我现在每个月支付 100 美元订阅 ChatGPT。普通 Chat 的额度相对独立,我基本可以放心聊天。但到了 Codex 和 Work,情况就不一样了。尤其是 Astra,使用成本确实比较高。我最近主要使用 GPT-6.1 Sol,感觉消耗已经逐渐能够接受。如果连续高强度开发,大概能够支撑两三天。虽然没有之前 Opus 5.5 那么耐用,但对于正常工作来说,其实也还可以。

只是 Dots 的出现,又增加了一个新的问题。以前我直接使用 Codex,可以自己决定使用什么模型,什么时候开始,什么时候停止。现在 Dot 能够自己调度 Agent。方便是方便,但我不知道它接下来会调用多少次工具,会使用什么模型,又会消耗多少额度。

如果只是偶尔判断错误,我倒没有特别担心。人都会犯错,Agent 当然也可以犯错。只要能够通过对话及时纠正,很多问题都可以接受。真正让我不放心的是,我不知道一次任务最终会消耗多少资源。尤其是在任务没有那么紧急的时候。我不希望一个 Agent 为了完成一件小事,在后台反复尝试,最后把我一周的额度消耗掉。

所以如果 Dots 未来真的想成为整个系统的统一入口,我觉得它最终还需要解决资源管理的问题。比如能不能提前大致估算任务成本,能不能设置单次额度上限,能不能在继续消耗大量资源之前先问问用户。

这些事情,对于愿意长期使用 Agent 的普通订阅者来说,可能非常重要。

今天的一点感受

最后那个图标还是做好了。

过程中有不少折腾,网络问题没有完全消失,Dot 也不是每一次都能够准确理解我的意思。但它确实帮我把一个原本已经不太想继续处理的任务,推进到了可以定稿的程度。更有意思的是,今天这次体验,让我对 OpenAI 最近的产品方向产生了一些新的猜测。

也许 OpenAI 正在建设的,是一套由不同模型和工具负责执行,再由统一 Agent 理解和协调的系统。如果是这样,Chat、Work、Codex 之间那些看起来很奇怪的差异,也许未来会通过另一种方式逐渐得到解决。而 Dots,可能就是那套系统里非常关键的一部分。

我不知道 OpenAI 内部是不是已经把这套东西做得很成熟,也不知道 Tibo 从一开始是不是就打算这样推进,但今天至少让我看到了这条路线可能呈现出来的实际效果。

此前我一直觉得自己不需要 Dots。现在我依然没有什么兴趣让它全天在后台主动帮我找事情做。不过,如果以后再遇到需要协调多个 Agent、处理执行故障或者跨设备操作的任务,我应该会愿意先交给它试试。毕竟今天真正让我感到轻松的,是我终于可以把一部分自己不擅长、又不愿意继续折腾的事情,交给另一个 Agent 去处理。而我只需要继续跟它沟通,看看结果是否满意。至于 OpenAI 最终能不能把这套系统做成,还是要继续看。

今天这个下午,让我对 Dots 多了一些兴趣。