☰
用AI Coding工具生成万字奇幻设定:从工程思维到世界观构建
2026/10/17 10:09:59 网站建设 项目流程

最近干了一件有点“不务正业”的事:用平时写代码的 AI Coding 工具,生成了一份上万字的奇幻世界设定。起因是手头有个架空世界的点子,想把它扩张成能支撑长篇故事的世界观,但逐条手写设定效率太低,于是顺手把任务丢给了写代码时常用的那套工具链。结果出人意料地可用——它不仅能填设定条目,还能自己织出一张互相咬合的设定网,把地理、种族、历史、魔法体系串成因果链。

这篇实践记录会讲清楚四件事:为什么选 AI Coding 工具而不是普通对话窗口、开工前需要定死哪些框架、分阶段生成一万字设定的完整流程,以及我在这个过程中踩过的坑。如果你也在做小说世界观、跑团模组或者游戏背景设计,这篇应该能帮你少走不少弯路。

1. 为什么拿代码工具来写世界观:一次意外尝试的起因

1.1 从“聊天窗口跑偏”到“把设定当工程维护”

先说背景。我平时主要用 AI Coding 工具写程序,这类工具和普通网页聊天最大的区别是工作模式:它能读写本地文件、定位到具体代码块做修改、跨多个文档维持上下文,本质上是在把一项大任务拆成可追踪的“工程”。

刚开始我想的很简单,拿聊天窗口让它写一段奇幻设定。前两轮还行,写到第三四轮就明显出问题:它会把某个角色的出生年份记错,会把“北境冻土”描述成沙漠气候,甚至会忘了三天前刚定下的魔法规则。最要命的是,当你指出错误,它嘴上道歉,实际提供的改正版本里又冒出别的新矛盾。

后来我换了个思路:既然 AI Coding 工具擅长度量大、结构化地维护代码,为什么不能把一套世界观设定当成一个“非代码项目”来管理?给它一个目录,设定内容拆成多个文档,通过文件读写控制上下文,比在聊天窗口里无限对话要可靠得多。这个转变很关键,思路一换,后面的效率高了一截。

1.2 编码工具处理长文本的三个天然优势

我用下来,AI Coding 工具在长文本创作上有三个普通聊天窗口很难替代的优势:

优势在写奇幻设定中的体现
文件级上下文设定分散在多个文档里,AI 需要时可以主动读取“地理篇”“历史篇”来核对一致性,而不是靠聊天记忆
精确修改能力发现“灰冕帝国首都”名称不统一,直接定位到具体文件里的具体段落改写,不用把全文重发一遍
结构化迭代设定像代码一样有层级、有引用关系,可以注记 TODO(待补项)、历史版本,按模块逐步填充

这三点合在一起,解决的是长文本创作最痛苦的自相矛盾问题。说实话,很多人在聊天框里写设定越写越乱,未必是 AI 能力不够,而是工具形态本身不适合长文档。把设定当成工程来维护,等于绕开了这个限制。

提示:如果你还没试过用 AI Coding 工具做文字类项目,建议先拿一个 2000 字左右的短篇设定练手,熟悉它“读文件—改文件—总结文件”的工作流程,再上大工程。

2. 动手之前:四个必须先想清楚的问题

工具选好了,不等于能直接开写。我第一版随便给了句“帮我写一个奇幻世界设定”,结果返回来的全是陈词滥调:黑暗森林、龙与魔法、光明与黑暗的对抗,像十个游戏模板拼在一起。问题在于我根本没说清楚自己想要什么。后来我重新整理思路,在开工前想明白了四件事,产出质量立刻不同。

2.1 核心冲突决定世界的心脏

一个世界设定最怕的是“什么都有但不知道为什么”。我在开工前只定了一件最核心的事:这个世界靠什么“运转”,角色活在这片土地上到底在为什么挣扎。

我给这个世界定的核心冲突是“记忆即化石”——有一种矿脉能记录周围发生过的情绪残响,千年后的人可以挖开石头读取古代记忆,但读取过程会加速矿脉腐蚀,导致记忆永远消失。整个世界的宗教、国家、冒险者职业都围绕这个矛盾建立:有人想挖矿找回失落历史,有人想封矿保护先人遗骸,有人想利用记忆碎片操控舆论。

这不是一个“先有设定再想故事”的顺序,而是倒过来:先有戏剧性,再有让戏剧性成立的世界规则。AI 生成设定时,如果你给了明确的核心冲突,它生成的方向收得住;如果只有一个模糊的“黑暗奇幻风”,它必然会滑向同类素材的平均值。

2.2 大纲的颗粒度:先粗后细

第二个问题是:设定大纲要细到什么程度才动手?我的答案是“粗中有细,层次分明”。整天目录一开始只有五条:地理与气候、智慧种族、历史大事记、力量体系、政治与宗教。每个条目下只用一句话写目标,比如“地理部分要解释为什么北境与南境隔绝”。

大纲颗粒度太细,会束缚 AI 的生成空间,写出来全是套路;太粗又会导致它天马行空,偏离你的世界基本盘。合适的颗粒度是:你给出“边界和方向”,让它补全“血肉细节”。比如我会说“北境需要有一个气候屏障,为什么那边的人过不来,屏障的形态由你设计”,而不是直接指定“北境有一座 3000 米高的冰墙”。

2.3 给 AI 一份可识别的风格说明

大多数人对 AI 生成文本不满,根源在于没给它“审美标准”。我给 AI Coding 工具建了一个style_guide.md文档,里面写明了三件事:

  • 语气:设定文档简介像学术档案,冷静克制,不抒情,不滥用比喻。
  • 叙事示例:给一小段符合风格的世界设定样例,150 字左右。
  • 禁忌列表:不许出现现代流行词,不许出现“光明与黑暗”“宿命”“古老预言”这类模板表述。

这个风格文档只有几百字,但它让后续每一轮生成都维持在同一调性里。最直观的变化是,之前生成的设定有时候像营销号文案,加了风格说明之后终于像一本正经的世界设定集了。

2.4 拆文件:一次生成多少字合适

AI Coding 工具虽然上下文长,但一次生成太长还是会出现问题:细节开始重复、前后用词不一致、逻辑链断裂。我试验下来,单次产出的舒适区间在 1500 到 2500 字之间。也就是说,万字设定不能靠一次性输出,而要拆成五到七个文档模块逐步写。

最终的文件结构是这样:

world/ ├── style_guide.md # 风格说明书 ├── core_conflict.md # 核心冲突与世界基本盘 ├── geography.md # 地理与气候 ├── races.md # 智慧种族 ├── history.md # 历史大事记 ├── power_system.md # 力量体系 └── factions.md # 政治与宗教

每个文件相对独立,又互相引用。比如力量体系里写“只能在记忆矿脉附近施展的法术”,地理篇就要有对应的矿脉分布说明;历史篇里的“封矿战争”又会解释为什么某些国家的政治结构是那样。这种跨文件引用,正是 AI Coding 工具比聊天窗口强的地方。

3. 分阶段生成实战:从世界种子到完整设定文档

框架搭好以后,实际生成阶段我把它分成四轮。每一轮有明确的目标,目标不达成不进入下一轮,避免反复返工。

3.1 第一阶段:世界种子——把核心冲突展开成“世界的最初状态”

第一阶段其实最关键。我用一个提示词让 AI Coding 工具基于核心冲突展开“世界的第一幅图景”。这个提示词我改了三四遍,最终稳定下来是这样:

你正在为我维护一套奇幻世界设定文档。当前任务是扩展 core_conflict.md: 1. 用冷静、档案式的语气描述“记忆即化石”的世界里,普通人如何生活。 2. 给出三个不同阶层的人(矿工、祭司、游商)的日常切面,各 200 字。 3. 不要写任何宏大叙事,不要交代战争局势,只呈现世界最安静的状态。 4. 最后列出 3 个该设定下必然会出现的社会问题。 完成后直接改写 core_conflict.md 并打印全文。

重点在第 3 条:“不要写宏大叙事”。这能防止 AI 一上来就给你一部虚构编年史,而是先钉住世界的质感。产出结果里,矿工那段写道他“从石缝里听到五百年前一场婚礼的回声,但不记得新郎的名字”,一下就立住了这个世界的氛围。

这一阶段不需要写满 2000 字,反而越是缩着写,后面的张力越足。核心冲突文档最终只有 1500 字,但它定义了其他所有文件的上限。

3.2 第二阶段:分域扩展——按依赖顺序逐个生成

扩展顺序不是按文件名排,而是按依赖关系排:先地理,再种族,再历史,最后力量体系和政治。逻辑很简单,历史要依赖地理和种族才成立,力量体系又要依赖文化和历史背景。

我在每个文件开始前会给一个 brief(任务摘要),比如地理篇的 brief 是这样:

扩展 geography.md,要求: - 解释北境与南境隔绝的地理成因,必须与记忆矿脉的形成机制挂钩。 - 为三大区域各写一段气候特征,每段不超过 300 字。 - 不要发明任何真实的现实地名。 - 写完检查:是否有任何设定与 core_conflict.md 冲突。

这里有个心得:每次生成完,要求 AI Coding 工具“自查冲突”很有用。虽然它不能百分百查准,但自查这个动作会让它重新读一遍核心文档,很多明显的矛盾在产出阶段就被拦住了。

3.3 第三阶段:合拢——把分散文件拼成一本“设定集”

五个模块全部生成后,我拿到的是五个还不错的文档,但它们密度不均:地理篇写得很丰满,历史篇有点薄,力量体系里有一块跟核心冲突没什么关系。这时候需要合拢,我做两件事。

第一件事是补薄弱的模块。让 AI Coding 工具列出现有各文件的字数分布和关键设定点,然后针对历史篇生成一个补充提纲。第二件事是重写文件之间的过渡和引用,把简略目录升级成带交叉索引的完整设定集。

比如我会要求:“在 history.md 中新增一段,明确‘封矿战争’如何受 geography.md 中北境屏障的影响,并在文中引用 power_system.md 的基础规则。”这样它的输出不只是一个孤立历史事件,而是能和其他模块互相支撑。

3.4 第四阶段:一致性核对——让 AI 自己当自己的校对

最后一步是强制“交叉检查”。我会下这样一个指令:

请逐项检查以下清单,每个项目给出“一致/冲突/存疑”的判定,并附对应的文件行号: 1. 记忆矿脉的分布区域是否与地理、历史文本一致。 2. 所有种族的寿命设定是否影响其历史视角。 3. 力量体系的所有法术是否都有“以记忆为原料”这一前提。 4. 时间线上的重大事件是否在政治篇有对应后果。

这一步相当于给代码做单元测试。AI Coding 工具一般能查出三到五处真正的冲突,比如某个种族寿命写成了 2000 岁,但历史篇里该种族亲历过的事件却发生在 5000 年前。这类问题在纯聊天环境里极难被发现,但在文件级上下文里查起来准确率高得多。

4. 实际踩过的四个坑与排查思路

即便流程看起来顺,过程中还是踩了不少坑。我把印象最深的四个记录下来,每个都附上排查经过,而不是只给结论。

4.1 设定前后矛盾:AI“忘了”自己写在上一篇文档里的法则

最早跑第二版时,我让 AI Coding 工具在力量体系里增加一种“燃忆术”,代价是消耗使用者真实的记忆。第一次生成时它详细说明了代价,但当我继续追问这个法术的门派传承时,它直接照搬了之前另一套免疫系统的设定,说该门派的修行者由“矿脉共鸣”赋予力量,不需要消耗记忆。

这属于 AI 在长上下文里“局部失忆”,它记住了对话尾部的内容,丢失了更早的细节。解决办法不是反复提示“你忘了吗”,而是给它一个明确的检索步骤:要求它在新增内容前,先从power_system.md里引用现有规则段,并复述改动可能影响的另一份文档。把它从“凭记忆回答”硬掰成“查文件后回答”。

4.2 文明全长得一个样:风格外溢问题

在没有风格指导的早期版本里,我让 AI 生成三个不同地区的种族文化,结果读下来感觉像同一个国家搬了三次家:一样的政体、一样的纹章学、一样的婚礼习俗,只是换了名字和毛色。

排查之后,我认为原因是训练数据里的“奇幻文明”特征太集中,模型在默认状态下会滑向中古欧洲模板。解决方式是补充“反向差异”要求:为 A 文明指定“没有君主制度,权力由天气祭司掌控”,为 B 文明指定“完全没有文字,使用身体装饰记录历史”。越是具体的反模板设定,越能逼它走出舒适区。

4.3 设定堆砌如山,却没有因果链支撑

第三版时,文档里出现了大量孤立设定:北部有一种白鹿、某座城有七扇门、某教派穿紫袍。单个拿出来都有模有样,但互相没有任何接点,世界显得“碎”。这其实是 AI 生成设定最常见的通病:有密度,无结构。

我在第四阶段的一致性核对清单里新增一条规则:“每新增一个设定,必须用一句话说明它与其他至少一个设定之间的因果或制约关系”。比如白鹿不再是装饰性生物,而是“记忆矿脉暴露在地表后,矿尘导致鹿群毛发变白,因此当地人认为白鹿能靠近矿脉而不疯癫”。这样每个设定就从装饰变成了世界运转齿轮的一部分。

4.4 上下文窗口到了极限:长文档生成后期开始胡言乱语

最后一轮生成政治与宗教篇时,因为之前积累的文档总量超过了可用上下文的舒适区,AI 开始把“灰冕帝国”的国名拼成“灰冕王国”,而且自我纠错后仍然在別处重复出错。这不是提示词能解决的,纯粹是工作量已经逼近工具上限。

对策是拆得更小。我把政治篇再拆成“灰冕帝国一章”和“南方城邦一章”,分别独立生成,最后再合拢。另外,我会在每轮开始前主动清空无关文件的引用,不把已经定稿且不再修改的地理细节反复塞进上下文。这个“控制上下文体积”的意识,比任何花哨提示词都重要。

踩坑现象根因排查思路解决对策
前后设定矛盾长上下文局部失忆要求引用现有文件段落再新增增加“先引用再生成”步骤
多个文明同质化默认审美倾向中古欧洲模板检查文风、政体、习俗是否雷同指定反模板差异
孤立设定过多缺乏因果链约束逐条追问“这设定与其他设定有何关系”新增设定必须关联至少一个现有设定
后期名字频繁写错上下文总体超载,注意力衰减检查错误出现位置集中在文档后半段拆分小文件,控制上下文体积

5. 从一万字草稿到可用的设定集:整理与二次加工

生成完成不等于工作完成。AI 生成的一万字,整理完以后大概只有六千字能直接进设定集,剩下四千字要么是重复信息,要么是“看起来重要但实际没有下文”的废设定。这一节讲讲我是怎么整理的。

5.1 用“重构”思路做设定:像清理代码一样清理设定

AI Coding 工具能写代码,自然也能对文档做“重构”。我对它下达过这样一条指令:

请以“代码重构”的方式整理 history.md: 1. 删除所有没有后续使用的事件。 2. 把同一个人物的两次出场合并成一条词条。 3. 为五个最重要的历史事件各写一句“影响到哪个现代设定”。 4. 抽象出三个历史阶段,为每个阶段写一行摘要。

这条指令的精髓是“删除所有没有被引用的装饰”,对应代码里的死代码清理。做完这轮,设定集从松散素材变成有骨架的资料库,而且你一眼能看出哪些地方还需要人工补写。

5.2 建一张设定速查表:用表格替代长篇叙述

人脑记不住一万字,但能记住一张速查表。我让 AI Coding 工具为整个设定集生成一个 CSV 格式的速查表,包含八列:设定名称、类别、一句话描述、首次出现文件、关联设定、当前状态、待办事项、备注。有了这个表,后续写故事时不用每次都翻全文,扫一眼表格就能定位到具体文档。

这张表还有一个用途:快速发现重复造轮子。表里“关联设定”列会把多个文件里指向同一概念的条目罗列在一起,我发现有两个地区各自发明了一套矿脉感应技术,但它们的历史背景几乎一致,明显是同一技术拆成了两段,于是合并掉一个,减少一个不必要的新概念。

5.3 从设定到故事场景的转化:设定集不能只当字典

整理完的设定集,必须能转化为情节素材。为了验证这一点,我让它把三条核心规则变成五个“场景种子”。比如“记忆矿脉腐蚀导致记忆永久丢失”变成了一幕:主角知道某段关键记忆存于一块即将开采的矿石里,必须在矿队开工前做出选择。这些场景让我明确看到设定确实能孵化故事,而不是一叠自嗨的散文。

5.4 版本管理:给设定留下修改痕迹

由于 AI Coding 工具天然靠近代码工作流,我把这套设定也放进了版本管理。每次大改一个文件,记录一句改动说明。这样做最直接的好处是,发现某次设定改坏之后,可以随时退回上一版。

以前在文档里写设定,根本不敢乱改,因为一改就可能牵连三重引用。有了版本管理,相当于给“动刀”上了一道保险。对我这种喜欢反复推敲设定的人来说,这个安全感非常值钱。

6. 这次实践给我留下的几点体会

最后说点个人感受,可能比具体方法更重要。

第一,AI Coding 工具并不是创意替代者,而是“创意放大器”。它不会替你想出你从未想过的东西,但能把你确认过的方向做得非常细、非常杂、非常完整。我的角色是给方向、边界、审美和筛选标准,它是来帮我出活儿、排细节的。

第二,整个过程中管理上下文比写提示词重要。写提示词只是让你获得一段好回复,管理上下文则决定了你如何让几十段好回复变成一个彼此咬合的整体。如果你只是把窗口拉到底,期待一次输出一万字设定,我建议换一种思路:拆文件、拆阶段、加一致性检查。

第三,最让我意外的是流程本身的意义。第一次做这套流程用了快一天,把万字设定收尾后,我手里的不是一堆文字,而是一套可以被反复编辑、检查、恢复的资料库。后来再做另一个小型世界观,我只花了三个小时就完成了从框架到合拢的全过程。工具没有变,变化的是方法。

如果你也想复刻这套流程,我的建议是从一个“不会超过三千字的微型设定”开始,搭好文件结构,跑一遍分阶段生成和一致性检查,感受一下把创作当工程来维护的体验。跑通一次之后,你再回头写万字设定,会发现原本最难的世界观一致性问题,已经变成一道可以系统解决的工程题了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询