← 更新日志
每日2026-05-11

从零到「对话生成一个旋转立方体」

24 小时,四条线并行,把整个产品最核心的假设变成了眼见为实:对它说一句话,它改代码,浏览器立刻热更出结果。这天交付的是一个能自我验证的"对话→旋转立方体"端到端闭环,以及托起这个闭环的分层架构、真正的 agent 运行时、三栏界面和上百次体验打磨。

北极星:为什么是"一个旋转立方体"

这一天所有的工作都对着同一个验收点:在一台干净的机器上,克隆、填一个密钥、一条命令跑起来,然后在界面里对 agent 说"做一个旋转立方体",它去改代码、引擎热重载、浏览器里立刻出现一个转动的立方体。立方体本身毫不起眼,但它是整个产品最核心假设的最小证明——"用对话就能做出真正能跑的东西",这条链路上任何一环断了,这个平台就不成立。把目标收敛成这样一个能被一张截图证明的、不可含糊的验收点,意味着团队不是在"感觉有进展",而是在追一个要么通、要么不通的硬指标。这一天,它通了。

端到端闭环跑通:说一句话,画面就变

这条闭环由六个环节首尾相接:你在对话框里说出需求 → agent 把对应的代码写进游戏文件 → 文件监听器察觉到改动 → 通过实时通道通知前端 → 引擎动态加载新代码 → 画面立刻更新。这天第一次把这六环完整、稳定地串通,并且用自动化浏览器截图实测到了那个正在旋转中、带着倾斜角度的立方体,全程除了一个无害的图标缺失提示,没有任何报错。这意味着"所见即所得"不再是愿景里的一句话,而是一条真实存在、可重复触发的流水线。后面所有"边聊边做、立刻看到效果"的体验,都建立在这条闭环之上;它通了,产品才算真正"活"了一次。

三层架构落地:各司其职、可替换

为了让这条闭环长期站得住,这天把系统切成了几层职责清晰、可独立替换的部件:一层是真正驱动 agent 思考与行动的运行时内核(管模型调用、工具、会话、记忆);一层是纯粹的编排与界面桥接(负责把文件改动广播给前端,自己完全不碰大模型);一层是引擎(把游戏代码渲染成画面);再加上用户直接面对的三栏界面。这套划分写进了内部的接口约定,并被定为不可随意重议的铁律——内核就是内核、编排就是编排,边界不许含糊。它的价值在于:每一层都能独立演进、独立替换,某一层出问题不会牵连全局,也让"换一个引擎、换一种界面"在未来成为可能,而不是从头重写。

把"占位壳"换成真正的 agent 运行时内核

凌晨那版闭环里,驱动 agent 的还只是个临时占位的空壳;这天分三十多个步骤,把它替换成了一套真正"类专业编码助手"的 agent 运行时内核。这套内核具备一个真实 agent 该有的东西:能调用大模型、能使用工具、能维护会话与记忆、能在一个"思考—行动"的循环里自主推进。替换之后,系统第一次拿到了真实的大模型回复,并跑通了"真模型 + 真工具"的完整闭环。这一步把产品从"看起来能聊"推进到"真的能干活"——之前的对话只是表演,现在背后是一个能读、能写、能调工具去真正改动你项目的引擎。

不重复造轮子:复用标准而非抄千行代码

在补全 agent 能力时,有两块本来可以"照着别处抄上千行"来做:一是把工具能力接进来的协议层,二是一套标准的对话事件协议。这天的判断很明确——凡是已经有成熟开放标准、且能直接装来用的,就不自己重抄一遍。于是这两块各自用官方提供的标准实现替换掉了早前的手写版本:工具协议那一处代码从一百多行缩到八十行,还顺带白拿到了更完整的传输方式和能力变更通知;对话事件协议那一处则直接引入标准库、转出三十多个标准事件,几乎没写新代码。两步加起来净增不到两百行,换来的却是企业级的能力。这背后是一条会反复出现的工程纪律:把力气花在别人没替你解决的难题上,而不是重造已经躺在公共标准里的轮子。

聊天界面上百次打磨:从裸字符到接近桌面级

一旦闭环真通了,界面的体感缺陷就成了最痛的地方。这天用极小的步长、上百次迭代,把聊天面板从"裸字符 + 占位框"打磨到接近成熟桌面助手的质感。这里面有一整套手写的 Markdown 渲染(代码块、列表、表格、任务清单都支持),有逐字打字的流式动画且速率会随内容长短自适应,有把工具调用浓缩成一枚信息密度很高的"药丸"标签、点开还能看完整结果,有把 agent 的"自我纠正/反思"用视觉上分隔出来,还有按无障碍标准把气泡与背景的对比度调到达标、并为偏好减少动效的用户关掉循环动画。每一拍都只动一处、改完自测、再记一笔。这条线说明的事很朴素:能力再强,如果读起来费劲、看着廉价,用户也不会信任它;把日常最常盯着的那块界面抠到顺眼,本身就是核心功能的一部分。

扁平化重构 + 零构建直跑源码

下午做了一次工程结构上的扁平化重构,把原本层层嵌套的目录拍平,让各个部件以更直接的方式并列。配套确立了"零构建"的开发方式:克隆下来之后,一条命令就能直接拉起源码运行,不必先经过一长串编译打包。对开发者来说,这意味着改一行代码、几乎立刻就能在浏览器里看到效果,迭代速度直接上一个台阶;对想上手的新人来说,"从克隆到看见画面"这段路被压到最短。结构上的简化看不见摸不着,却决定了后面几周能不能维持"每天一大步"的节奏——地基越简单清楚,在上面盖得就越快越稳。

Studio 三栏界面成形:文件、预览、控制台、各种切换器

晚间集中把 Studio 的三栏界面铺了出来,一口气补上一批真正能用的面板:左侧的文件树接上了真实的项目文件、点一下产物就能预览;中间是直连引擎的实时预览窗,带帧率显示、暂停、重载、全屏,以及桌面/移动两种设备模式;还有把引擎控制台输出接进来的面板、能列出并回放历史会话的切换器、以及项目与游戏的切换入口和一个"新建"菜单。值得一提的是,这天还顺应一个直觉把"项目"和"游戏"两个概念合二为一——用户说它们本来就是一回事,界面就不该硬分。至此,"左侧管理、中间预览、右侧对话"的基本格局定了下来,Studio 从一堆能力开始收拢成一个能用的产品形态。

这一天意味着什么

把四条线连起来看,这一天的分量在于:它不是某个单点功能上线,而是整个产品的核心命题第一次被端到端地证明成立。从一句话到一个会动的立方体,中间的渲染、运行时、编排、界面每一环都真实跑通,并且是在一台干净机器上、被一张截图实证的。立方体之后的所有复杂——真实的游戏、复杂的场景、整支 agent 团队——都是在这条已经接通的主干上继续生长。也正因如此,这一天值得被当成范本记下来:先把那条最关键、最能证伪的主链路打通,再谈枝叶;能跑通一次,就有第二次、第一百次的底气。

← 看全部每日更新