博客 › 系列

与 AI 一起学编程

一个关于与 AI 智能体并肩构建生产级软件的系列:什么行得通、什么会出问题,以及当 AI 成为运行时原语而非一项功能时,架构会如何改变。

1. 在编写引擎之前先规划智能体

在空间运行时的第一行代码存在之前,这个周六先规划出了将要构建它的智能体舰队。Product、SDK、Studio、Marketing、Operations、AI strategy,再加上一层监督这些监督者的治理层。这就是如何把一个单人团队增效为一家真正交付产品的引擎公司——智能体先于架构出现,因为智能体塑造了架构。

2. 八个演示,零代码:SDK 到底要为什么而存在

八个规范性的演示证明了一个空间运行时到底是为了什么而存在——竞技场多人游戏、AR 教练、HUD 设计器、主播模式、服务点叠加层、伴侣 HUD、瞄准训练器、多人 HUD 同步。零代码,但每一个都已完成规格说明。演示就是规格说明,也是 RakuAI 展示你的 AI 一旦栖居于现实世界能做什么的方式。

3. 在纸上勾勒 SDK 的文件夹结构

文件夹结构就是代码的组织架构图——早期做对了,接下来两年的每一个 PR 都会落在正确的位置。这个周六,在任何代码存在之前,先画出了 SDK 的骨架:/apps、/modules、/assets、/docs、/config,再加上锁定你的智能体所要构建的契约的模块桩。这就是让一个由 AI 构建的空间运行时能保持多年连贯的纪律。

4. 第一次提交之前的最后一个周六

仓库开放前的最后一个周六——身后是三个月的设计工作。智能体名单已锁定。演示套件已规定。SDK 文件夹结构已画出。API 界面已起草。一份十年前的专利资产已准备好成为地基。这就是在一行代码发布之前,把一个空间运行时设计成贴合其团队所需要的样子。

5. 开启每周节奏

公开日志的第零天:仓库上线,智能体开始工作,一份智能眼镜规格说明摆在桌上,作为下游每一个决策的强制约束。这个赌注很简单——最有意思的 AI 体验是空间性的,锚定在你所站立的真实场所之中。这就是这个明确为了在每一帧都接受你的模型指挥而构建的引擎。

6. 282 次提交,公开日志的第一个周末

两天坐在键盘前,自主智能体在底层持续消化 issue 队列,到周日晚上,运行时仓库积累了 282 次提交。主循环、延迟追踪器、让 SDK 得以链接进来的 C API——这里是发布了什么、出了什么问题,以及当智能体驱动的循环终于顺畅运转起来时是什么样子。这就是把一个单人运行时团队增效意味着什么。

7. 在 SDK 出现漂移之前就让它追上来

每一个多仓库项目都以同样的方式死去——一个仓库一路狂奔,另一个悄悄腐烂。这个周六把 Unity 和 Unreal 的 HelloAR 接线到行为完全一致,并构建了让这种差距不可能出现的一致性测试关卡。这就是让一个空间运行时及其绑定保持多年连贯的纪律,让你的绑定选择永远不会把你锁在某个功能之外。

8. 在芯片到货之前先验证硬件

把产品目标从 AR1+ 转向 AR2 Gen1,然后为一款还没摆上桌的硬件发布热验证、Wi-Fi 7 稳定性和传感器启动测试框架。等芯片真的到货时,验证从第一天就开始,而不是第九十天。这就是 RakuAI 如何比竞争对手更快地在你的硬件上发布——昂贵的那部分已经提前付清了。

9. 亚毫米级锚定与书法难题

一个来自合作伙伴对话的严苛精度目标:在一张书法练习纸上,叠加层漂移必须控制在亚毫米级。到周六晚上,运行时已经拥有了亚毫米级锚定姿态 API、实时笔尖追踪,以及基于标记的纸张检测。这就是让 AR 从一个玩具变成一位导师所需要的那种精度。

10. 故意放慢智能体的脚步

三十七次提交,而不是八十次——这是故意为之。我削减了智能体队列,放慢了节奏,好让自己真正能读懂正在落地的东西,结果代码库反而因此变得更干净。以下是让一个由智能体构建的运行时保持连贯,而不是沦为一堆各自干净却彼此割裂的 PR 的纪律。

11. 公开两个月,幕后积累多年

两个月的公开工程日志,幕后却是多年的积累。一个安静的周六用来盘点:一个跨平台的 C++ AR 运行时,AI 被烘焙进仿真步进之中,一套已经稳定下来的架构,以及一个近在眼前的十二月生产就绪里程碑。这就是当一个 AI 原生的空间运行时不再只是一句使命宣言、而变成一个仓库时的样子。

12. 从 Blade 到 Raku:一个周六里,给整个代码库改名

占位名终于摘掉了。在一个周末里,智能体扫过每一个仓库中的每一处引用,把 Blade 和 ar1-runtime 全部改成 Raku——没有弄坏构建,也没有破坏兼容性。这个名字的意思是安逸、舒适、人的温度。工程终于赶上了那个一直在等它的品牌。

13. Meta Quest 现在是一个目标平台了

Meta Quest 现在是 Raku 的目标平台了。在 Horizon OS 上的 OpenXR、带合成图层的透视 AR、立体渲染和 6DoF 追踪——这个引擎现在触达了空间计算领域最大的装机量之一。在用户已经拥有的硬件上与他们相遇,然后把同一份体验免费带到未来的眼镜上。

14. 生来就能听 ChatGPT、Claude 和 Gemini 的指挥

这个周末,引擎学会了接受任何云端 LLM 的指挥——作为一个运行时层面的关切,而不是一个聊天面板。到周日,XRAssistantService 已经能把模型意图流式传入语音管线,眼动追踪的注视点渲染上线了,Wi-Fi 7 的渲染卸载也有了真正的宿主。ChatGPT 能驱动它。Claude 能驱动它。Gemini 能驱动它。这就是整个重点。

15. OpenXR 是骨架,双链路无线电是神经

这个周末,我们在标准上下了一次真正的赌注。到周日晚上,运行时已经有了它的 OpenXR 骨干——图形绑定、帧生命周期、动作同步——外加一个双模 RF/光学链路管理器,能在应用完全不知情的情况下随时切换无线电。在标准存在的地方采纳标准;在标准不存在的地方自己构建;在标准赶上来的时候,做好再次采纳的准备。

16. Claude 负责写,Gemini 负责评审,ChatGPT 负责当传声筒

三个月过去,开发工作流已经稳定成一套多供应商的节奏:Claude 编写运行时,Gemini 评审 diff,ChatGPT 为架构决策当传声筒,Copilot 负责自动补全。最重要的一条规则——写一个 PR 的模型,不能是评审这个 PR 的模型。这既是构建这个 AI 原生运行时所用的工作流,也是这个运行时本身对待各家模型的姿态。

17. 我发现存根的那个周六

四十七个函数声称在做真实的工作。四十七个实际上都在返回占位符。这是我去寻找智能体悄悄落地的那些存根的一个周六——并借此建立起了把「由智能体编写」变成「值得被信任」的审计、测试和纪律。这就是让一个空间运行时值得被信赖去构建的那份诚实。

18. Visual Studio 2026 讨厌我们代码的那个周末

两百个错误,六个类别,十二个 PR,两天时间——以及这个运行时历史上第一次绿色的 x64 构建。这是把一个跨平台空间引擎搬上 MSVC 2026 Insiders 内幕,任何 C++ 代码库都会撞上的那六类错误,以及修复它们的那些智能体驱动的扫荡。三个平台,一个运行时,准备好在 Windows 上交付。

19. 引擎长大的那个周末

一个 276 次提交的周末,落地了用于设备端 SLM 推理的 TensorFlow Lite、AES-256-GCM 联邦同步、OpenXR 合成层、卡尔曼滤波锚点稳定,以及光通信通道的硬件抽象层。这是 RakuAI 不再只是一个研究项目、真正长出一个平台该有的表面积的周末——智能眼镜和 AI 实验室将要构建其上的骨架。

20. 一个自主智能体一个周末发布了十个子系统

一夜之间 139 次提交。十个基础子系统在一个周末内跨分支落地,大部分由一个针对我持续填满的队列自主运行的智能体完成。这才是当一个引擎的基础是由智能体构建,而不是事后为智能体加装时,实际的样子——也是为什么这个选择塑造了你的 AI 将要栖身的运行时中的每一个架构决策。

21. AI 作为神经系统,而不是 AI 作为工厂

2026 年大多数号称「AI 原生」的引擎,意思其实是它们加装了一个聊天面板。RakuAI 的构建方式不同——AI 是一个运行时原语,在每一帧都参与循环,更接近神经系统而不是工厂。如果你只读一篇关于「AI 原生」在架构层面究竟意味着什么的文章,就读这一篇。

22. 粉红画面、分数失控、XR 崩溃。一个周六里的四个 bug。

四个互不相关的 bug,零重叠的子系统,一个周六。缺失着色器导致的粉红画面。翻倍计算的分数。硬性的 XR 启动崩溃。一个死活锁不上的摄像机。这正是那种能逃过所有单元测试的集成失败——以及把一个坏掉的演示变成一个合作伙伴可以信赖的运行时所需要的初始化顺序、事件所有权和启动守护纪律。

23. 引擎如何与你带来的任何模型对话

如果 AI 是你引擎里的一个运行时原语,你是不是就被锁死在你接入的那个模型上了?不——AI 层是通过接口暴露的,而不是通过导入。六个子系统,一个模型管理 API,一种命名能力而非模型的文件格式。这就是让 RakuAI 能够替换任何模型、任何供应商、任何推理路径,而不用改动调用方一行代码的边界——以及为什么随着模型市场的震荡,它反而变得越来越重要。

24. 当演示悄无声息地崩溃时

比崩溃更糟的:一个没有崩溃、没有报错、也没有工作的演示。失灵的输入。一个披着完成游戏外衣的占位场景。什么都没说的日志。这是我让引擎拒绝悄无声息地失败的那个周六——那种响亮失败、可被 grep 到的错误、按邻近性审计的纪律,让一个空间运行时对在其上构建的人们保持诚实。

25. 从 54% 到 100% 的测试通过率

三个周末,从 54% 到 100%。测试运行器不在乎你的感受、你的星标数,或者你的路线图——它会精确地告诉你,你的空间运行时到底有多少是真正能工作的。这是我们逐个根因、走过这段差距的过程,以及为什么通过率是一个合作伙伴能要求得到的最诚实的信号。

26. 那次弄坏了 300 个文件的查找替换

一次深度审计发现了两件我并不乐意看到的事:一次范围过宽的查找替换,悄无声息地在三百个文件里弄乱了标识符;以及一个硬编码在公开源文件中的许可密钥。两者都在一天内修复了。这是一份诚实的实地指南,讲的是一个智能体驱动的代码库最容易暴露出的失败模式——以及能抓住它们的护栏。

27. 一个周六替换掉七个 O(N²) 算法

七个 O(N²) 的占位实现,一个周六,以及把一个摇摇晃晃的演示变成一个飞速运转的运行时的那些生产级算法。这就是 RakuAI 如何把 AI 写出的代码变成引擎级性能的过程——以及为什么算法审计是你的空间技术栈能获得的最快的一次升级。

28. 像代码一样热重载游戏设计

你的体验是一个文件,而不是一个二进制文件。.raku 格式就是 JSON——带有模式版本、可 diff、可热重载,并在运行时 AI 每一帧接入的地方留有明确的钩子。下面是一个真实文件的样子,为什么 JSON 胜过自定义 DSL,以及「游戏设计在 pull request 中评审」如何成为我们真正的工作流程。

29. Gemini 评审了 Claude 的 PR。三十六条评论之后,代码变好了。

Claude 写了八个子系统的 PR。Gemini 评审了它们,留下了三十六条评论——其中两条是真实存在、原本会上线的线程安全 bug。这就是多厂商评审模式在真正发挥作用:不同的模型,不同的盲点,更难蒙混过关的代码。这是每个认真的合作伙伴都该向任何引擎团队打听的那种纪律信号。

30. 瓶颈从来就不是打字速度

五个智能体,五个分支,一个代码库,一个周末:112 次提交。瓶颈已经不再是打字,而是决定哪四个问题值得四次并行尝试,以及哪两个结果好到可以保留下来。这份工作不再是高级独立贡献者(IC),而变成了一支永不睡觉的团队的技术负责人。

31. 一个周六早上的八项安全发现

一家企业合作伙伴的安全团队对我们的 API 表面做了尽职调查,回来时带着八项严重和高危发现。每一项都在周六晚上之前落地了修复。这里是它们的分类、新增的永久性护栏,以及一个由智能体驱动的运行时必须刻意防范的失效模式。

32. 那个找不到 dxcompiler.dll 的测试

八个测试,一个 Windows 错误码,一个运行时若没有就无法启动的缺失着色器编译器 DLL。这次修复把一个硬性的加载期依赖,变成了一个优雅、可观测的兜底方案——让引擎能在任何地方运行,而不只是在配置齐全的开发者工作站上。可移植性是合作伙伴愿意为之付费的一项特性。

33. 全部十八个 DLL 在 Linux 上全部变绿

十八个原生库中,347 个未被标记的函数,被一个符号可见性默认设置隐藏起来,一次一个未定义引用地拖垮 Linux 构建。追查到根源,彻底清理干净,并锁进一道 CI 护栏——任何丢掉公开符号的 PR 都会被它拦下。Linux 现在是一等目标平台了——而代码库在每一个平台上都变得更诚实了。

34. 今天,每一个调用 LLM 的地方都加上了提示词长度护栏

一次 15 倍的成本飙升,引出了一次对运行时里每一个与 LLM 对话的地方的审计——结果发现五个调用点可以发送无上限的提示词,没有上限、没有截断、没有任何防御。到周六下午,每一个调用点都改为经过同一道共享护栏,配有逐次调用的预算、遥测数据,以及一道能拦下回归的 CI 检查。这就是一个空间运行时如何让「提示词长度纪律」变得不可能被遗忘。

35. Meshy 流水线,以及那件搞垮姿态估计的长袍

六周时间把 Meshy.ai 接入一条七阶段资产流水线,教会了团队三件 API 文档里不会写的事。长袍会遮住姿态估计所需的轮廓。日文角色名会让任何把 stdout 导入文件的东西崩溃。而 Meshy 的重新网格化(remesh)端点,可能在你冲刺到一半时就突然消失。这就是把 AI 生成资产变成一个空间运行时的生产级内容时,那些不那么光鲜的现实。

36. 回顾 GDC 与那次移动平台闪电战

2026 年 3 月下旬,GDC 前夜发布和一次双平台移动端推进撞在了同一周。这里是当时发布了什么、在我起飞前四十八小时出了什么问题,以及哪些在 diff 上看起来很小的修复,却让笔记本电脑上的演示没有在陌生人面前出岔子。这就是以会议速度交付一个空间运行时的真实样子。

37. 构建停止争吵的那个星期六

一连串在 diff 上看起来毫不起眼、却让整个项目脱胎换骨的清理提交。十八个 DLL 在 Linux 上全部转绿。每一个 LLM 调用点都加上了防止提示词失控增长的保护。`/api/v2/` 命名空间在所有出现的地方都被重命名为 `/api/raku/`。空指针安全检查扫过了整个运行时。这个构建终于变成了一个你可以不用再和它争论的东西。

38. 六个 MCP 工具,以及适配器接下来会解锁什么(现已增至 17 个)

自三月底以来,运行时就一直在使用 Model Context Protocol 进行通信。它最初以基于 stdio 传输、默认拒绝的权限模型、完整审计日志的六个工具起步——如今已增长到 17 个原生 MCP 工具。这个服务器是任何外部智能体驱动引擎所使用的边界。这篇文章是当时六个工具的快照,以及下一层真正的适配器与合作伙伴集成会解锁什么。这就是 LLM 厂商所依托构建的 MCP 运行时。

39. 在现实世界中为你的 AI 加持

当你的 AI 助手需要构建、查询或模拟一个空间世界时,它所栖身的运行时。五项专利可追溯至 2012 年。为眼镜的热功耗包线而生。设计之初就是多厂商中立的。原因如下。

40. RakuAI 是如何端到端运作的

从手机扫描到 3D 高斯溅射,再到任何 LLM 通过多厂商 MCP 将其作为工具进行驱动。这是一份诚实的端到端说明:今天已经上线的是什么,哪些还卡在 GPU 额度上,以及为什么这个仅做推理的运行时才是真正的护城河。

41. 扫描它,然后和它对话——面向日常空间的 RakuAI Capture

用你的手机扫描一个真实房间——不需要专业设备,不需要标记点,不需要安装任何东西——得到一个你的 AI 助手可以通过 MCP 读取、测量并推理的 3D 重建。GPU 溅射体训练将在数日内上线。这就是 Raku Capture 的故事。