unity mcp 智能体 提示词

内容创作

给 Unity 开发者的 MCP 智能体提示词写法:讲清怎么让智能体正确调用编辑器与工程工具、把场景操作落到可交付结果。

很多 Unity 开发者把 MCP 接上之后,发现智能体要么不动手、要么乱动工程文件,改完还得自己回滚。问题通常不在模型,而在提示词没把「谁做什么、允许碰什么、做完怎么验」交代清楚。这篇给一套可套用的写法:怎么分工具权限、怎么描述场景任务、怎么让智能体自己回读结果再决定下一步。不承诺一次成功,只给能照着改的结构和排查顺序。

很多 Unity 开发者把 MCP 接上之后,遇到的情况往往不是模型太笨,而是提示词没交代清楚。智能体要么站在旁边不动手,要么一上来就改工程文件,改完你还得自己去回滚。问题的根子通常在提示词里缺少三件事:谁负责做什么、允许碰哪些东西、做完怎么验证。

这篇给一套能直接套用的写法,重点放在工具权限怎么分、场景任务怎么描述、怎么让智能体回读结果再决定下一步。不承诺一次就成功,只给你能照着改的结构和排查顺序。涉及各家模型与工具的具体参数差异,可以到 /models 看当时的说明。

先把工具权限写死:谁能改工程,谁只能读

提示词的第一段不要写目标,先写权限。把 MCP 里挂的所有工具分成两类摊开:只读类负责读场景、读脚本、读日志、查资源;写入类负责建物体、改组件、跑批处理、写文件。写清楚哪些工具可以直接调用,哪些必须等你点头,这一步能挡掉大半误操作。

工具类型典型动作提示词里的写法
只读工具读场景层级、读脚本内容、看控制台日志允许随时调用,用于确认现状
写入工具建物体、改组件参数、批量改资源执行前先说明将要改什么,等我确认
不可逆操作删资源、覆盖预制体、改公共脚本一律先停下汇报,不要自行处理
  • 把「失败就停」写进去:工具报错、返回为空、路径不存在时,让智能体停下来输出原因,而不是换个方式继续改工程
  • 写清工程边界:允许动哪些目录、哪几个场景、哪些脚本,超出的部分先报告再等你决定
  • 区分探索型和交付型任务:探索型允许自由读,交付型只允许按你给的步骤走,别让它顺手重构
  • 多人协作的仓库额外加一句:改动前先确认当前分支和工作区状态,避免覆盖别人的未提交内容

场景任务怎么写:从「我要什么」变成「它在哪、变成什么样」

很多提示词写的是「帮我优化一下这个场景」,这种写法智能体没法执行。换成「对象—状态—验收」三段:对象指场景里的具体节点或资源名,状态指要变成的属性值,验收指改完用什么方式确认。三段缺一段,它就得靠猜。

  1. 点明对象用场景里的准确节点名或资源路径,避免「那个灯光」「主摄像机旁边的东西」这类模糊指代;如果名字不确定,先让它只读列出候选再让你确认
  2. 描述目标状态写清属性名、目标值、取值范围;涉及坐标、旋转、缩放时注明单位和参考坐标系,别让它用默认值猜
  3. 约定验收方式写明改完怎么确认:打开某个场景看、跑一次测试、看控制台是否干净;能落到可重复的检查项就别写「你看着办」
  4. 拆成单目标多轮一次只给一个可验证的改动目标;五件事塞一句话,出问题时无法定位是哪一步搞坏的

另外在提示词末尾留一句「不确定的地方先问我」。删除资源、覆盖预制体、改公共脚本这类操作一旦执行就很难退回,让它先问一句的成本远低于事后排查。如果你用的是中转站接入的模型,调用行为可能和官方直连有差异,可到 /sites 核对对应站点的说明。

让智能体自己验收:回读、比对、再决定下一步

写入工具返回「成功」不等于工程真的变了。文件可能写入了但没保存,组件可能加上了但参数没生效,脚本可能编译报错但被日志淹没。提示词里要明确要求每轮改动交付三样东西:做了什么、看到的返回是什么、和预期差在哪。没有回读结果的改动不算完成。

  • 要求它改完立刻回读同一对象,把实际值和目标值并排报出来
  • 约定重试上限:同一个工具连续失败几次就停手汇报,别在错误路径上反复折腾
  • 把常见假成功列进提示词:写入未保存、组件参数未刷新、编译错误被忽略、资源引用丢失
  • 验收动作尽量用可重复的命令或检查项,方便下次照同样写法复现
假成功现象回读时怎么发现提示词里的约束
文件写入了但没保存回读文件内容对比目标写完必须重新读取并展示内容
组件加上了但参数没生效回读组件属性值改完必须读取属性并报告实际值
脚本编译报错被淹没回读控制台输出每轮结束检查控制台是否有错误
资源引用丢失回读引用字段是否为空改完检查引用完整性再报完成

什么情况下别用这套写法

这套写法解决的是「有边界、可验证的执行类任务」,不是所有 Unity 场景都适合。以下三种情况,提示词写得再严谨也挡不住问题,应该换思路。

  • 工程没有版本控制、也没有可回滚的快照时,先别让智能体做写入类操作,误操作没有退路
  • 任务需要美术判断或策划决策(手感、节奏、配色)时,智能体只能做执行,结论必须由人给
  • 跨多个工程或跨仓库的大改动,单条提示词管不住,应拆成按仓库、按模块的多轮任务分别交代边界

如果你的团队还没建立回滚习惯,可以先从中转站可信度检测和工具目录入手,确认接入的站点和工具行为稳定之后,再逐步放开写入权限。到 /tools/speed-test 可以看当前工具链的连通情况,具体数字以页面当时显示为准。

下一步把这套提示词结构套到你手上最常做的一个 Unity 任务上,先只开放只读工具跑一轮,确认它的回读和汇报符合预期,再逐步放开写入权限。

常见问题

提示词里要不要把工具名一个个列出来?

建议列,但列的是「工具类别和用途」而不是全部函数签名。写清这类工具是只读还是可写、影响范围是当前场景还是整个工程,比把所有工具名抄一遍更有用。工具清单和配额口径可以到 MCP 服务器大全 对照,具体哪个工具能做什么以你接的那台服务器文档为准。

智能体不按我说的步骤走,老是自作主张怎么办?

通常是三件事没写:允许动哪些文件、失败时是停还是换方案、允不允许重构。把这三条单独放一段,并加一句「超出范围的改动先报告再执行」。如果它仍然越界,就把它降级成只读角色,先让它输出计划和改动清单,你确认后再放开写入。

这套提示词能用在别的引擎或别的工程类型上吗?

结构能复用,具体内容不能照搬。对象命名、资源目录、验收方式都跟工程组织强相关,换个项目要重写这几项。另外不同 MCP 服务器暴露的工具集差别很大,换服务器后工具权限那段必须重写,别指望原样能用。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。