惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MongoDB | Blog
MongoDB | Blog
博客园 - 聂微东
Attack and Defense Labs
Attack and Defense Labs
WordPress大学
WordPress大学
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Spread Privacy
Spread Privacy
AI
AI
宝玉的分享
宝玉的分享
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
Cyber Attacks, Cyber Crime and Cyber Security
爱范儿
爱范儿
Help Net Security
Help Net Security
V
Visual Studio Blog
大猫的无限游戏
大猫的无限游戏
Forbes - Security
Forbes - Security
P
Privacy & Cybersecurity Law Blog
Project Zero
Project Zero
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
T
Troy Hunt's Blog
美团技术团队
T
Threatpost
K
Kaspersky official blog
V
V2EX
Scott Helme
Scott Helme
Vercel News
Vercel News
T
The Blog of Author Tim Ferriss
T
Tailwind CSS Blog
V
Vulnerabilities – Threatpost
Last Week in AI
Last Week in AI
PCI Perspectives
PCI Perspectives
Google Online Security Blog
Google Online Security Blog
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
I
InfoQ
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
酷 壳 – CoolShell
酷 壳 – CoolShell
GbyAI
GbyAI
L
LINUX DO - 最新话题
T
The Exploit Database - CXSecurity.com
L
LangChain Blog
S
Security @ Cisco Blogs
The Last Watchdog
The Last Watchdog
H
Hacker News: Front Page
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
TaoSecurity Blog
TaoSecurity Blog

博客园 - ExperDot

追求极致体验:AI 聊天应用的 20 个功能要点 探索性 AI 聊天应用:交叉分析表 3种方法让大语言模型提取任意文档中的知识点 AI 聊天应用的 10 条高级需求 Web安全入门(一):Web安全是什么? ASP.NET Core文件压缩最佳实践 什么是软件开发? Web应用实例:音频可视化 粒子系统(二):绘制精美几何图案 图像识别:微信跳一跳机器人 粒子系统(一):从零开始画一颗树 Unity3D对弈游戏:狼吃羊游戏 ExperDot的博客目录导航 编程模拟自然(九):元胞自动机 自动绘图AI:程序如何画出动漫美少女 UWP简单示例(三):快速开发2D游戏引擎 UWP简单示例(二):快速开始你的3D编程 UWP简单示例(一):快速合成音乐MV AR创意分享:儿童涂鸦遇上程序绘图
用 AI Coding 工具生成 60 万字奇幻世界设定的实践记录
ExperDot · 2026-03-25 · via 博客园 - ExperDot

引言

我一直有用 AI 编写小说的想法,最近尝试用 AI Coding CLI,在几轮对话中生成了一套约 60 万字的奇幻世界设定,其覆盖了一个虚构世界从创世神话到当代变革的各个方面。并随后在一个独立的对话中,基于这套设定进一步生成了角色驱动的叙事文学。

这篇文章记录整个过程以及其中的一些观察。

早期尝试:用 Python/C# 编排 LLM 调用

在使用 AI Coding CLI 之前,我曾尝试过另一种方式:编写 Python 脚本来编排大语言模型的 API 调用。

核心思路是将内容组织为树形结构。每个节点包含名称、描述、属性列表和子节点。生成过程自上而下进行:先为根节点生成子模块,再为每个子模块生成其属性,逐层递归展开。

# 简化示意:节点结构
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 个板块:世界概述、创世神话、纪元划分、地理与区域、种族设定、魔法体系、势力与阵营、核心冲突、基调与主题,以及一份待扩展清单。每个板块有简短的概述和关键设定点。

这一步的作用是建立命名体系和逻辑框架。后续所有文档都将引用这里确立的名称、概念和关系。比如两位原初之神"织命者·伊萨拉"和"碎星者·莫赫恩"的名称和对立关系,在这一步就固定了下来。

image

第二阶段:基础层展开

第二条指令:

"逐一编写每个板块内容,要求保持整体一致性,自上而下派生,你需要自行按照逻辑组织和编排内容,以及决定文档的编写顺序。"

AI Coding CLI 自主完成了以下步骤:

  1. 创建了 13 项任务的工作清单
  2. 确定了编写顺序:神话 → 历史 → 地理 → 种族 → 魔法 → 宗教 → 生态 → 势力 → 经济 → 语言 → 战役 → 角色
  3. 按此顺序逐一编写了 12 篇基础设定文档,共约 4,200 行
  4. 更新主文档,添加了指向各篇文档的索引

编写顺序本身是有意义的。创世神话确立了世界的基本法则和核心矛盾,历史纪元描述了这些法则在时间中的展开,地理区域是历史事件的空间载体,种族适应各自的地理环境,魔法规则从创世神话的形而上学中推导而来。每一层都依赖上一层提供的前提。

指令中"自上而下派生"这个约束起到了关键作用。它让 AI 在编写每篇文档时,以已有文档为基础进行推导,避免凭空发明与已有设定矛盾的内容。

image

第三阶段:深度展开

第三条指令:

"接下来编写每个设定的若干具体设定,每个设定的具体设定由多篇文档构成,组织到一个独立文件夹中。"

AI Coding CLI 创建了 12 个子目录,编写了 48 篇子文档。每篇文档深入一个世界设定的特定方面。例如"创世神话与神祇谱系"这个分类下,展开了织命者伊萨拉详设、碎星者莫赫恩详设、创世过程时间线、次级神祇设定、创世遗物详设、虚空与神裔体系共 6 篇子文档。

在审阅输出后,我注意到第 06 至第 12 分类的子文档数量和深度明显不如前 5 个分类。于是给出了第四条指令:

"06~12 的详细设定太简单了,请每个分类都应该包含数篇文档,详细展开各自的设定,请删除旧的重新编写。"

AI Coding CLI 删除了旧文件,以与前 5 个分类对齐的深度重新编写了第 06 至第 12 分类的子文档。

这个过程说明反馈的简洁性是可行的。我没有逐篇指出哪里不足,只给出了"太简单了,重写"的整体评价。因为前 5 个分类的文档已经在上下文中建立了质量标杆,AI 能够自行理解"对齐"意味着什么。

至此,世界设定的主体工作完成。61 篇文档、约 9,200 行、约 60 万字,分布在 12 个主题目录中。

image

第四阶段:角色叙事创作

世界设定完成后,我在另一次独立的对话中进行了一个追加实验:基于已有设定创作角色驱动的叙事。

这次对话包含三步。

第一步:重建世界知识。 因为是新的对话,上一次会话的上下文已经不在了。我让 AI 阅读 worldbuilding/ 目录下的全部文档。AI 通过子代理批量读取了 61 篇文件(也可以要求不要使用子代理),在当前会话中重建了对整个世界的理解。

第二步:角色与多线日志。 我给出的指令是:

"请编写一个角色,该角色浪迹天涯,写出他的情缘日志,写为一篇文档"

AI 创造了一个名为"罗兰·灰羽"的人类行商角色,以第一人称日志体写了六段跨种族的情感经历,分别发生在暮落王域(人类)、翡翠深林(精灵)、苍穹高地(矮人)、赤沙荒原(兽族)、碧波诸岛(海族)和灰原镇(灰烬教团)。每段日志都嵌入了对应区域的地理细节、种族特性和社会设定。

第三步:单卷深度展开。 我选定了其中第五卷(珍珠港·海族),要求展开为完整的独立文档。AI 重新阅读了海族设定、碧波诸岛地理、灵脉系统和经济体系等关联文档,将约 800 字的日志扩展为十一章、约 7,000 字的中篇叙事。新增的所有细节——海族的双栖变形过程、珊瑚湾的灵脉涌泉、棘背海马的灵脉脉冲、歌鲸的远距声纳——都能在世界设定文档中找到对应的来源。

这个阶段验证了一件事:详细的世界设定可以直接作为叙事创作的素材库。AI 在写作时将设定文档当作约束条件使用,确保故事中的每个细节与已有世界观吻合。

image

几点观察

上下文窗口承载了一致性

61 篇文档的跨引用一致性——角色名称、地名、历史事件、魔法规则在所有文档中保持吻合——主要由大上下文窗口承载。模型在编写后续文档时,能直接参照已有文档中的具体内容。这一点在早期 Python 方案中需要人工校对来实现,在 AI Coding CLI 方案中由上下文窗口直接覆盖了。

自上而下的层级展开降低了矛盾风险

先确立根基(创世神话),再逐层推导(历史 → 地理 → 种族 → ……)的顺序让每一层的内容都有明确的上层前提。这降低了内容之间出现逻辑矛盾的风险。如果在没有确定地理格局的情况下先写种族设定,就可能出现种族的生活方式与其栖息地环境不匹配的问题。

指令的简洁与 AI 的自主执行

整个世界设定阶段,我发出的指令约 8 条,全部是高层次的方向性描述。我没有指定任何具体的名称、情节或设定内容。编写顺序、文档结构、具体文本都由 AI 自主决定。我的角色更接近于审阅者:在每个阶段检查输出,给出整体评价(如"太简单了,重写"),然后让 AI 自行调整。

文件系统提供了持久化和可审查性

AI Coding CLI 的输出是实际的磁盘文件。这提供了两个便利:文件在对话结束后仍然存在,可以用任何文本编辑器查阅和修改;文件变更可以通过 Git 追踪,形成完整的版本历史。相比聊天窗口中的文本,文件系统是更适合大规模创作项目的输出介质。

世界设定作为创作加速器

角色叙事创作阶段的体验表明,详细的世界设定可以降低 AI 创作时"凭空编造"的比例。当 AI 拥有关于海族生理特性、珍珠港城市结构、潮汐魔法原理的详细参考资料时,它生成的叙事细节更加具体,也更容易与整体世界观保持一致。设定文档起到了类似"领域知识库"的作用。

结语

以上就是整个过程的记录。从 Python 脚本到 AI Coding CLI,工具在变,但"自上而下逐层展开"的基本思路是一致的。模型上下文窗口的扩大和工具使用能力的增强,让原先需要代码编排的工作可以在对话中直接完成。

这套方案适合需要大规模、高一致性内容生成的场景。奇幻世界设定是一个例子,类似的方法也许可以迁移到其他需要系统性内容构建的领域。

下面的项目仓库中包含了全部 61 篇世界设定文档和角色叙事创作示例,可供参考。

项目仓库:https://github.com/experdot/fana-world