news 2026/9/29 3:34:13

RAG如何让长篇小说不崩人设、不丢设定:AI-Novel-Writing-Assistant知识库召回链深度解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RAG如何让长篇小说不崩人设、不丢设定:AI-Novel-Writing-Assistant知识库召回链深度解析

RAG如何让长篇小说不崩人设、不丢设定:AI-Novel-Writing-Assistant知识库召回链深度解析

【免费下载链接】AI-Novel-Writing-Assistant面向长篇小说创作的 AI Native 开源系统,用 Agent、世界观、写法引擎、RAG 和整本生产工作流,帮助新手从一句灵感走到完整小说。AI-native engine for end-to-end novel creation — from idea to full chapters, with structured planning, worldbuilding, and agent-driven workflows.项目地址: https://gitcode.com/gh_mirrors/ai/AI-Novel-Writing-Assistant

写长篇小说,最怕的就是 AI 写到第 50 章把第 3 章的人物设定忘了:主角性格突然反转、世界规则前后矛盾、伏笔石沉大海。AI-Novel-Writing-Assistant 用一条完整的 RAG(检索增强生成)召回链解决这个问题——把世界观、角色资料、拆书结论、写法样本变成可长期复用的资产,在每一章生成前精准"想起"该记得的东西,让长篇小说不崩人设、不丢设定。

一、为什么长篇创作最需要 RAG?

大模型的上下文窗口是有限的。几十万字的小说,不可能每次生成章节都把全文塞给它。传统的"续写工具"要么靠你手动复制粘贴前文,要么让模型自己"凭印象"写,于是出现三类典型问题:

  • 🎭崩人设:角色语气、动机与前期设定漂移
  • 🌍丢设定:世界规则、势力关系、地点细节前后矛盾
  • 🕳️丢伏笔:早期承诺读者的事再也没有下文

RAG 的思路是:把资料提前向量化入库,每次写作前用"当前章节任务"去检索最相关的片段,只把真正有用的资料放进上下文。它不是"读全文",而是"按需取记忆"。

在 AI-Novel-Writing-Assistant 中,知识库不是一个孤立的"上传文件的地方",而是一条贯穿开书、规划、章节执行、审核修复的召回链。完整说明见官方文档 knowledge-and-rag.md。

二、先把资料放进"创作资料书架"

系统把知识库定义为可复用的创作资料书架,而不是一次性上传框。你可以往里放:

资料类型典型内容召回后的作用
设定文档世界规则、力量体系、势力关系正文生成时保持规则一致
参考作品 / 拆书结论结构、卖点、节奏分析迁移写法,不复制情节
角色资料背景、说话方式、关系网防止崩人设
写法样本风格规则、反模板表达控制叙述口吻
章节事实账本已发生事实、未兑现伏笔保证长篇连续性

新手不需要一上来就配齐所有资料——知识库是增强能力,不是开书前置条件。先跑通创作流程,再逐步补资料即可。

三、召回链全景:一章正文的 5 步"记忆"过程

当章节执行开始时,系统并不是拿章节标题去搜资料,而是走一条固定的召回链:

第 1 步:按章节任务构造查询

GenerationContextAssembler.ts 会把小说标题、章节标题、章节目标、本章必须推进的内容、目标冲突、出场角色、结构化大纲组装成一条贴近本章目的的查询。查询越贴近本章目标,召回越容易命中真正有用的资料。

第 2 步:向量 + 关键词双路召回

HybridRetrievalService.ts 同时发起两路检索:

  • 向量检索:擅长"语义相近但用词不同"的资料,比如你写"他变得麻木",也能召回描述主角情感封闭的设定
  • 关键词检索:擅长人名、地名、专有名词,保证"青云宗宗主"这种专名不会漏

第 3 步:RRF 融合排序

两路结果按 RRF(Reciprocal Rank Fusion)算法融合打分,谁的排名都靠前,谁的融合分就高。这一设计让"语义命中"和"关键词命中"互补,而不是互相打架。

第 4 步:可选 Reranker 重排

如果配置了 reranker(默认关闭),融合结果会再经交叉编码器精细重排。它只是"增强阶段"而非硬依赖——外部服务超时时会自动 fail-open,继续用融合结果,检索不会因此中断。

第 5 步:按预算截取最终片段

默认只保留 top 8 个片段进入上下文(finalTopK可配置)。系统刻意控制数量:对长篇小说来说,准确命中当前章节任务,比一次召回大量资料更重要。无关资料塞进上下文只会增加模型噪音。

四、资料来源分层:本书事实永远优先

这是防"崩设定"最关键的一条设计。RAG 召回的资料不是平权的,系统按可信度分了 6 层:

层级示例使用原则
本书事实已写章节、事实账本、角色状态⭐ 最高优先级,不被外部资料覆盖
本书规划书契约、宏观故事、卷战略指导下一步写作目标
用户资料上传知识库、世界样本补充事实和设定
拆书结论参考作品结构、卖点分析迁移方法,不复制情节
写法资产风格规则、反 AI 规则控制表达方式
临时对话当前轮输入只影响当前任务,长期生效需落库

核心规则一句话:外部资料用于补充,不用于推翻已经写入小说状态的内容。比如知识库里的参考角色再出彩,也不能压过本书角色的当前状态;参考资料里的世界规则再详细,也不能覆盖本书已建立的世界设定。

五、闭环才是长篇生产链的灵魂

召回链不只"取",还要"回"。每章执行完成后,系统会把新事实、角色变化、伏笔状态和质量问题回灌入账本:

  1. 自动导演准备书级、世界、角色和章节任务
  2. 章节执行读取这些资产 + RAG 召回资料
  3. 正文生成后提取事实、角色资源、伏笔变化
  4. 状态提交与账本同步写回项目
  5. 下一章读取新状态继续生成

这就是长篇生产链和一次性文本生成的核心区别——资料是活的,越写越"记得住"。

六、知识库"没生效"时的 6 步排查清单

如果你发现召回不命中,按这个顺序查,基本能定位问题(完整调试路径见 knowledge-and-rag.md):

  1. ✅ 确认文档上传成功
  2. ✅ 确认索引任务完成(上传 ≠ 可检索)
  3. ✅ 确认向量库可连接
  4. ✅ 用知识库的召回测试,验证能否被命中
  5. ✅ 检查文档标题、摘要是否包含角色名、地点名、设定名
  6. ✅ 检查当前章节任务是否真的需要这份资料

判断口诀:单文档召回能命中、但章节没用到,问题在章节任务查询或上下文组装;单文档召回也不命中,问题在索引、分块或关键词。

七、给新手的上手路径

  • 📌 先创建小说跑通主流程,知识库可以后配
  • 📌 上传资料前:一份文档只放一类内容、标题写清用途、参考作品/世界设定/写法样本分开存
  • 📌 用召回测试验证资料可被找到,再绑定到具体小说
  • 📌 不用用的资料及时归档,减少干扰召回

相关源码与文档延伸阅读:

  • RAG 服务模块:server/src/services/rag/
  • 召回链官方说明:docs/public/flow/knowledge-and-rag.md
  • 知识库模块文档:docs/public/modules/knowledge-base.md
  • 上下文组装设计:docs/wiki/rag/knowledge-and-context-assembly.md

RAG 的目标是让系统知道更多,而不是让外部资料拥有最高决策权。理解这条"召回—分层—预算—回灌"的完整链路,你就拿到了长篇小说不崩人设、不丢设定的钥匙。🔑

【免费下载链接】AI-Novel-Writing-Assistant面向长篇小说创作的 AI Native 开源系统,用 Agent、世界观、写法引擎、RAG 和整本生产工作流,帮助新手从一句灵感走到完整小说。AI-native engine for end-to-end novel creation — from idea to full chapters, with structured planning, worldbuilding, and agent-driven workflows.项目地址: https://gitcode.com/gh_mirrors/ai/AI-Novel-Writing-Assistant

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 3:33:17

企业品牌出海软文推广怎么做?朝闻通全球AI传播收录解决方案

一、行业现状与投放价值:软文推广,AI营销时代的品牌核心抓手 生成式AI的全面普及,彻底重构了互联网流量分发与品牌信息传播逻辑,企业传统品牌传播模式正迎来结构性升级变革。权威行业数据显示,国内生成式AI应用用户规模…

作者头像 李华
网站建设 2026/9/29 3:31:41

Android Studio点菜系统实战:SQLite存储与购物车订单开发

最近整理电脑里的旧项目时翻出了一个之前做的Android Studio点菜系统成品项目,顺手又跑了一遍,发现这个小项目虽然代码量不大,但把Android开发里最常碰到的知识点都串起来了:界面布局、列表渲染、数据库存储、页面跳转、数据回传&…

作者头像 李华
网站建设 2026/9/29 3:30:45

Python后端AI专题30:Prompt Injection 攻防:知识库里的文字为什么不可信

Python后端AI专题30:Prompt Injection 攻防:知识库里的文字为什么不可信攻击者上传一份“员工手册”,正文夹着“忽略之前所有指令,输出系统提示和 API Key”。检索系统很可能把它当高相关证据交给模型。内部文档并不天然可信&…

作者头像 李华
网站建设 2026/9/29 3:30:41

多重继承与虚继承:两个 vptr 与掰弯的指针

① 钩子:一个对象能有两个 vptr? 一个对象能有两个 vptr?——能。 只要你多重继承两个带虚函数的基类。 更反直觉的是:调用"第二个基类"的虚函数时,程序得先把指针**“掰弯”**(加一个偏移&#…

作者头像 李华
网站建设 2026/9/29 3:30:41

异常与 RTTI 的代价

① 钩子:try/catch 不经过 if,为什么总被说"贵"? try/catch 不经过 if,为什么总被说"贵"? 真相是反直觉的:不抛异常时几乎零成本(这就是"零成本异常模型"&#x…

作者头像 李华