上个月我干了件有点疯的事:没请建模师、没开渲染农场,就靠一台电脑和三个 AI 编程 Agent——Claude Code、Codex,外加 WorkBuddy 做调度——把两个自创 IP:牛来、游泳男孩女孩,从一句我想要个牛 IP做成了能上光固化打印机平台的文件,还顺手打出了第一版实物。支撑这一切的核心,就是我写的一套技能包:工匠智能体 Craftsman Agent Skills。这套东西解决什么问题?很多做潮玩、做个人 IP 的朋友都卡在同一个地方:想法有一堆,草图也画得出,但一到 3D 建模就歇菜。Blender 不是学不会,是学完黄花菜都凉了。而 Claude Code、Codex 这类 Agent 天生会写代码——那让它们直接写 Blender 的 Python 脚本生成模型,总可以吧?可以,但裸用很痛苦:每次都要重复交代背景、流程、规范,它还会自由发挥,给你整出个怪物。把流程和规范固化成一个 Skill,相当于给 Agent 一份完整的岗位说明书SOP,这才是整个工作台能跑起来的真正关键。这篇文章我会把 Craftsman Agent Skills 的设计思路、两个 IP 的完整实战过程、还有踩过的坑一次讲透。适合三类人:想用 AI 做个人潮玩 IP 的设计师、正在研究 Claude Code/Codex Skill 机制的玩家、以及单纯好奇 AI Agent 工作流能卷到什么程度的人。1. 先盘清楚三个 Agent 的分工:为什么不是一个工具干到底很多人一听用 Agent 干活,第一反应是选一个最强的就行。我一开始也这么想,后来发现根本不是这么回事。三个工具各有所长,硬要互相替代,只会让流程又慢又乱。1.1 Claude Code:适合当主工匠Claude Code 是 Anthropic 出的命令行 Agent。它的强项是长上下文和复杂任务编排:你让它把这个需求拆成五个阶段,按顺序执行,它能老老实实拆、一步一步做,中间还能自己读文件、改文件、跑命令、根据结果调整方向。这种一条线走到底的执行力,特别适合当整条生产线的主工匠。在 Craftsman 工作流里,Claude Code 负责的是主链路:需求拆解、角色设定卡输出、Blender 脚本生成、打印检查、迭代修改。它像一个资深的建模师,你给它需求,它给你一套完整方案,而不是零散的一小段代码。我试过让 Codex 干这活,它往往做着做着就丢了前面几轮对话里的设定,最后交出来的模型和最初需求完全是两个东西。1.2 Codex:用来跑变体和批量任务Codex 是 OpenAI 的编程 Agent,特点是生成快、迭代快。但它有个毛病:上下文一长,前面的设定容易漂。你让它基于一个已经聊了很远的项目继续干活,它有概率把角色比例、风格关键词这些核心设定改得面目全非,甚至会擅自给角色加些你没要求的元素。所以我在工作流里给 Codex 的定位是学徒或熟练工:只派给它定义清楚的原子任务。比如牛来基座的圆角参数调成四档,分别导出 STL,这种一句话能说清楚的任务,它干得又快又好,还能一次性给你多个备选方案。反过来,凡是需要吃透整个项目背景的活,我绝不丢给它——这个边界我踩过好几次才划明白。1.3 WorkBuddy:真正的工作台本体Claude Code 和 Codex 都只是工人,而 WorkBuddy 是承载工人的车间。它是一个本地部署的 Agent 管理工作台,用来管理 Skill、自定义指令、模型配置这些东西。我理解 WorkBuddy 的设计哲学是:把零散的命令行 Agent 收拢到一个可视化的操作台里,让技能变成可安装、可切换、可版本管理的对象,而不是散落在各个终端窗口里的临时输入。这也是为什么标题里说把 Claude Code、WorkBuddy、Codex 打造成工作台——严格讲,Claude Code 和 Codex 是这台机器的动力源,WorkBuddy 是控制台,Craftsman Agent Skills 是生产工艺。三者缺一不可。工具本身谁都会装,但把这三者按正确的角色组合起来,再配上一套靠谱的 Skill,才是工作台和一堆软件的本质区别。1.4 配合逻辑用什么比喻最好懂你可以把整个系统想象成一家小工厂:WorkBuddy 是厂房的桌子、货架和公告栏;Claude Code 是那个手艺最全的老师傅,负责从毛坯到成品的完整流程;Codex 是旁边那个手快的年轻学徒,专门干把同一个零件做十个版本的重复劳动;而 Craftsman Agent Skills 就是贴在墙上的工艺规范——每个进来的人都知道先干什么、后干什么、什么标准算合格。明白了这个分工,后面的一切都好理解了。接下来的重点,就是工艺规范本身——也就是这个 Skill 到底该长什么样。2. Craftsman Agent Skills 的技能包设计:从一句话需求到一份可打印资产2.1 一个 Skill 到底该装什么很多人以为 Skill 就是一段提示词,这是最大的误解。一个好的 Skill 应该是一个完整的目录,里面装四类东西:主文件 SKILL.md,规定 Agent 的身份、工作流程、验收标准;templates/ 目录放各种结构化模板,比如角色设定卡、建模 prompt、打印检查单;scripts/ 目录放可执行脚本,比如批量改参数的 Python 脚本、检查 STL 水密性的脚本;references/ 目录放参考资料,比如潮玩常见尺寸、打印工艺参数、风格关键词库。另外按我的习惯,会再放一个 examples/ 目录,把做过的案例整个归档进去。这样 Agent 遇到新需求时会参考历史案例,输出风格能保持统一。社区里也有 Skill Creator 之类的脚手架工具,能帮你把目录骨架自动生成好,但我个人还是喜欢手写,因为手写的过程本身就是把流程想清楚的过程——这个功夫省不得。2.2 SKILL.md 不是提示词,是操作规程SKILL.md 的开头有 frontmatter,里面有 name 和 description。description 尤其重要,它决定 Agent 在什么情况下会主动调用这个 Skill。我建议写得具体一点,比如当用户要求创建潮玩、手办、IP 角色、3D 打印模型,或要求生成 Blender 脚本时,必须使用本技能。写得太泛,模型会在不该调用时瞎调用;写得太窄,该调用时又不用。正文部分要像操作规程一样写,而不是聊天话术。我的写法是先规定身份,再列流程,再写验收标准。花半小时写好这份文件,以后每次干活都在复用,省下来的沟通成本非常可观。下面是我 Skill 里的核心结构:--- name: craftsman-agent description: 当用户要求制作潮玩IP、3D角色、打印模型或Blender脚本时使用 --- # 工匠智能体 你是一位从业10年的潮玩结构工程师,擅长Q版角色建模、分件设计与3D打印。 接到需求后,严格按以下流程执行: ## 流程 1. 需求拆解:输出角色设计卡(名称/性格/动作/风格/比例/故事)。 2. 风格确认:从 references/style-keywords.md 中匹配关键词。 3. 路线选择:参数化代码建模 或 AI生模,二选一并说明理由。 4. 生成模型:输出 Blender Python 脚本,统一使用 meters 单位。 5. 打印检查:运行 scripts/print_check.py,输出壁厚与封闭性报告。 6. 交付:导出 STL,给出分件与支撑建议。 ## 验收标准 - 角色必须有0.8mm以上壁厚。 - 网格必须封闭(水密)。 - 分件数不超过3个。 - 所有输出必须能被人理解,不允许只给代码不给说明。2.3 两条建模路线的自动分流老实说,光靠代码建模做不出特别复杂的潮玩——但做成原型、素体、底座、配件完全够用。所以在 Skill 里我设计了两条路线,让 Agent 自己判断走哪条,并说明理由。路线 A:参数化代码建模。让 Agent 生成 Blender Python 脚本,用球体、圆柱、贝塞尔曲线这些基础几何体拼出角色。好处是每次都能通过改参数快速出变体,比如头再大 10%手脚缩短一点就是改两个数字的事,不用重新建模。适合几何形为主的 Q 版角色。路线 B:AI 生模 代码修模。先生成一段给 Meshy、Tripo、Rodin 这类 AI 生模工具的 prompt,把角色设定卡直接翻译成生模提示词,生成粗模后再用 Blender 脚本做清理:减面、封口、加壁厚。适合需要复杂衣服、头发、配饰的造型。Skill 里的规则很简单:如果角色是简单几何形为主的 Q 版,走 A;如果需要复杂的细节,走 B。Agent 自己判断并说明理由,不用我每次都拍板。2.4 打印检查脚本:把经验固化成代码我踩过最疼的一个坑是:模型在 Blender 里看着完美,导出 STL 后切片软件直接报错模型不是水密的,或者打印出来一捏就碎——壁厚只有 0.4mm,太薄了。这些问题靠人肉检查非常累,但写成脚本就一劳永逸。我的 scripts/print_check.py 会做三件事:检查网格是否封闭、统计最小壁厚、标记需要加支撑的悬崖面。Agent 每次生成完模型都会自动跑一遍,结果直接在对话里汇报。这一步把老师傅的经验真正变成了代码,也是 Craftsman Agent Skills 最有价值的部分。没有这一步,前面的自动化程度再高,到了打印环节还是会翻车。3. 案例一:牛来 IP 是怎么从脚本里长出来的3.1 概念与设定:牛来的名字本身就是流量牛来这个名字,我承认有蹭好运的成分。这几年大家口头禅里牛字自带 buff:牛市、牛气冲天、牛掰。一个叫牛来的 IP,天然自带传播话题,不需要解释太多。这个洞察很重要——潮玩 IP 卖的不只是造型,是情绪。我把这个想法丢给 Craftsman Agent Skills,它按流程先输出了一张角色设计卡:名称牛来,性格是乐观、爱招财、有点憨,动作是单手上举打招呼,另一只手抱金元宝,风格是Q版盲盒比例,圆润线条,低饱和配色,比例是头身比1:1.2,整体高度控制在70mm(标准盲盒尺寸档),故事是一只听到好运就狂奔而来的牛。设定卡一出来,我就知道方向对了。这步的价值在于:它把我的模糊想法翻译成了后面所有环节都看得懂的结构化字段。3.2 第一版素体脚本与它的丑接着 Skill 自动走了路线 A,生成了一份 Blender Python 脚本。核心结构其实不复杂:身体用拉长的球体,脑袋用大球,牛角用圆锥弯曲,鼻子用一个扁球,尾巴用贝塞尔曲线。我复制进 Blender 跑出来,当场笑了——那玩意像一头得了腮腺炎的羊,完全不是牛。但这恰恰是参数化建模的魅力:不用重画,改参数。我回头告诉 Claude Code鼻子太大、牛角太短、站姿不稳,它修改脚本里的几个数值,重新跑一遍,新模型就出来了。三次迭代之后,牛来的雏形已经能看了:圆滚滚的身体,上扬的嘴角,腮红,小短手举着金元宝。整个过程花了不到一个小时,这在以前根本不敢想。3.3 从像牛到是牛:三个关键参数这个阶段最值得分享的是参数经验。让一个角色像牛,关键其实就三处:牛角形态、鼻孔位置、后脑勺的宽度。牛角太短像羊,太长像恶魔;鼻孔位置太低像猪,太高像狗;后脑勺收太窄,整个头型就显得奸诈,不够憨。我把这三条写进了 Skill 的 references/style-keywords.md,下次做牛类角色,Agent 会自动避开这些坑。比例上,一开始设定卡写的是头身比 1:1.2,调了三轮之后我最终定格在 1:1.1——头几乎和身体一样大,这是典型盲盒脸的观感。眼睛用了眯眼笑,比大眼睛更耐看,也更好打印(不用做细小的瞳孔分色)。这个细节看起来小,但直接影响了后续打印的成功率和实物质感。3.4 交付打印:分件与壁厚的现实问题牛来最终分成三件:主体(头身一体)、金元宝、底座。为什么这么分?一是减少支撑面积,二是有点故事感:元宝可以拿下来玩。打印参数上,我用 0.05mm 层厚的光固化打印,壁厚做到 1.2mm,内部掏空到 85%,材料省很多,又不会一捏就裂。这里要重点提醒:分件的接口公差很关键,公差大了装上去晃,小了插不进去。我让 Skill 生成的公连接头默认是 0.2mm 间隙,实测在大部分家用打印机上都能顺畅装配。这个参数我试了四次才定下来,已经写死在 Skill 的 references/printing-params.md 里了。这种细节你说它技术含量多高?并不高,但不知道的人就是会在打印阶段反复折腾。4. 案例二:游泳男孩女孩 IP 组合角色的穿模与并行迭代4.1 组合 IP 的真正难点不在建模,在关系做单个角色和做组合角色,难度不是一个量级。游泳男孩女孩这个 IP,我最初的设定是:男孩在自由泳,女孩在仰泳,俩人都戴泳帽泳镜,底下由一个圆形的水波纹底座连成一体。听起来简单,做起来全是细节:两个人的动作要有互动感——不是两个独立模型硬拼在一起,而是像在同一片水里游泳。这个需求,Skill 拆出来的设计卡特别长:男孩自由泳,左手前伸入水,右手正在划水,双腿交替打水;女孩仰泳,头微微后仰看天空,双臂交替划水;底座是波浪圆盘,浪花形状要包裹两人的下半身。看到这张卡,我知道这次不能纯靠代码建模了,得走路线 B。这也是 2.3 里自动分流的实战意义——它替我做了路线决策。4.2 泳镜穿模翻车现场:一次完整的排查我先用路线 B 生成了粗模,效果不错,但有一个致命问题:男孩的泳镜带和泳帽、头发交叉的位置,网格完全穿模了——泳镜带穿过头发,再从另一头穿出来,形成一堆交叉面。这在屏幕上看着不明显,但一导出切片就会出错,打印出来更是灾难。怎么排查的?第一步,我用 Blender 的网格检查工具统计了非流形边(即无法构成封闭曲面的边),精准定位到问题区域;第二步,把泳镜单独拆出来,用布尔-减操作把头发上被泳镜带穿过的部分挖掉;第三步,重新生成泳镜这个独立件,并把它和头发球体的贴合面做平。修完之后,全部网格重新跑了一遍 print_check.py,水密性通过,非流形边归零。这个教训我写进了 Skill 的规则:凡是带子、绳子、飘带这类细长配件,一律单独分件,并且要在模型阶段做布尔运算,不能直接叠在主体表面。这条规则现在帮我避开了大量返工。4.3 什么时候该让 Codex 并行游泳女孩这个角色,我做过一次并行尝试:让 Codex 同时生成五个版本的泳姿角度——入水瞬间、滑行、换气、冲刺、抵达。每个版本只改两个参数(肩膀旋转角度、腿的弯曲度),属于标准原子任务,Codex 干得很顺,一个小时给我交出了五个可用变体。但我后来也想让 Codex 干一个需要全局背景的活——把两人姿势改成同方向游,再加一朵水花,结果它把男孩的泳帽样式也改了,还把底座波浪密度调了,完全跑偏。原因不奇怪:这个任务依赖太多前文设定,超出了它当时上下文的把握能力。所以我的经验是:并行生成变体时,严格限定改哪个参数、允许动什么、禁止动什么,一条一条写清楚。边界越清晰,Codex 越可靠。4.4 从案例里总结出的双角色生产流程做完游泳男孩女孩,我把整个流程沉淀成了 Skill 里的一个子流程,现在已经成为固定模块:先分别做单角色素模,确定各自比例,防止俩人站一起像父女;再做两者的交互骨架,明确身体哪部分接触、哪部分留空、视线方向往哪看;然后统一底座,所有接触面在建模阶段就预留好拼接凹槽;最后做整体打印检查。以后接任何组合 IP,都可以直接复用这套流程,不用从头摸索。5. 从零搭工作台:安装、Skill 目录、模型选择与成本控制5.1 安装顺序和最容易卡住的点如果是第一次搭,我的建议顺序是:先装 Claude Code 和 Codex 两个 CLI,跑通最简单的对话;再装 WorkBuddy;最后把 Skill 目录挂进去。别倒过来,否则出了问题你分不清是哪个环节的锅。Claude Code 和 Codex 都建议用官方 CLI 安装方式,装完先跑一下版本命令确认成功:# Claude Code 官方 CLI npm install -g anthropic-ai/claude-code claude --version # OpenAI Codex CLI npm install -g openai/codex codex --version如果你习惯在 VSCode 里工作,官方也支持终端集成,直接在 VSCode 的终端里跑 claude 或 codex 命令就行,注意让终端加载对应的环境变量。WorkBuddy 目前社区版是本地部署的,根据官方文档拉取代码、安装依赖、启动服务就行。启动成功后,你会在本地看到一个工作目录,Skill 就放在那里面。最容易卡住的点其实不是安装,而是模型配置。Claude Code 默认需要 Anthropic 官方 API Key;Codex 默认需要 OpenAI 平台的凭据。如果你用的是国内模型厂商提供的 OpenAI 兼容接口,需要在配置文件里把 endpoint 指向对应地址。比如 Codex 接 DeepSeek,就是改配置文件里的 base_url 和模型名,把 API Key 换成 DeepSeek 的。这一步很多人容易填错,后面我在踩坑实录里单独讲。5.2 目录结构照抄版下面是我现在用的目录结构,可以直接抄走:craftsman-agent/ ├── SKILL.md ├── templates/ │ ├── character-brief.md │ ├── blender-prompt.md │ ├── ai-3d-prompt.md │ └── print-checklist.md ├── scripts/ │ ├── print_check.py │ ├── boolean_cut.py │ └── export_stl.py ├── references/ │ ├── toy-size-standards.md │ ├── printing-params.md │ └── style-keywords.md └── examples/ ├── ox-lucky/ └── swimmers/每个子目录的作用,在 SKILL.md 里用一两句话写清楚。这样 Agent 自己就知道去哪找资料、去哪找模板,不需要你每次都反复解释。目录结构本身不复杂,但它是整个 Skill 的骨架,值得一次设计到位。5.3 SKILL.md 的写法要点关于 SKILL.md,再补充两个具体写法要点。第一,frontmatter 的 description 必须认真写,它直接决定 Skill 什么时候被自动调用。我写的是当用户要求制作潮玩 IP、3D 角色、打印模型或 Blender 脚本时使用,这样触发场景足够明确。写得太笼统,模型会在不该调用时瞎调;写得太窄,该调用时又不用。第二,正文步骤尽量写成可验证的动作。不要写分析需求并给出建议这种虚话,要写输出角色设计卡,字段包含名称/性格/动作/风格/比例/故事,缺少任一字段视为未完成。可验证的动作才能让 Agent 按流程执行,而不是自由发挥。5.4 模型搭配与成本控制模型搭配上,我的经验是分灶吃饭,不同的活儿交给不同的工具:任务类型推荐工具理由主流程、长对话、复杂设计Claude Code长上下文好,设定不漂移批量生成变体、参数调整Codex速度快,适合原子任务生模 prompt 生成Claude Code需要理解完整设定STL 检查、修模脚本本地 Python不花钱,确定性高成本方面,我是这样省的:大部分探索和变体迭代让 Codex 接便宜模型跑,跑通了再交给 Claude Code 做主流程。如果你有本地显卡,也可以把 Ollama 跑起来,接本地模型专门用来做需求拆解的草稿,成本几乎为零;但正式建模迭代我还是用云端模型,原因很简单,本地小模型的指令遵循能力不够,容易在流程执行中走样。5.5 WorkBuddy 自定义指令推荐最后分享几条我常驻的自定义指令,直接在 WorkBuddy 里配置,不用塞进 Skill 也能生效:你是潮玩结构工程师。任何模型输出前,先检查壁厚、倒扣、分件数与水密性。生成 Blender 脚本时,统一使用 meters 单位,并开启 triangulate 再导出 STL。当我要求做变体时,只允许修改我指定的参数,禁止改变角色五官、服饰与风格特征。所有交付物必须包含三部分:模型文件、参数说明、打印建议。这几条指令看起来简单,实际上把 Agent 的输出习惯管住了大半。自定义指令和 Skill 的区别在于:指令是所有任务共用的厂规,Skill 是某个具体方向的工艺卡,两者配合着用,效果最好。6. 踩坑实录:CC Switch 报错、Skill 脚本失效与给新手的忠告6.1 CC Switch 报错:一次真实的排查链路先说一个高频报错。CC Switch 是一个用来管理 Agent 多份配置的小工具,方便在不同模型端点之间切换。我很长一段时间都靠它切来切去,但某天切到 Codex 端点后,请求一直失败,错误信息类似cc switch 切换后 failed while handling codex endpoint /responses。我的排查链路是这样的:先确认是不是切换动作本身的问题——重新执行一次切换,看是否报同样的错;然后确认本地服务状态,CC Switch 的切换依赖一个本地服务,服务没起来,端点自然不通;接着确认端点路径,报错里出现了 /responses 这个路径,这是新接口的风格,如果配置文件里写的是老的 /v1/chat/completions 路径,就会出问题,两边必须匹配;再确认 API Key 有没有填错或过期;最后修完重启本地服务再试。那次最后定位到的原因是:我同时开了一个旧的配置文件,它把端点指向了一个已经失效的地址。解决方案很朴素:删掉旧配置、把当前端点更新为目标模型的官方地址、重启服务,问题消失。另外,Codex 偶尔打不开也是类似原因——配置目录里留有损坏的临时文件,清掉重来就好。遇到这类报错别慌,按服务、路径、密钥、缓存四个维度逐项排查,大多数问题五分钟内能解决。6.2 Skill 脚本失灵的三个高频原因Skill 脚本失灵,绝大多数时候是这三个原因。原因一:相对路径写错。Skill 里的 scripts/ 目录是相对 Skill 根目录的,但 Agent 在某些模型下会把路径解析到当前工作目录,导致脚本找不到。解决:在 SKILL.md 里写死所有脚本路径以 SKILL.md 所在目录为基准,并让 Agent 执行脚本前先打印路径确认。原因二:frontmatter 格式问题。description 里如果混入了英文冒号、换行符,解析器可能直接忽略整个 Skill。这个坑我踩过一次,排查了半小时,最后发现就是多了一个换行。写完后最好用文本编辑器看一眼原始格式,YAML 的缩进和标点真的不能马虎。原因三:模型压根不按流程走。越小的模型越容易跳步,看一眼流程就开始自由发挥,该跑的脚本不跑,该出的设计卡不出。我的对策是把关键检查步骤封装成独立脚本,并明确告诉 Agent不运行脚本不得交付。把靠自觉变成靠流程,这是 Skill 工程化的核心思路。6.3 给新手的几条忠告最后说几句实在话。第一,不要一上来就做双角色复杂 IP。先拿一个圆球加两只耳朵的角色练手,跑通脚本到 Blender 到 STL 到打印的最小闭环,再逐步加复杂度。我第一个能看的模型是小狗,第二个才轮到牛来。第二,IP 的核心价值永远是原创性。Craftsman Agent Skills 帮你省掉的是建模、切片、结构设计的体力活,它不能替你产生创意。更别拿现成的知名 IP 改一改就说是自己的,这不是技能问题,是价值观问题。第三,参数化是这套工作流的灵魂。你让 Agent 生成的一定是能调参的模型,而不是一次性模型。改比例、改动作、改尺寸,应该都是改数值,而不是重新建模。所有的迭代效率都建立在这一点上。第四,每次迭代记得归档。Blender 文件、生成脚本、打印件照片,三件套放在一起。过一个月回头看,你会感谢自己当初这个习惯。第五,打印前一定跑水密性检查。这一条救过我不下五次,别偷懒。这套工作台现在还在持续进化。Craftsman Agent Skills 从最初的纯 prompt 版,已经迭代到带脚本、带模板、带案例库的完整版。接下来我打算把涂装分色的标准也加进去,让 Agent 在建模阶段就预留好分色区域,省得后期手工拆 UV 再折腾一遍。个人 IP 这条路,工具会越来越顺手,但真正决定你能走多远的,还是脑子里那个别人没有的故事。希望这套分享能帮你把自己的第一个 IP,从想法变成能握在手里的实物。