
跑到终端里敲几行命令Claude Code 就把一个丑萌丑萌的牛头雏形建出来了再切到 Codex 里把游泳男孩女孩的动作参数调了一轮——这个画面放在一年前我是不信的。但用 WorkBuddy 把 Claude Code 和 Codex 收进同一个工作台再配上一套我们自己写的 Craftsman Agent Skill现在这就是我的日常。这篇我就把整套玩法的思路、Skill 怎么写的、以及两个 IP牛来、游泳男孩女孩从 0 到 1 的实操过程完整拆出来。如果你也在做潮玩、3D 设计或者独立开发想用 AI 把建模和批量化生产跑通这篇应该能帮你省掉不少摸索时间。1. 为什么是 WorkBuddy Skill而不是直接问 Claude Code1.1 “能聊”和“能干”之间差了一套工作流我在刚开始拿 Claude Code 做 3D 设计时最大的感受是它很聪明但很散。你让它“设计一个牛头潮玩”它真的会给你写一版 Three.js 或者 OpenSCAD 代码乍一看像模像样可一旦你追问“比例是多少”“壁厚多少”“导出格式是什么”它就开始自由发挥了。同一个问题换一天问出来的东西完全是两个风格。原因很简单——Claude Code、Codex 这类编码智能体本质上是通用代码生成器它的默认知识里并没有“潮玩 IP 设计”的行业规范。你每次都要把需求、约束、参数重新描述一遍而人又最容易在这种重复描述里漏掉关键信息最后模型就跑偏。所以真正的问题不是“AI 能不能做 3D 设计”而是“怎么让 AI 稳定地按你的标准做 3D 设计”。这就是 Skill 存在的意义。Skill 相当于给智能体配备了一本操作手册它告诉 AI“你是谁、按什么流程干活、输出什么格式、避开什么坑”而不是让 AI 每次都在脑子里临时凑一个方案。用 WorkBuddy 来管这件事比单纯在 Claude Code 里写指令更顺手因为你可以把技能、会话、项目文件统一管理不用每次都在命令行里翻历史记录。1.2 Skill 的本质给智能体一本操作手册很多第一次接触 Skill 的朋友会把它理解成“一段更长的提示词”。对也不对。提示词是每次对话都要重复的临时指令而 Skill 是一个持久化、结构化的知识包。在 WorkBuddy 里一个标准的 Skill 就是一个 SKILL.md 文件放在项目的 .workbuddy/skills/技能名/ 目录下。文件头部有一段 YAML 元信息标记技能名称和适用场景正文部分则写具体的执行流程、设计规范、代码要求和示例。当对话内容命中这个 Skill 的描述时智能体会自动把整个 Skill 内容读进去再开始干活。这个机制带来的好处非常明显你可以把一次次调教 AI 的“经验”沉淀下来。第一次做牛来 IP 时我花了几个小时才让模型生成出我想要的比例后来我把这些约束写成 Skill第二次、第三次生成几乎不用再重复沟通。说白了Skill 是把“我口头教 AI 怎么干活”变成“AI 自带一套行业规范”。对于要做系列化 IP 的人来说这个差异是决定性的。你不再是每次面对一个“失忆的实习生”而是面对一个“读完员工手册的老师傅”。1.3 把 Claude Code 和 Codex 放在同一个工作台另一个容易踩的坑是Claude Code 和 Codex 是两套独立工具各有各的启动方式各有各的上下文。你刚在 Claude Code 里把模型调出一个方向切到 Codex 里又得从头讲一遍需求。这种碎片化的体验在做小脚本时还好一旦涉及建模这种长流程就是灾难。我的做法是用 WorkBuddy 把两者统一管理。WorkBuddy 本身是个桌面应用它在本地把 Claude Code、Codex、Gemini CLI 之类的编码智能体都接进来你在同一个界面里开多个会话项目文件、Skill 目录、对话上下文都能共用。理论上你完全可以只用一个工具但双引擎的好处是Claude Code 在理解自然语言和写作代码注释方面更细腻Codex 在批量执行和代码稳定性方面更扎实把同一个 Skill 喂给两个引擎相当于多一个视角给你做交叉检查。2. 环境搭建从零装出你的 3D 设计工作台2.1 安装 Claude Code 与 Codex先说 Claude Code。它本质是一个 Node.js 命令行工具装好 Node.js建议 18 以上版本之后终端执行 npm install -g anthropic-ai/claude-code。装完在终端输入 claude 就能进交互界面。首次使用会要求登录 Anthropic 账号或者在 Claude 相关服务里配置 API Key。这里提醒一句不同版本的 Node 可能会有兼容性提醒遇到权限报错就检查一下 npm 的全局安装目录是不是在 PATH 里。Codex 的安装方式类似npm install -g openai/codex或者你用 Homebrew 的话 brew install codex 也可以。装完需要配置 OPENAI_API_KEY 环境变量Windows 下在系统设置里加环境变量macOS/Linux 下直接写进 ~/.zshrc 或 ~/.bashrc。两个工具装好后先在终端分别跑一句最简单的指令比如让 claude 写一个 hello world、让 codex 写一个 hello world确认两个引擎都能正常返回再进入下一步。我见过不少人直接装 WorkBuddy 再配引擎结果出问题时分不清是引擎没装好还是 WorkBuddy 配置错调试成本直接翻倍。2.2 安装 WorkBuddy 并接入两个助手WorkBuddy 提供桌面客户端去官网下载对应系统的安装包即可安装过程没什么特殊选项。首次启动会让你选择要接入的 AI 引擎勾选 Claude Code 和 Codex它会去读取你本机已有的登录态和 Key。如果你的引擎已经能在终端跑起来这里基本就是一路下一步的事。需要注意WorkBuddy 是把本机的编码智能体包了一层管理壳它不是云端服务所以引擎的登录、API Key 这些仍然归引擎自己管。换句话说Claude Code 登录过期了你在 WorkBuddy 里也会跟着掉线得回终端重新认证。接到工作台之后我建议你先建一个测试项目随便写点代码让 WorkBuddy 同时调用两个引擎各生成一版确认工具链通了再上真正的 3D 项目。这个过程很土但能帮你避免后面建模建到一半才发现某个引擎根本没连上。我当时就吃过这个亏在 WorkBuddy 里折腾半天最后发现终端里 Codex 的 Key 根本没配好白费了一个晚上。2.3 建立项目目录与技能挂载点WorkBuddy 默认会在项目目录下寻找 .workbuddy 文件夹里面可以放 skills、agents、memories 这些子目录。我的个人习惯是给 3D 设计单独建一个仓库比如 ip-design-studio/然后按 IP 名称分子目录ip-design-studio/ ├── .workbuddy/ │ └── skills/ │ └── craftsman-3d-ip-designer/ │ └── SKILL.md ├── cow-lai/ # 牛来项目 ├── swim-kids/ # 游泳男孩女孩项目 └── shared-assets/ # 公用模型、材质库这种结构的好处是每个 IP 自己的对话记录、生成文件都隔离但 Skill 又是全局共享的。做新 IP 时不用重新写一遍设计规范直接在 skill 里追加新角色的约束就好。我强烈建议把模型源文件、导出文件、参考图分开别让 AI 生成的临时文件糊在一堆不然后期排查问题你会想哭。3. Craftsman Agent Skill 实战把 3D 设计经验写进技能里3.1 Skill 文件的基本结构与角色设定Craftsman Agent 这个名字听起来唬人其实本质是给智能体设定一个“工匠”人格和工作流。我用的 Skill 文件结构大概是这样的--- name: craftsman-3d-ip-designer description: 当用户需要设计 3D 潮玩 IP 角色、输出可 3D 打印或可渲染的模型时使用 --- # 角色 你是资深潮玩 IP 建模师熟悉…… # 工作流 ## 阶段一概念澄清 ## 阶段二参数化建模 ## 阶段三模型检查 ## 阶段四导出交付YAML 里那个 description 非常关键它决定了 WorkBuddy 什么时候把这个 Skill 自动加载进来。写 description 要用“当……时使用”这种触发句式越具体越好。如果你写“3D 设计工具”那智能体可能在聊别的时也乱触发如果你写“当用户提到牛、游泳、潮玩、IP 角色、3D 打印时使用”命中率就会高很多。我发现很多人写的 Skill 不生效八成就是 description 写得太宽泛导致该触发的时候没触发不该触发的时候瞎触发。3.2 工作流阶段的拆解从概念到可打印模型我的 Skill 正文核心是把 3D 建模拆成四个阶段。概念澄清阶段AI 要先用文字和草图参数把角色定义清楚包括角色背景、风格倾向、姿态、颜色、比例这一步不通过不允许进入建模。参数化建模阶段我要求 AI 优先使用 OpenSCAD 这类参数化建模工具写代码因为参数化意味着所有尺寸都能改后期微调特别方便如果是复杂有机形态再用 Three.js 或者 Blender Python API 生成网格。模型检查阶段AI 必须检查模型是不是封闭网格、有没有破面、壁厚够不够这是 3D 打印最关键的环节很多新手直接跳过最后打印出来全是废件。导出交付阶段统一导出 STL、GLTF、OBJ 三种格式并附上尺寸说明和生产建议。这套流程看起来是常识但如果你不写进 SkillAI 根本不会主动按这个顺序走。我见过最典型的问题就是让 AI 做个牛头它直接画了一堆圆球方块堆在一起尺寸没有、壁厚没有能看不能用。把流程固化进 Skill 之后AI 至少会按顺序推进不会跳过概念阶段直接出模型。3.3 一个最小可用的 3D 设计 Skill 示例下面是我早期版本的简化示例你可以直接抄去改--- name: craftsman-3d-ip-designer description: 当用户需要设计 3D 潮玩 IP 角色、输出可 3D 打印或可渲染的模型时使用 --- # 角色定位 你是具备 10 年玩具行业经验的潮玩 IP 建模师。擅长把文字描述转化为参数化 3D 模型。 # 设计规范 - 风格圆润、卡通、可爱头身比建议 1:1 到 1:2潮玩手办常用 - 主要几何体优先用 OpenSCAD 的 union/difference 组合 - 壁厚不少于 2mm防止 3D 打印时断裂 - 所有尺寸使用毫米 - 输出格式STL、GLTF、OBJ # 工作流程 1. 概念澄清先输出角色设定表包含角色名、主题、配色、姿态、参考关键词 2. 建模生成完整可运行的建模代码 3. 检查用 meshlab 或 blender 命令行检查模型是否封闭 4. 导出在导出目录生成 STL/GLTF/OBJ # 已知禁忌 - 不要用 0 壁厚 - 不要在未确认概念前直接建模 - 不要让模型超高超重大这个 Skill 放在 .workbuddy/skills/craftsman-3d-ip-designer/SKILL.md 之后新开一个 WorkBuddy 会话你说“帮我设计一个招财风格的牛来 IP”它会自动加载这套规范按四阶段流程走。Skill 的价值不在于让 AI 多聪明而在于让 AI 稳定、不跑偏、每次都能交出符合你预期的结果。4. 案例拆解牛来 IP 从想法到模型4.1 需求描述与技能调用的全过程牛来这个名字取自“牛气冲天”“牛转乾坤”“好运牛来”这类吉祥话天生适合做招财属性的潮玩。我的原始需求就一句话“一个以牛为基础的潮玩 IP名叫牛来丑萌、招财、圆润单手可握。”在 WorkBuddy 新会话里输入这句话Skill 自动触发后Claude Code 很快给了角色设定表名字牛来身份是财神坐骑转世的现代打工人牛主体色调中国红加金色姿态是双手叉腰站立有点像那种台式机旁边的小摆件。这个阶段不要急着让 AI 出模型先把设定表审一遍。我当时改了两处一是把“现代打工人”改成了“憨厚但会赚钱的小掌柜”更贴合招财主题二是把姿态从站立改成半蹲抱金元宝这样整个造型更有记忆点。改完之后才让 AI 进入建模阶段。整个过程其实就是在和 AI 对齐概念这一步省了后面模型返工的成本要高得多。你会发现概念阶段花掉的十几分钟能帮你省下建模阶段的好几个小时。4.2 建模细节让 AI 生成的模型能真正落地建模阶段Claude Code 按 Skill 的要求用 OpenSCAD 写了一个牛头加身体的组合。简单示意一下核心思路module body() { scale([1, 1.2, 1]) sphere(r 20); } module head() { translate([0, 0, 32]) scale([1.2, 1, 1.1]) sphere(r 14); } module ears() { translate([-10, 0, 38]) scale([1, 0.8, 0.5]) sphere(r 4); translate([10, 0, 38]) scale([1, 0.8, 0.5]) sphere(r 4); } module horn() { translate([-12, 2, 44]) rotate([0, -20, 0]) cylinder(h 8, r1 2, r2 1); translate([12, 2, 44]) rotate([0, 20, 0]) cylinder(h 8, r1 2, r2 1); } // 金元宝、眼睛等省略 union() { body(); head(); ears(); horn(); }这段代码本身很简单重点是 AI 会把尺寸、位置统一用毫米算好并且用 union 把各部分拼起来保证模型是封闭的。我让 Claude Code 生成了这个版本后又切到 Codex 里用同一个 Skill 再生成一版两个引擎给出了略有差异的耳朵角度和元宝大小。我不以任何一版为最终答案而是取两者更符合“憨厚”气质的参数比如耳朵下垂角度大一点让整体更萌。这种双引擎交叉验证的方式是我后来用得越来越顺手的原因。4.3 效果检查与迭代模型代码生成之后WorkBuddy 里可以直接看到文件结构我把生成的 .scad 文件丢到 OpenSCAD 里渲染预览。第一次预览发现牛角位置偏内侧看起来像两根朝天椒而不是牛角我在会话里让 AI 调整牛角的角度和位置参数它一下子给出了好几组方案。像这种参数化模型的好处就是你只需要告诉它“角度往两边张开 15 度”“整体拉高 2mm”它重新生成代码你重新渲染两分钟就能看到效果。这个案例最终导出的是 STL用 Blender 打开做了简单上色预览确认造型没问题后我用 3D 打印机打了个素模。放在桌上那一刻说句实话成就感很强。但更让我高兴的是整个过程从概念到打印只花了半天而以前我做一个类似的泥稿要一周。对这个项目来说AI 并没有“替我做设计”它更像一个执行力极强的建模助理把我想象中的东西快速变成了能触摸的实体。5. 案例拆解游泳男孩女孩系列 IP 的批量生产5.1 系列化 IP 的难点风格统一做单个 IP 和做系列 IP 完全是两回事。单个 IP 你只需要让 AI 把一个角色做好系列 IP 的难点在于——游泳男孩、游泳女孩、可能还有不同的泳姿、泳帽、泳镜——它们必须看起来是“同一个世界观里的角色”而不是各玩各的。如果每次都用自然语言临时描述AI 就会给你生成风格漂移的角色男孩是圆脸女孩可能变成长脸男孩是 2 头身女孩可能变成 3 头身。观众一眼就看得出不是一套。解决办法就是把统一规范写进 Skill。我在 craftsman-3d-ip-designer 的 SKILL.md 里新增了一段“系列角色规范”同一系列共享同一个头身比比如都是 1.5 头身脸型统一为圆脸眼睛统一为两点式萌系眼身体姿态允许不同但材质和倒角半径要一致。这样无论切换哪个引擎、哪个会话AI 生成出来的角色基础造型都是一套基因。5.2 用 Skill 锁定设计规范具体到游泳男孩女孩我在 Skill 的角色设定表里给每个成员建了参数卡片角色头身比泳姿头饰主体色游泳男孩1.5:1自由泳蓝色泳帽海蓝色游泳女孩1.5:1蛙泳粉色泳帽珊瑚粉有了这个表格我让 WorkBuddy 用同一个会话生成两个角色。Claude Code 先生成了男孩Codex 接着生成女孩。两部分模型文件放在 swim-kids/ 目录下每个角色一个子目录。最后渲染时我把两个模型放进同一个 Blender 场景调整了各自的朝向做了一张“戏水”主题的概念图整套 IP 的视觉统一性一下子就出来了。表格写进 Skill 之后两个引擎生成的角色比例、脸型、泳帽颜色几乎完全一致这是我手动调教做不到的。5.3 批量生成与个性化调整系列 IP 真正让人觉得爽的是可复制。因为 Skill 已经把设计规范固化我之后想加一个“游泳小狗”角色只需要在参数卡片里加一行然后让 AI 按同样的流程走一遍。所有尺寸、导出格式、检查步骤都是现成的工作量从一个新 IP 的好几天压缩到一个下午。当然批量生产不意味着完全放养。每一版模型生成后我都会用 Blender 打开快速过一遍眼睛位置、手脚比例这些东西AI 有时候会在细节上犯“低级错误”比如两只手一长一短、泳镜位置歪了。这种检查不能省但也不再需要从零开始建模了。6. 踩坑实录常见问题与排查技巧6.1 Skill 不生效的排查这是新手最容易遇到的情况。你明明写好了 SKILL.md结果在会话里输入需求AI 完全无视那套规范该怎么自由发挥还怎么自由发挥。我踩过几次之后总结出三个检查点第一目录位置对不对。WorkBuddy 只扫描项目根目录下的 .workbuddy/skills/你放到别的地方它根本看不见。第二文件名必须是 SKILL.md大小写也要对。第三description 写没写清楚。如果描述太宽泛触发器可能不认为当前任务命中了技能如果描述太窄可能永远不触发。改完这些之后一定要新开会话再试。提示改完 SKILL.md 后一定要新开会话再测试。WorkBuddy 对 Skill 的读取通常发生在会话创建阶段旧会话不会自动加载新技能——这一点特别坑我一度以为是我文件写错了结果只是没开新会话。6.2 模型文件打不开、渲染出错的处理生成好的模型打不开大概率是文件本身有问题。最常见的是 STL 文件破面也就是网格不是封闭流形Blender、切片软件打开时要么报错要么显示异常。建议在 Skill 里就要求 AI 生成代码后先做一次封闭性检查或者用 meshlab 的命令行工具自动检测。我一般在本地装一个 Blender用它的 3D 打印工具箱插件检查选中模型点击“检查”就能看到哪些面反转、哪些边非流形。如果 AI 生成的 OpenSCAD 代码本身有问题比如两个组件只是表面重叠而没有真正合并导出时也会出问题。这时候让 AI 改用 union 包一层就解决了。6.3 跨工具切换时的配置问题用 WorkBuddy 同时管 Claude Code 和 Codex最常出现的怪问题是同一个 SkillClaude Code 执行得很好Codex 却像没读到一样。我查下来发现主要原因是 Codex 对 Markdown 指令的解析风格不同它更容易被非常明确的“命令式”段落带动。解决办法是在 Skill 里额外写一个“执行清单”区块用 1、2、3 这种硬编号把必须完成的动作列清楚两个引擎都能稳定执行。另一个配置问题是环境变量。Codex 如果找不到 Key在 WorkBuddy 里会直接报错你需要回终端用 codex --version 之类的命令确认 CLI 本身能跑再回来重启 WorkBuddy。顺序搞反的话你会误以为是 WorkBuddy 的问题实际上引擎早就离线了。7. 我的真实体会与后续扩展这个玩法真正改变我工作方式的是把“我能和 AI 聊出什么”变成了“我手上有多少套可复用的 Skill”。我第一次做牛来时很多规则是现场琢磨出来的第二次做游泳男孩女孩时我只需要把规则写进 Skill剩下的事情 AI 帮我干。所以如果你也想尝试这个方向我的建议是第一个 Skill 不要追求大而全先把最简单的流程跑通——一个角色、四个阶段、三个导出格式。跑通之后再往里面加规范、加案例、加禁忌慢慢它就会变成你的“数字老师傅”。最后分享一个小技巧写 Skill 的时候把失败经验也写进去。比如“不要用 0 壁厚”“不要直接生成 40cm 的大尺寸模型”“导出前先检查模型是否封闭”这些看起来不起眼的句子恰恰是 AI 最容易踩的坑。把这些写进去之后模型的成功率会肉眼可见地提升。下一步我打算把颜色材质、UV 贴图也纳入 Skill 流程让 AI 直接从概念生成带渲染材质的最终效果图。这条路还很长但走起来确实有意思。