引言
我一直有用 AI 编写小说的想法,最近尝试用 AI Coding CLI,在几轮对话中生成了一套约 60 万字的奇幻世界设定,其覆盖了一个虚构世界从创世神话到当代变革的各个方面。并随后在一个独立的对话中,基于这套设定进一步生成了角色驱动的叙事文学。
这篇文章记录整个过程以及其中的一些观察。
早期尝试:用 Python/C# 编排 LLM 调用
在使用 AI Coding CLI 之前,曾尝试过另一种方式:编写 Python 脚本来编排大语言模型的 API 调用。
核心思路是将内容组织为树形结构。每个节点包含名称、描述、属性列表和子节点。生成过程自上而下进行:先为根节点生成子模块,再为每个子模块生成其属性,逐层递归展开。
python
# 简化示意:节点结构
class Node:
def __init__(self, value, description):
self.value = value # 名称
self.description = description # 描述
self.properties = [] # 属性列表
self.children = [] # 子节点
每次调用 LLM 时,程序会把从根节点到当前节点的完整路径传入,作为生成的上下文。LLM 返回 JSON 格式的结果,程序解析后填入对应的节点字段。整棵树最终序列化为一个 JSON 文件。
这个方案有一个直接的约束:每次 LLM 调用只能看到路径上的几个节点的信息。当生成"种族设定"的内容时,LLM 知道"地理设定"这个节点的存在,但看不到地理设定中的具体内容(当时大模型的上下文窗口比较小,主要为了节约上下文)。跨模块的细节一致性------比如某个地名在地理文档和历史文档中是否吻合------需要人工逐一校对。
另一个问题是输出形态。JSON 树适合程序消费,但人类直接阅读和编辑的体验较差。对于世界设定这类需要反复查阅和修改的文本,Markdown 文档更为自然。因此我后来尝试用 C# WPF 做了一个可视化的生成界面,便于查看和生成,例如点击一个节点就可以调用 AI 生成其子节点,但最终效果很不得劲,而且发现结构化本身会限制 AI 的发挥。
这些问题促使我寻找其他方案。
AI Coding CLI 关键能力
AI Coding CLI 是一类在终端中运行的 AI 编程工具。它们的工作方式是:用户在命令行中用自然语言描述任务,AI 通过调用文件读写、命令执行等工具来完成任务。输出写入实际的文件系统,可以用 Git 追踪变更。
对这个项目而言,AI Coding CLI 有一项关键能力:上下文窗口管理。在单次对话中,模型可以维护数十万 token 的上下文。这意味着当 AI 编写第 48 篇文档时,前 47 篇的全部内容仍然在它的工作记忆中,部分任务还可以委托给子 Agent 完成,上下文压缩可以实现近乎无限对话的效果。
另一项关键能力:文件系统。AI Coding CLI直接工作在本地文件系统之上,而文件系统是一个灵活高效的组织内容的形式,还可以配合本地 git 实现文档版本管理。
这两点关键能力可以实现 1+1>2 的效果------你可以随时唤起一个新的 agent,让其加载现有全部或者部分文档,然后完成特定的目标。
以下是整个生成过程的记录。
第一阶段:搭建骨架
第一条指令:
"帮我写一篇世界设定大纲,放在根目录,名称是'法纳奇幻大陆'。"
AI Coding CLI 生成了一篇主文档 法纳奇幻大陆.md,包含 10 个板块:世界概述、创世神话、纪元划分、地理与区域、种族设定、魔法体系、势力与阵营、核心冲突、基调与主题,以及一份待扩展清单。每个板块有简短的概述和关键设定点。
这一步的作用是建立命名体系和逻辑框架。后续所有文档都将引用这里确立的名称、概念和关系。比如两位原初之神"织命者·伊萨拉"和"碎星者·莫赫恩"的名称和对立关系,在这一步就固定了下来。

第二阶段:基础层展开
第二条指令:
"逐一编写每个板块内容,要求保持整体一致性,自上而下派生,你需要自行按照逻辑组织和编排内容,以及决定文档的编写顺序。"
AI Coding CLI 自主完成了以下步骤:
- 创建了 13 项任务的工作清单
- 确定了编写顺序:神话 → 历史 → 地理 → 种族 → 魔法 → 宗教 → 生态 → 势力 → 经济 → 语言 → 战役 → 角色
- 按此顺序逐一编写了 12 篇基础设定文档,共约 4,200 行
- 更新主文档,添加了指向各篇文档的索引
编写顺序本身是有意义的。创世神话确立了世界的基本法则和核心矛盾,历史纪元描述了这些法则在时间中的展开,地理区域是历史事件的空间载体,种族适应各自的地理环境,魔法规则从创世神话的形而上学中推导而来。每一层都依赖上一层提供的前提。
指令中"自上而下派生"这个约束起到了关键作用。它让 AI 在编写每篇文档时,以已有文档为基础进行推导,避免凭空发明与已有设定矛盾的内容。

第三阶段:深度展开
第三条指令:
"接下来编写每个设定的若干具体设定,每个设定的具体设定由多篇文档构成,组织到一个独立文件夹中。"
AI Coding CLI 创建了 12 个子目录,编写了 48 篇子文档。每篇文档深入一个世界设定的特定方面。例如"创世神话与神祇谱系"这个分类下,展开了织命者伊萨拉详设、碎星者莫赫恩详设、创世过程时间线、次级神祇设定、创世遗物详设、虚空与神裔体系共 6 篇子文档。
在审阅输出后,我注意到第 06 至第 12 分类的子文档数量和深度明显不如前 5 个分类。于是给出了第四条指令:
"06~12 的详细设定太简单了,请每个分类都应该包含数篇文档,详细展开各自的设定,请删除旧的重新编写。"
AI Coding CLI 删除了旧文件,以与前 5 个分类对齐的深度重新编写了第 06 至第 12 分类的子文档。
这个过程说明反馈的简洁性是可行的。我没有逐篇指出哪里不足,只给出了"太简单了,重写"的整体评价。因为前 5 个分类的文档已经在上下文中建立了质量标杆,AI 能够自行理解"对齐"意味着什么。
至此,世界设定的主体工作完成。61 篇文档、约 9,200 行、约 60 万字,分布在 12 个主题目录中。

第四阶段:角色叙事创作
世界设定完成后,我在另一次独立的对话中进行了一个追加实验:基于已有设定创作角色驱动的叙事。
这次对话包含三步。
第一步:重建世界知识。 因为是新的对话,上一次会话的上下文已经不在了。我让 AI 阅读 worldbuilding/ 目录下的全部文档。AI 通过子代理批量读取了 61 篇文件,在当前会话中重建了对整个世界的理解。
第二步:角色与多线日志。 我给出的指令是:
"请编写一个角色,该角色浪迹天涯,写出他的情缘日志,写为一篇文档"
AI 创造了一个名为"罗兰·灰羽"的人类行商角色,以第一人称日志体写了六段跨种族的情感经历,分别发生在暮落王域(人类)、翡翠深林(精灵)、苍穹高地(矮人)、赤沙荒原(兽族)、碧波诸岛(海族)和灰原镇(灰烬教团)。每段日志都嵌入了对应区域的地理细节、种族特性和社会设定。
第三步:单卷深度展开。 我选定了其中第五卷(珍珠港·海族),要求展开为完整的独立文档。AI 重新阅读了海族设定、碧波诸岛地理、灵脉系统和经济体系等关联文档,将约 800 字的日志扩展为十一章、约 7,000 字的中篇叙事。新增的所有细节------海族的双栖变形过程、珊瑚湾的灵脉涌泉、棘背海马的灵脉脉冲、歌鲸的远距声纳------都能在世界设定文档中找到对应的来源。
这个阶段验证了一件事:详细的世界设定可以直接作为叙事创作的素材库。AI 在写作时将设定文档当作约束条件使用,确保故事中的每个细节与已有世界观吻合。

几点观察
上下文窗口承载了一致性
61 篇文档的跨引用一致性------角色名称、地名、历史事件、魔法规则在所有文档中保持吻合------主要由大上下文窗口承载。模型在编写后续文档时,能直接参照已有文档中的具体内容。这一点在早期 Python 方案中需要人工校对来实现,在 AI Coding CLI 方案中由上下文窗口直接覆盖了。
自上而下的层级展开降低了矛盾风险
先确立根基(创世神话),再逐层推导(历史 → 地理 → 种族 → ......)的顺序让每一层的内容都有明确的上层前提。这降低了内容之间出现逻辑矛盾的风险。如果在没有确定地理格局的情况下先写种族设定,就可能出现种族的生活方式与其栖息地环境不匹配的问题。
指令的简洁与 AI 的自主执行
整个世界设定阶段,我发出的指令约 8 条,全部是高层次的方向性描述。我没有指定任何具体的名称、情节或设定内容。编写顺序、文档结构、具体文本都由 AI 自主决定。我的角色更接近于审阅者:在每个阶段检查输出,给出整体评价(如"太简单了,重写"),然后让 AI 自行调整。
文件系统提供了持久化和可审查性
AI Coding CLI 的输出是实际的磁盘文件。这提供了两个便利:文件在对话结束后仍然存在,可以用任何文本编辑器查阅和修改;文件变更可以通过 Git 追踪,形成完整的版本历史。相比聊天窗口中的文本,文件系统是更适合大规模创作项目的输出介质。
世界设定作为创作加速器
角色叙事创作阶段的体验表明,详细的世界设定可以降低 AI 创作时"凭空编造"的比例。当 AI 拥有关于海族生理特性、珍珠港城市结构、潮汐魔法原理的详细参考资料时,它生成的叙事细节更加具体,也更容易与整体世界观保持一致。设定文档起到了类似"领域知识库"的作用。
结语
以上就是整个过程的记录。从 Python 脚本到 AI Coding CLI,工具在变,但"自上而下逐层展开"的基本思路是一致的。模型上下文窗口的扩大和工具使用能力的增强,让原先需要代码编排的工作可以在对话中直接完成。
这套方案适合需要大规模、高一致性内容生成的场景。奇幻世界设定是一个例子,类似的方法也许可以迁移到其他需要系统性内容构建的领域。
下面的项目仓库中包含了全部 61 篇世界设定文档和角色叙事创作示例,可供参考。