AI写小说的工程化实践:从提示词到长篇创作流程搭建
发布时间:2026/8/30 15:56:04 作者:尧图编辑部 阅读量:1,286

很多人刚开始用 AI 写小说想的都是同一件事我只要把故事梗概喂给大模型几秒钟它就能吐出一章一天写几千字不是梦。上手之后才发现生成的稿子看起来通顺读起来却总觉得“有点怪”人物说话像 AI场景描写像模板剧情推进像流水账写到第五章主角的名字都能记混。这不是模型不够聪明而是大多数人都忽略了一件事AI 写小说根本不是“把写作变快”而是“把写作变成一套新的工程流程”。你以为自己在写小说实际上你正在做的工作介于主编、游戏策划和 prompt 工程师之间。如果只把 AI 当打字机生成的永远只是废稿。这篇文章想认真拆解一下AI 写小说到底应该怎么用。我们会聊清楚大模型生成小说的技术原理给出真正可用的创作工作流也会直接放出能跑的 Python 示例、提示词模板和“AI 味”诊断脚本。读完你会明白为什么别人用 AI 能写出能看的长篇而你只能得到一堆同质化开头。1. 这篇文章真正要解决的问题先给一个明确判断AI 写小说真正要解决的不是“生成速度”而是“可控性”和“一致性”。速度从来不是瓶颈。现在主流大模型每分钟生成几百字是常态比绝大多数真人打字快。真正的问题在于AI 生成的内容不可控你想写悬疑它给你写成了鸡汤。你想写冷静理性的主角它让主角动不动眼泪夺眶而出。你希望人物始终用第一人称叙述第三回它突然变成了上帝视角。你前面埋了一个伏笔四十章之后它不但没回收还把设定直接改掉了。这些问题在短文里不明显因为上下文很短一旦进入长篇缺陷就会被无限放大。长篇网文、出版物、连载故事拼的从来不是单章文笔而是几十万字里的人物一致性、剧情逻辑和节奏控制。所以这篇文章讨论的是怎样把 AI 从“一次性生成工具”升级成“可持续产出长篇内容的创作管线”。适合读这篇文章的人有三类第一类是网文作者想用 AI 提高码字效率但不想让作品变成千篇一律的 AI 味文本第二类是独立开发者或产品经理想做一个 AI 小说助手类工具需要理解核心流程第三类是写作爱好者想用 AI 辅助把脑子里那个故事真正写出来而不是玩两下就放弃。如果你只想用 AI 随便写个言情短篇发朋友圈这篇文章对你可能太重了但如果你想认真写一本能读下去、能完结、甚至能拿去投稿的小说下面的内容值得收藏。2. 先看清本质AI 写小说到底是怎么工作的很多人的误区是把大模型当成“懂文学创作的作家”实际上它是一个“根据上文预测下文的高维概率系统”。用一句通俗的话解释大模型写出的每个词都是从巨大的词表里按概率挑出来的。它见过海量文本知道在一个句子后面哪个词最可能接着出现。这让它读起来非常流畅但也决定了它的两个天然倾向第一它倾向于生成“最安全”的内容。因为高概率词往往来自最常见、最俗套的表达所以 AI 写的开头常常是“夜色如墨”“她轻轻咬了咬嘴唇”“他的眼神深邃而复杂”。这不是因为它没有才华而是因为它追求统计上的稳妥。第二它缺乏长期记忆。大模型有“上下文窗口”限制比如 8K、32K、128K token。短篇可以在一个窗口里塞下长篇就不行了。你写 20 章之后前面的细节早就被挤出上下文模型只能靠 text 里残留的信息猜测所以人物崩坏、设定漂移非常正常。这就解释了为什么“一段提示词让 AI 写整本小说”绝对行不通。你给它的信息量不够它就只能自由发挥它一自由发挥你的故事就会滑向平均脸。2.1 影响输出质量的几个关键参数在动手之前先简单认识几个会影响小说生成的参数。参数作用写小说时的建议temperature控制随机性越高越发散越低越稳定正文生成用 0.7 到 1.0细纲和设定用较低值top_p控制采样的候选词范围配合 temperature 调整一般 0.9 左右max_tokens限制单次生成长度小说正文可以设 1500 到 4000视模型而定presence_penalty鼓励讨论新话题减少重复可以适当调高降低复读感frequency_penalty抑制重复用词写小说建议打开否则“他”“她”“然后”会频繁出现不同模型对参数的含义略有差异但大方向一致。实际使用中参数不会替你写好小说它只是帮你控制“AI 的自由度”。如果你发现生成的段落过于平庸可以提高 temperature如果人物说话开始前后矛盾就降低 temperature。2.2 AI 幻觉问题另一个绕不开的概念是 AI 幻觉指的是模型一本正经地生成和事实不一致的内容。在写小说时AI 幻觉表现在两个层面一是现实常识错误。比如历史背景小说里模型随口说出一个不存在的官职把朝代时间线搞错。二是创作设定错误。你明确写了主角是左撇子35 章之后它突然写“他右手捏着筷子”。你说魔法体系里火系克制风系它后文突然写风反杀了火还振振有词。AI 幻觉不会消失只能靠流程约束。所以扎实的小说创作流程必须包含“设定文档 人工校验 章节回读”三个环节。3. 环境准备与前置条件如果你只是想试试 AI 写小说网页版聊天框就够了但如果你想认真构建自己的创作流程建议用一个脚本把“提示词工程 模型调用 文本保存”串起来。下面以 Python 环境为例做一个最小可用的方案。3.1 工具选型大模型部分你可以选国外商用模型GPT 系列、Claude 系列长篇上下文能力较强。国内商用模型文心、通义、Kimi、智谱等中文语感通常不错。本地模型Qwen 系列、DeepSeek 系列的开源版本数据保密性好但需要一定显卡配置。具体选择取决于你的预算、隐私要求和使用习惯。这里不推荐某一款因为模型迭代太快今天的最优解下个月可能就变了。关键在于你选的那个服务最好提供 OpenAI 兼容的 API 接口这样一来下面的代码几乎不用改。3.2 Python 环境建议使用 Python 3.10 及以上版本创建一个虚拟环境python3 -m venv novel_env source novel_env/bin/activate # Windows 下使用 novel_env\Scripts\activate pip install openai python-dotenv这里安装的是openai官方 Python 包。即使你用的是国内模型只要它提供了 OpenAI 兼容接口也可以通过设置base_url来调用。不同的服务商地址不同请以实际项目和服务商文档为准。3.3 配置文件在项目目录下创建一个.env文件保存 API 密钥和服务地址。注意这个文件不要提交到 Git避免密钥泄露。OPENAI_API_KEYsk-你的密钥 OPENAI_BASE_URLhttps://你的服务商地址/v1然后用python-dotenv读取这些配置。from dotenv import load_dotenv import os load_dotenv() API_KEY os.getenv(OPENAI_API_KEY) BASE_URL os.getenv(OPENAI_BASE_URL)到这里环境已经准备好。接下来最难也最花心思的部分不是代码而是提示词和创作流程。4. 核心流程拆解把“写小说”变成“管理生成任务”很多人用 AI 写小说失败不是因为不会写提示词而是因为把“写作”当成了一个一步到位的动作而忘了写作本来就是一个分阶段的过程。一个专业的写作流程通常包含概念构思 - 梗概 - 人物设定 - 章纲 - 逐章写作 - 修改润色。AI 参与的理想方式不是每一步都由 AI 独立完成而是AI 负责快速产出候选方案你负责判断、筛选和修正。换句话说AI 是你的“联合编剧”不是你的“枪手”。4.1 第一步生成故事梗概与世界观设定不要上来就让 AI 写第一章。先让它和你一起构建故事的地基。一个高质量的梗概至少需要回答主角是谁他的目标是什么。最大的障碍是什么反派或对抗力量来自哪里。故事的结局大概是什么方向。故事的核心冲突是什么。给 AI 的提示词示例你是一名资深网文编辑。请根据以下思路帮我生成三个风格不同的故事梗概。 要求 1. 每个梗概控制在 300 字以内。 2. 明确写出主角、目标、障碍、核心冲突和结局方向。 3. 反派不能只是“坏”要有合理的动机。 4. 请避免“天降奇缘”“主角光环过重”等套路化设定。 我的原始思路 主角是一个从事文物修复的年轻人意外获得了一本能看见物品历史的笔记本。这一步的目的是用最低成本获得多个候选方向。你会发现AI 生成的前三个梗概往往很像网上常见的套路别急着选逼它给出更有冲突感、更反套路的版本。多次迭代之后你会得到一个真正可能不一样的故事骨架。4.2 第二步建立人物卡人物卡是长篇创作里最重要也最容易被忽略的部分。很多 AI 写小说出现“人物崩坏”根源不是模型不行而是你从来没有把人物设定持续输入给模型。一张合格的人物卡应该包含姓名陈默 年龄28 职业文物修复师 性格标签谨慎、固执、轻度社恐 说话方式短句偏多不爱用比喻紧张时会重复对方问题 目标查清祖父失踪的真相 弱点对重要的人容易心软行动前过度犹豫 秘密他的眼睛能看见物品残留的情绪 禁忌绝不谈论父母离世那晚发生的事有了这张卡每次生成章节时把它放到提示词里模型才知道“我是谁”。人物卡建议用单独的文件保存比如characters/chenmo.md。后续如果要换模型、重新生成全文这些设定文件就是你的生产资料。4.3 第三步拆分章节细纲有了设定和人物卡接下来是整本书里最容易决定成败的环节章节细纲。章节细纲不是把剧情一句话写完而是要明确这一章承担的叙事功能这一章的情节点是什么主角的状态在章末和章初有什么变化有没有需要埋下的伏笔整章的节奏是激烈、平缓还是悬疑结尾是否留下钩子举例来说如果故事是悬疑向章节的节奏就不宜一章接一章全是动作场面要有情绪的起伏和信息的逐步披露。AI 生成章节细纲的提示词示例请根据已给的人物卡和故事进度生成第 7 章的细纲。 要求 1. 用 5 个小节描述本章场景顺序。 2. 每个小节标明出现人物、场景地点、发生事件、主角情绪变化。 3. 章末必须有一个悬念或反转。 4. 本章需要呼应第 3 章提到的“祖父留下的修复笔记”。 当前故事进度 主角陈默刚发现笔记本的第一页夹着一张泛黄照片背景是 30 年前的文物修复室。细纲的最大价值是在生成几千字正文之前你只用几百字就能判断剧情方向对不对。方向错了改细纲比改正文便宜得多。4.4 第四步逐章生成正文千万不要一次性让 AI 输出全本一次只生成一章最多一章拆成两三段。原因有两个一是上下文窗口有限太长会导致后文和设定脱节二是章节太长后你发现问题时返工成本太高。生成正文时的典型提示词结构是你是小说《某某》的作者请严格保持人物卡中的人设按以下细纲写正文。 【人物卡】 粘贴人物卡 【本章细纲】 粘贴当前章节细纲 【写作要求】 1. 使用第三人称有限视角跟随主角视角。 2. 保持冷峻简洁的文风不使用华丽形容词堆砌。 3. 对话要有潜台词避免人物直白说出内心想法。 4. 本章字数 2500 字左右。 5. 不要出现“然而”“不禁”“瞬间”等高频 AI 词汇。把人物卡、细纲、写作要求每次都带进提示词看起来麻烦但它恰好是长篇一致性的保障。4.5 第五步人工编辑与“去模板化”润色这一步是大多数 AI 写作者最缺的环节也是最容易产生内容价值的地方。AI 生成的初稿只能算“毛坯”。你至少要花时间做三件事第一压缩重复信息。AI 特别喜欢反复解释同一件事比如“他感到愤怒”后面又写“愤怒像火焰一样燃烧”再后面又来一个“他的愤怒无法控制”。编辑时只保留最有张力的一句。第二增加具体细节。AI 写场景往往是“房间里摆着一张桌子桌上有一杯咖啡”这太抽象了。人工补充细节后哪怕一句“杯壁上有半个已经干透的口红印”整个场景的质感就完全不同。第三打断句式的规律性。AI 生成的句子长度往往高度均匀读起来像翻译腔。人为调整长短句交替删掉多余的连接词句子会立刻更像人写的。这里要特别说明很多人把上面这一步叫“去 AI 味”。但本质上这不是为了欺骗任何检测工具而是为了提高文本质量。真正好的小说不会因为“检测不出 AI”而变好它变好是因为你切掉了套路化的表达加入了真实的情感与细节。检测工具只是辅助作品质量才是目的。5. 完整示例与代码实现这一节会把前面讲的流程落成可运行的代码。下面三个示例可以组合成一个简易的 AI 小说助手脚本。5.1 准备一个可复用的模型调用函数先封装一个最底层的调用函数。假设你使用的是 OpenAI 兼容接口# 文件路径src/llm_client.py import os from openai import OpenAI from dotenv import load_dotenv load_dotenv() client OpenAI( api_keyos.getenv(OPENAI_API_KEY), base_urlos.getenv(OPENAI_BASE_URL), ) def generate_text( system_prompt: str, user_prompt: str, model: str gpt-4o-mini, temperature: float 0.8, max_tokens: int 3000, ) - str: response client.chat.completions.create( modelmodel, messages[ {role: system, content: system_prompt}, {role: user, content: user_prompt}, ], temperaturetemperature, max_tokensmax_tokens, ) return response.choices[0].message.content这段代码的要点是把模型名称和 temperature 都抽成参数。你需要把model换成实际使用的模型名具体名称以服务商文档为准。5.2 使用脚本生成章节正文接下来写一个用于生成章节的脚本它会读取人物卡和细纲文件组装成完整提示词调用模型生成正文再保存到本地。# 文件路径src/generate_chapter.py from pathlib import Path from llm_client import generate_text character_card Path(characters/chenmo.md).read_text(encodingutf-8) chapter_outline Path(outlines/chapter_007.md).read_text(encodingutf-8) style_rules 1. 使用第三人称有限视角。 2. 文风冷峻简洁句子长短交替。 3. 对话要有潜台词不直接交代内心想法。 4. 避免过度使用“然而”“不禁”“仿佛”等词。 system_prompt 你是一位擅长写长篇小说的资深作者。你最重要的能力是保持人物设定一致。 user_prompt f 请根据人物卡和章节细纲生成第 7 章正文。 【人物卡】 {character_card} 【章节细纲】 {chapter_outline} 【写作要求】 {style_rules} 请输出完整章节正文字数控制在 2500 字左右。 chapter_text generate_text( system_promptsystem_prompt, user_promptuser_prompt, temperature0.85, max_tokens3500, ) output_path Path(chapters/chapter_007.md) output_path.parent.mkdir(exist_okTrue) output_path.write_text(chapter_text, encodingutf-8) print(f第 7 章已生成{output_path})运行方式cd src python generate_chapter.py这是一个非常小的脚本但它已经把“流程”这个概念落地了人物卡和细纲是输入正文是输出提示词模板是中间加工环节。之后你想换模型、改风格只需要调整对应配置文件。5.3 AI 味文本诊断脚本生成完正文后可以用一个简单脚本检测常见的 AI 模板化特征。这个脚本不做“真假判定”它只输出文本中高频词、句子长度分布等信息供你判断初稿需要重点修改哪些位置。# 文件路径src/text_diagnose.py import re from collections import Counter from pathlib import Path def load_text(path: str) - str: return Path(path).read_text(encodingutf-8) def split_sentences(text: str): return [s.strip() for s in re.split(r[。!?], text) if len(s.strip()) 2] def diagnose(text: str): sentences split_sentences(text) common_ai_words [然而, 仿佛, 不禁, 瞬间, 缓缓, 轻轻, 似乎, 眸, 嘴角] word_counter Counter(word for word in common_ai_words if word in text) sentence_lengths [len(s) for s in sentences] avg_len sum(sentence_lengths) / len(sentence_lengths) if sentence_lengths else 0 variance ( sum((x - avg_len) ** 2 for x in sentence_lengths) / len(sentence_lengths) if sentence_lengths else 0 ) print(句子数量, len(sentences)) print(f平均句子长度{avg_len:.1f} 字) print(f句子长度方差{variance:.1f}) print(\n常见 AI 高频词统计) for word, count in word_counter.most_common(): if count 0: print(f {word}: {count} 次) if variance 20: print(\n提示句子长度方差偏小文本可能有节奏单一的‘AI 味’。) if __name__ __main__: diagnose(chapters/chapter_007.md)运行命令python text_diagnose.py这段代码的数据不是绝对标准但它能帮你快速定位问题。看到“仿佛”“不禁”出现很多次、句子长度方差很小时你就能精准地去对应段落做人工修改而不是通读全文凭感觉找别扭。6. 运行结果与效果验证很多新手在生成完一章后只扫一眼“挺通顺”就继续往下写。这里建议做一个更严谨的效果验证至少检查以下维度。检查维度具体内容判断标准人物一致性主角的行为、说话方式、情绪反应是否符合人物卡如果读者不看角色名也能认出是谁说明基本合格设定一致性世界观规则、前文伏笔、能力体系是否前后冲突用脚本或人工维护一个“设定变更记录”剧情推进本章是否完成细纲规定的目标不要用“景色描写优美”代替剧情进展节奏控制长短句、对话与叙述是否交错连续三页都是动作打斗或连续三页都是内心独白都算失衡AI 味高频词、重复句式、句子长度方差用诊断脚本辅助重点靠人工阅读判断判断标准很简单如果你自己都觉得这段文字“像 AI 写的”直接扔回去重新生成或者切换到人工修改不要留着凑字数。如果生成结果不理想按照以下顺序排查看提示词是否包含了人物卡和细纲。很多人图省事把这两个核心信息省略了模型就只能自由发挥。看模型上下文是否超限。如果细纲太长、人物卡太长可以精简只保留当前章节需要的设定。看 temperature 是否过高。正文生成时temperature 超过 1.0 通常只会增加混乱不会增加才华。看拒绝词是否够具体。与其写“不要太 AI 化”不如直接禁止“然而、仿佛、不禁”这几个词。7. 常见问题与排查思路下面汇总了 AI 写小说最常遇到的 7 个问题每个问题都给出排查方向和改善方法。问题现象可能原因排查方式解决方案章节开头千篇一律提示词缺少风格约束模型倾向生成高概率安全开头查看连续多章的第一段在提示词里提供“章节开头反套路要求”人物说话像个 AI人物卡缺少说话方式描述检查同一角色在多个场景的对话在人物卡中补充“说话方式”和“口头禅/禁忌词”主角行为前后矛盾上下文窗口受限旧设定被遗忘查看生成前是否输入了人物卡每章提示词都携带精简版人物卡剧情推进缓慢细纲粒度太粗模型自行扩写了无效内容对比细纲与正文的场景数量细化章节细纲规定场景数量和功能设定被改AI 幻觉模型自行补全了不合规矩的设定检索关键词检查能力体系维护“设定变更记录”人工回读全文读起来像翻译腔句子长度方差小连接词过多运行 text_diagnose.py 统计人工编辑时做长短句交替、删连接词生成内容不完整max_tokens 设置过低检查返回内容是否被截断提高 max_tokens或要求模型分上下段输出这些问题的共性是它们都不是“换个更大模型”就能解决的。模型能力会提升但创作流程中的结构性问题会一直在。8. 最佳实践与工程建议如果你的目标不是玩票而是真的用 AI 写一本几十万字的小说下面这些工程化建议值得认真对待。8.1 用文件夹管理创作素材建议项目目录结构如下novel_project/ ├── characters/ # 人物卡 ├── outlines/ # 章节细纲 ├── chapters/ # 生成的正文 ├── lore/ # 世界观设定 ├── prompts/ # 可复用提示词模板 ├── scripts/ # Python 脚本 └── .env # API 配置不入 Git这种结构最大的好处是任何时刻你都能知道故事写到哪里、设定是什么、哪些提示词好用。换模型、重写某一章时不用从头再来。8.2 人物卡要“精简但有锚点”不要只写性格形容词要写“行为锚点”。比如“紧张时会重复对方问题”这句话对模型生成的对话影响很大。形容词“谨慎”模型容易理解成“说话文绉绉”但行为锚点有更强的约束力。每次生成正文前把人物卡和当前章节细纲一起塞进提示词。虽然每次会多消耗一些 token但换来的是人物一致性这个成本非常值得。8.3 风格锚点要写进 prompt与其说“文风优美”不如给模型具体规则- 对话中要保留人物的犹豫和沉默不用把每句话都说满。 - 场景描写不超过三句之后立刻进入动作或对话。 - 每章结尾必须出现一个“信息增量”不能只是情绪感慨。这些规则本质上是一个“写作风格说明书”。你可以把积累的有效规则放到prompts/style_rules.md里持续迭代。8.4 版本管理和备份写几十万字的小说最怕的就是误操作。推荐把整个项目目录纳入 Git 管理git init git add . git commit -m init novel project重要的是先创建.gitignore把.env排除在外.env __pycache__/ venv/每写完一章提交一次。这样你可以随时回滚到任意章节版本也可以在实验新提示词时放心大胆地测试。8.5 关于版权与平台规则的清醒认识用 AI 辅助写作时需要了解几个现实问题。第一不同平台对 AI 生成内容的规则不一样。有的平台允许 AI 辅助有的要求声明 AI 参与度。动手投稿前先读清楚平台规则避免文章被下架甚至封号。第二AI 生成内容的版权归属在不同地区、不同服务条款下可能有差异。如果你有商业出版计划建议确认所用模型服务的用户协议。第三不要指望用 AI 完全替代人工。真正能在市场上立足的 AI 辅助作品一定是有人类作者投入了大量判断、编辑和重写工作的作品。AI 提供的是效率和候选方案审美与责任始终在作者自己身上。9. 总结与后续学习方向回到文章开头那个问题用 AI 写小说大多数人忽略的事到底是什么答案是忽略了自己角色的转变。你不再是一个“打字的人”而是一个“管理生成过程的人”。真正拉开作者之间差距的不是谁的模型更强、谁的提示词更花哨而是谁能把“设定管理、细纲拆分、逐章生成、人工编辑”这套流程稳定跑起来。这篇文章真正讲清楚了几件事为什么 AI 写小说容易出现同质化和人物崩坏。为什么好的创作流程要分成设置、细纲、生成、编辑几个阶段。怎样用 Python 脚本把大模型 API 接入创作流程。怎样用诊断脚本定位文本里的 AI 味。怎样用 Git、目录结构和人物卡保证长篇项目可控。如果你看完文章准备动手建议从最小闭环开始先写一张人物卡再写一个章节细纲用脚本生成一章最后亲手改一遍。跑通这个流程比研究一百种花哨的提示词更有意义。后续值得继续学习的方向有三个第一深入掌握你所用模型的上下文管理技巧比如精简单章输入、善用摘要压缩旧剧情第二研究如何把“读者反馈”数据纳入创作流程让 AI 辅助更贴近市场第三如果对工具开发感兴趣可以把这套流程封装成一个小而美的 AI 小说助手加入批量生成、自动检查、素材库管理等功能。AI 不会替你写出好故事但它可以让你把更多精力留给真正重要的部分判断什么值得写什么应该删掉以及如何让故事真正打动读者。这恰恰是写小说这件事里最不可替代的能力。