1. 为什么偏偏用AI Coding工具来写设定
先坦白一个事:虽然标题写的是"AI Coding工具",但我全程没写过一行代码。我做的事是让一个擅长"代码项目"的AI助手,帮我搭建并产出整套奇幻世界观文本。
这个想法最初源于一次偶然。我在整理某个游戏项目的说明文档时,发现这类编程向AI助手和普通聊天AI有个非常大的差别:它天然地把工作想象成一个"项目"——有文件夹、有多个关联文件、可以针对某个文件某一行精确修改、修改后还会主动检查前后逻辑。这不就是写长文本最需要的"全局一致性"吗?
普通对话式AI的问题我太熟悉了。你让它写一段奇幻地理,前面说"东境是沙漠",写到第三个章节它很可能就变成"翠绿的东境平原"。它也不是糊弄你,而是长对话跑下来,上下文被各种无关信息冲淡,模型对早期设定的"记忆"越来越模糊。即便你反复强调"记住之前的设定",几轮之后还是会漂移。更麻烦的是,章节多了以后你没法精准地只改某一段,只能整篇重发。
AI Coding工具的思路是反过来的。它默认你会反复对同一批文件进行迭代,所以给了你一套"以项目为单位"的操作逻辑:内容拆进不同文件、每次交代清楚改哪个位置、改完立刻做关联校验。我把这套逻辑套用到写设定集上,等于给文本也建了"代码库"。一万字的设定变成十来个Markdown文件,块与块之间的引用关系就像变量依赖一样清清楚楚。
这次实践用了大约两周,从零散的点子变成了一份完整的、一万余字的《烬土纪》世界观设定。整个过程并不是"输入一句话AI自动写完",而是我在前面做架构、定规则、控节奏,AI负责逐模块生成、润色和补全。下面我会把每一步的关键操作、提示词模板、以及翻车后的补救办法完整share出来,这套方法对写小说设定、跑团背景、游戏世界观策划都适用。
2. 动手之前先做三件事:骨架、文风、设定库
真正让AI干活之前,我花了整整三天做准备工作。很多人让AI写东西觉得"一按按钮就出来",结果质量不行就开始骂AI水。实际上九成的问题出在开工之前没把要求定清楚。
2.1 先画世界观骨架,让AI在格子间里跳舞
我的做法是先列出一张"设定板块清单",并且规定好先后顺序。清单长这样:
| 板块 | 优先级 | 预计字数 | 说明 |
|---|---|---|---|
| 世界总览与核心冲突 | 高 | 800字 | 一句话概括世界、三句话概括历史 |
| 地理与区域划分 | 高 | 2000字 | 每个区域的生态、气候、资源 |
| 历史纪元 | 中 | 1500字 | 按年代拆分,事件链必须闭环 |
| 种族与文明 | 中 | 2000字 | 每个种族的文化、信仰、与其他种族关系 |
| 魔法与超凡体系 | 中 | 1500字 | 力量来源、代价、限制 |
| 政治与宗教组织 | 低 | 1000字 | 主要势力及其目标 |
| 重要事件清单 | 低 | 800字 | 可作为后续故事的引子 |
为什么要先做这张表?因为AI最擅长的是"在明确框架里填充内容",而不是自己凭空搭建框架。我试过一次直接说"帮我想一个奇幻世界",它三秒钟给我吐出一篇看起来华丽但互相矛盾的玩意:时间线上300年前刚发生了灭世大战,300年后城市又繁荣得像什么都没发生过。根源就是我自己没给骨架,它只能按概率估算"奇幻世界应该长什么样"——于是把所有流行元素都堆了进来。
顺序也是学问。我坚持"地理—历史—种族—体系"这个顺序生成。理由很简单:地理决定历史走向,历史解释种族关系,种族信仰又派生出超凡体系。后面的每个模块都建立在前面的基础上,这样AI在写后期内容时能引用前文的具体名词,而不是又自己发明一套。
2.2 喂风格锚点,而不是一句"写好一点"
第二件事是准备风格样本。我把自己觉得最贴合这个世界的两段参考文字摘了出来,一段是地理志式的冷峻白描,一段是史书式的编年叙事,加在提示词里。这一步很多人忽略,但我自己试验下来,有没有风格样本,AI产物的差距是天壤之别。
有样本时,它输出的句长、意象浓度、用词倾向都会向样本靠拢;没样本时,它会滑向训练数据里出现频率最高的"通用奇幻腔"——满眼是"古老的力量苏醒""命运的齿轮转动"这类零信息量表达。
我还加了一句明确的负面约束:"不要出现‘在这片神秘的土地上’‘自古以来’这类空泛套话;不允许写‘传说中的’四个字开头的句子。"负面约束比正面要求管用得多,因为AI对"禁止项"的服从度通常比对"风格项"更高。
2.3 建立"设定库"文件夹,像管理代码一样管理文本
第三件事,我在工作区里建了一个结构清晰的文件夹:
烬土纪/ ├── README.md # 世界总览与核心设定索引 ├── TERMS.md # 术语表:地名/人名/专有名词对照 ├── 01_地理与区域.md ├── 02_历史纪元.md ├── 03_种族与文明.md ├── 04_魔法体系.md ├── 05_势力与组织.md └── 06_事件清单.md这个设计完全照搬软件项目的管理思路。README.md相当于项目文档,里面写清楚这个世界的"一句话内核"和"核心语法";TERMS.md是最关键的文件,所有专有名词都登记在册——"烬土"指什么、"灰潮"是哪场战争、"圣炉教"信仰什么,一条一条列清楚。
为什么术语表必须独立拆出来?因为这是对抗设定漂移最有效的手段。每次让AI写新章节前,我把术语表贴进上下文,明确说"以上是既定事实,新章节必须严格遵守,不得新增或更改"。相当于告诉AI:这些是"全局变量",你只负责调用,不许重新赋值。
3. 让AI写出没有"AI味"的设定的关键指令
准备工作做完了,接下来是真正让AI产出内容的阶段。这一阶段最大的敌人是"AI味"——那种读起来顺滑无比、细想毫无信息量的文字。我把三条最核心的提示词技巧单独拿出来讲。
3.1 给AI一张详细的"作者卡",而不是一句"你是个作家"
很多人让AI写故事时说"你是一位资深奇幻作家",结果AI拿出来的东西和"你是个小学生"没差别。原因很简单,"作家"这个概念在训练数据里太宽泛了,模型只能取平均——平均出来的声音,就是那种毫无辨识度的通用腔。
我改成给极其具体的人设选项卡:
你是一位为硬核奇幻桌游撰写世界设定集的文案作者。 你的文字风格偏好: - 多用短句,不用排比 - 描述地理时要有具体的海拔、风向、植被信息 - 描述历史时要有具体的年份、人物、因果链 - 禁止使用省略号结尾营造深沉感 - 禁止使用"命运的齿轮""古老的秘密"等词组 - 每一个信息点宁可写实,不要写玄这张"作者卡"本质上是在约束模型的概率空间。你给的信息越具体,模型就越难滑回均值。我甚至试过在卡片里规定"每段不超过120字",效果立竿见影——AI为了满足段落长度限制,不得不把修饰性的废话砍掉,信息密度反而上来了。
3.2 用"样章-扩写"模式替代一次性生成
我的核心工作模式不是"一次给出完整章节",而是"先写样章,确认风格,再扩写"。
以《烬土纪》的地理章节为例。第一步,我只让它写"废土裂谷"这一个地点,要求500字左右,包含地形、气候、生态三条信息线。拿到文本后我通读一遍,把不符合要求的地方标出来,让它重写。满意之后,我再让它按照同样的风格,去写剩余几十个地点。
这一步的价值在于"用低成本样品校准风格"。就好比做菜前先炒一小份试味,而不是把整锅菜炒完才发现盐放多了。AI的生成风格是可以被短样本快速稳定的,你要做的就是用最小的代价抓住它的口味。一旦样章定稿,后续所有章节都明确要求"参照已确认的样章文风",这样整篇设定就不会出现前面冷峻后面俏皮的怪事。
3.3 一致性检查清单:每个模块生成后必须过一遍
每个模块完成后,我不急着写下一块,而是先做一轮"设定检查",用固定的四步清单:
- 专有名词核对——新出现的名词是否已在术语表中?未登记的一律登记或删除。
- 时间线核对——本年号与已有历史事件是否有冲突?例如"灰潮战争"如果发生在帝国历127年,后文便不得出现"帝国历90年的灰潮幸存者"。
- 地理逻辑核对——新写的地点和已有地图是否吻合?东边是裂谷,就不能出现"从裂谷向西进入草原"这种方向错误。
- 风格抽查——随机取三段,确认没有出现术语表之外的"诗意表达"。
这套清单直接写进AI的提示词里,让它每次生成完自己检查一遍再输出。老实说AI"自查"出来的结果不能全信,但它至少能拦截掉约一半的低级错误,剩下的我自己再过目。
4. 分段产出的节奏控制:从碎片到一万字的拆解法
这一章回答一个最实在的问题:一万字到底是怎么"挤"出来的?我的答案是:拆成二十来块,一块一块地写,中间穿插检查和归档,像做项目一样排期。
4.1 别让AI一口气生成一万字,原因有三
你可能觉得"AI不是能一口气写一万字吗?"确实能,但质量曲线是断崖式的。我的实测体会是:
- 生成长度一旦超出某个阈值,后半段会变成前半段的"内容稀释版"——同样的意象、相似句式反复出现,实质信息密度急剧下降。
- 长输出的后半程,模型对早期约束的记忆衰减非常明显。开头还在遵守"不用省略号",五千字之后就放飞了。
- 一次性生成意味着你失去了"中途修正"的机会。写到一半发现方向偏了,没法只改一部分,只能全盘推倒重来,代价远高于分块。
所以我的原则是:单次生成控制在600到1000字之间,宁可多跑几轮,也不贪大。十来个模块,每模块两到三轮,总轮次控制在三十次以内,最终拼成完整的一万余字。
4.2 我实际使用的分段模板
每一块的提示词,我用的都是同一个"模板",稍微改改就能套用到不同模块:
现在撰写《烬土纪》的「模块名」部分。 要求: 1. 字数600-900字。 2. 开篇第一句必须直接切入主题,不写过渡句。 3. 必须包含以下信息点:A、B、C(每个信息点展开至少60字)。 4. 严格沿用术语表中的名词,不新增专有名词。 5. 写完自检一遍时间线和地理方向是否与已有设定冲突。注意第三点"必须包含的信息点"是这块内容的灵魂。我会在开跑前自己想清楚这块要传递哪些核心情报,而不是让AI替我做选题。比如写"圣炉教"这个组织时,我的信息点是:它的诞生年份、核心教义、和世俗王权的矛盾——三个点,AI围绕它们展开,写出来的东西再水也水不到哪去。
"开篇第一句直接切入主题"这个要求也很重要。它逼着AI丢掉"在广袤的东境大地上"这样的起手式,直接写"圣炉教成立于帝国历89年……"。信息前置的写法天生自带干货感。
4.3 每块之间的衔接与归档策略
分块写的最大风险是"章节间断裂"。我的处理方法是在每一块的提示词前段,固定贴一段"上下文锚点":
前文已确立的事实: - 帝国历127年,灰潮战争爆发于西境裂谷 - 当前章节发生在灰潮战争结束后第40年 - 主角阵营所属的北境氏族联盟与圣炉教处于敌对状态 请在本节内容中至少呼应其中两条事实。这个锚点让每个模块不只是孤立的散文,而是彼此勾连的设定网。呼应前文事实的作用在于,读设定的人会产生"这个世界的部件是一体的"的质感。
我还会在每块完成后,立刻把生成的文本存档到对应的章节文件里,并更新README.md的"已完成模块"清单。不要攒到最后统一整理,那会儿上下文早就断了,你自己也忘了哪些设定已经坐实,哪些还在讨论中。
5. 实测中的三个典型坑与救火对策
两周时间,翻车次数远超我预期。挑三个最有代表性的问题,如果你也想干类似的事,大概率也会遇到。
5.1 症状一:AI开始"自我复读"
写到中后期,我发现《烬土纪》里几乎每个区域的描述都以"这里的土壤呈灰褐色"开头。一开始我以为是个巧合,后来统计了下,至少四个区域都用了一模一样的句式。原因很好理解:模型在生成长篇内容时,如果指令里只给了"写地理环境"一个信号,它就会反复回到训练数据里出现频率最高的描述模式上。
我的对策是"强制变量法":给每个区域定义一个"必写差异点"。比如写湿地时,必写"雾气的味道和霉菌种类";写高原时,必写"一天之内的温差数值"。这个差异点由我指定,不让AI自己挑。它有的放矢了,"自我复读"现象基本消失。
5.2 症状二:设定前后打架
最让我头大的一次是,前期写某个种族的寿命是"两百岁上下",到了中期写该种族的一个历史人物时,AI为了增加悲情感,让这位角色"以凡人之躯活了三百年"。这个矛盾如果不细读根本发现不了,但对设定集来说是多大的硬伤。
排查手段其实很笨但有效:我把所有章节文件合并成一个总文档,然后用AI工具自带的"检索"功能搜索高频专有名词,逐一比对上下文。比如搜"寿命""年岁""岁",把所有涉及年龄的句子拉出来排队看。用代码编程工具还有一个好处:它可以配合脚本做词汇级定位——我用一个极简的文本统计脚本,把每个专有名词出现的段落全部导出,比人肉翻阅快一个量级。
发现问题后,修正很简单:在术语表里给"该种族寿命约两百岁"这条加粗标记,然后要求AI对矛盾段落进行重写。重写的提示词很关键,不能只说"改掉矛盾",要明确"将角色寿命改为不超过两百岁,并改写他活到三百年这一情节的动因"。
5.3 症状三:突然"水字数"或者耍高冷
偶尔会有那么几次,AI给出的文字明显在凑数,通篇都是"然而这一切并非看上去那么简单"这类正确的废话。这种水文的特征是:每句话都没有语法错误,但每句话都没有信息量。
我的对策是"信息密度三连问":这段删掉三分之一字数,设定是否受影响?这段有没有给出具体年份、人物、方位?这段有没有新的因果信息?任何一个回答为"否",就让它重写。
反过来还有一种情况,AI突然变得极其惜字如金,每句话都跟电报似的。我第一次遇到还以为是好事,后来发现它把"氛围感"和"情绪流"全部砍掉了,设定读起来完全像产品说明书。处理方式是在提示词里明确嵌入"允许并且需要适度叙事性的氛围描写,但每段不超过两处",给它一个明确的"氛围额度"。
6. 成品整理、校准,以及这方面的后续玩法
一万字初稿落袋只是第一步。设定集的真正价值在于"稳定的可复用性"——这句话我深有体会。
6.1 用脚本做自动校对与交叉检查
我整合全文后做了一轮自动化清理。用一个简单的文本统计脚本,统计了每个板块的字数占比,看看有没有某个板块过分臃肿或者过分单薄。规划时定的目标和实际产出的对比一目了然:"种族与文明"计划2000字,实际写了2800字,明显超重了,我就手动把其中的支线细节拆分到"事件清单"板块,保持整套设定的板块均衡。
脚本还帮我做了另一件事:找出所有"同词异写"。比如某个地名"卡珊德尔"在后面的章节里被AI写成了"卡珊黛尔",这种谐音混淆人眼真的很难全抓出来,但关键词检索一秒钟就能发现。
6.2 从设定库到具体故事:一万字只是起点
设定集写完之后,它最爽的用法是作为"创作素材库"来供后续故事使用。我让AI基于其中"灰潮战争后第40年"这个时间段,结合北境氏族联盟和圣炉教的矛盾,写了一篇五千字左右的短篇开篇。因为有前期一万字垫底,AI完全不愁内容,它只需要从设定库里提取事件和冲突,而不需要重新发明世界。生成的短篇里出现的每个名词,都能在设定库里找到出处,这种"由设定反推故事"的丝滑感,是直接用聊天AI从零开写完全比不上的。
我个人的一个核心体会是:把这套流程中最关键的环节定为——"开跑之前的设定骨架"和"贯穿全程的术语表"。这两样东西各自都花不了太久,但决定了整个项目的下限。你要是现在也想用AI Coding工具做类似的长篇设定生成,建议直接从这两步开始,先搭一个极简骨架、列一张术语表,再谈生成和扩写。骨架越稳,后面的修正成本越低。
最后再分享一个小技巧:每次让AI生成新章节之前,把上一个章节的结尾一百字原样贴进提示词里作为"接续起点"。这个小动作对文本风格的连续性帮助极大,AI不会突然从"冷峻地理志"跳到"中二热血番"。反正我自己后来所有章节都是这么接的,你可以试试。