一张鹈鹕骑自行车的渲染图,最近在技术圈小范围传开。作者是长期写技术笔记的 Simon Willison,他给 ChatGPT Codex 下了三句提示词——渲染场景、加背景和flair、再变得更好——就让本地安装的 Blender 5.1.2 自己生成 Python 脚本、跑完渲染,输出了一张有沙滩小屋、彩旗和气球的精致图片。

如果只看这三句提示词和最终效果图,很容易得出一个结论:前沿模型已经能熟练操作专业3D软件了。这个结论没错,但只说对了一半。完整的操作记录显示,Codex 第一次尝试在沙箱环境里启动 Blender 渲染时直接崩溃,退出码139,最后是切换到未沙箱化的已批准执行路径才渲染成功。这段挫折在原文里完全没提。

三句话背后,其实是四轮迭代

真实过程比“三句提示词”复杂一层。渲染参数在三个版本里逐步升级:初版分辨率1440×1440、48采样;加flair版本升到1800×1400、64采样;最终成品到了2000×1600、96采样,全程启用 Cycles 去噪和 AgX 色彩变换。自行车模型的细节也在变精细——每个轮子28根辐条、双轮胎轮圈、链条和曲柄踏板都对齐了鹈鹕的腿和翅膀。

三轮渲染迭代:参数在悄悄升级 初版 1440×1440 48采样 加flair 1800×1400 64采样 最终版 2000×1600 96采样 分辨率与采样数一路走高,说明agent在“理解”模糊指令,而非套模板

三轮结束后,Willison 又加了第四句提示词:把整套操作方法写成一份可复用的“技能”文件,存成了本地 $blender-local。这份文件记录了实用经验——预览用32-48采样、成品用64-96采样、渲染前记得保存 .blend、人工检查手脚接触点有无穿模。这才是真正值得关注的部分:agent不只是完成了一次任务,还在总结经验、给自己写操作手册。

沙箱崩溃说明了什么

退出码139通常意味着程序被信号强制终止,常见于内存越界或权限冲突。Codex 第一次在沙箱里启动 Blender 时撞上了这个问题,日志里还留下了 USD Arch_ValidateAssumptions 的警告,但没人确认这是不是崩溃的真正原因。最后的解决方式是绕开沙箱限制,用已批准的非沙箱执行路径重试。

这不是小事。“agent能自主操作桌面应用”这个说法,前提往往是有人(或有权限配置)帮它把安全边界先松开一道口子。

三句话是给读者看的,退出码139是留给工程师的。
  • 风险.agent遇到崩溃后选择绕开沙箱而不是排查根因,这种“先跑通再说”的路径依赖,一旦复制到更敏感的系统操作场景,安全边界会变得模糊。

技能文件会过期,标准做法也没抄

那份自动生成的技能文件里还留了一条提醒:Blender 5.1.2 中 Material.use_nodes 等 API 即将随 6.0 版本弃用。也就是说,agent这次总结出来的经验,很可能撑不过下一次大版本升级——它记住的是“怎么用现在这个Blender”,不是“怎么应对Blender的变化”。

再往生产环境的角度看一层差距。Blender 5.2 LTS官方文档给出的推荐做法是:先渲染成PNG图片序列,再用外部ffmpeg命令单独编码成视频,理由是避免渲染和编码任一环节出错导致全部重来。Willison的实验里提到用ffmpeg合成视频,但没有展开这层容错设计。个人玩票式的实验图省事,跳过了工业界为了不重跑而设的安全垫。

看到的 vs 实际发生的 原文叙事 三句提示词 一次到位出图 内置ffmpeg合成 整体丝滑愉快 实际过程 沙箱崩溃 退出码139 绕开限制才渲染成功 官方推荐帧序列+独立ffmpeg 技能文件带版本过期预警

谁该盯着这件事

对 3D设计师和特效从业者来说,这次实验的意义不在“工作会不会被取代”,而在于agent已经能读懂Blender的Python API和文档语料,这套能力大概率会先渗透进批处理渲染、场景占位这类重复劳动,而不是从零设计。对AI agent厂商来说,这是一个比写代码更硬核的能力标杆——真正难的不是调用API,是agent能不能在崩溃后自己诊断、绕过限制、还把经验沉淀成可复用资产而不失效。

这种模式能不能推广到CAD、AE、Photoshop这些专业软件,取决于一个此前不太被提起的前提:模型对这个软件的公开文档和社区脚本积累得够不够多。Blender开源二十年,文档和论坛脚本浩如烟海,这才是agent能“看懂”它的底子,不是所有专业软件都有这个条件。