Webnovel Writer 题材模板体系:37 个内置网文题材、别名映射与复合题材融合实战指南
【免费下载链接】webnovel-writer基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200 万字量级 连载创作。项目地址: https://gitcode.com/GitHub_Trending/we/webnovel-writer
导读
本文围绕 Webnovel Writer(基于 Claude Code 的长篇网文辅助创作系统)内置的题材模板体系展开,系统讲解templates/genres/下 37 个网文题材模板的构成、题材别名自动识别、复合题材组合规则(最多 2 个、主辅比例 7:3),以及初始化项目时题材模板如何注入到设定集/世界观.md的"参考题材模板"章节。读完本文,你将掌握:如何为/webnovel-init正确指定题材(含别名与复合写法)、题材模板与精调题材配置(genres/)的分工关系,以及题材在底层如何驱动写作指导、追读力配置与审查权重,从而为自己的长篇连载选对题材、写对味道。
一、概述:题材模板是什么、放在哪里
Webnovel Writer 的题材体系由两个层面构成:
- 初始化模板层(
templates/genres/):37 个中文网文题材模板,是webnovel-init阶段为项目注入题材底色、流派细分、爽点模式与创意约束的"种子内容"。 - 运行时精调层(
genres/目录 +references/genre-profiles.md):6 个精调题材配置目录,为特定题材提供更细粒度的写作指导、追读力(Hook / Cool-point / 微兑现 / 节奏)参数与审查权重。
两者通过同一套"题材归一化"链路打通:用户在初始化时输入的题材文本,先经过 题材分类解析器 与 题材别名归一化模块 解析为规范标签,再分别路由到初始化模板与运行时配置。仓库还内置一份可扩展的题材索引表 references/taxonomy/genre-index.csv,所有别名、标签、模板文件的对应关系都以 CSV 数据驱动方式维护。
二、37 个内置题材模板与分类全景
templates/genres/下共有 37 个题材模板文件,按大类划分如下(与 README 内置题材一览 一致):
| 大类 | 题材模板 |
|---|---|
| 玄幻修仙类 | 修仙、系统流、高武、西幻、无限流、末世、科幻 |
| 都市现代类 | 都市异能、都市日常、都市脑洞、现实题材、电竞、直播文 |
| 言情类 | 古言、宫斗宅斗、青春甜宠、豪门总裁、职场婚恋、民国言情、幻想言情、现言脑洞、女频悬疑、种田、年代 |
| 其他题材 | 规则怪谈、悬疑脑洞、悬疑灵异、克苏鲁、狗血言情、替身文、知乎短篇、历史古代、历史脑洞、抗战谍战、游戏体育、多子多福、黑暗题材 等 |
注:
templates/genres/目录实际包含 37 个.md模板文件,仓库根目录的 webnovel-writer/templates/genres/ 即为完整清单,可直接核对。
每个模板都是独立的 Markdown 文档,结构高度工程化。以 规则怪谈.md 为例,包含以下标准区块:
- 核心卖点:一句话定位题材的读者承诺,例如规则怪谈为"逻辑推理 + 公平线索 + 智力博弈,真相必须可推导";
- 创意约束推荐:推荐关联的约束包(如 Pack M14 / M06)与通用叠加包(如 Pack U02),供
webnovel-init的创意约束环节引用; - 核心流派细分:拆解该题材下的主流写法,如规则怪谈分为本格推理流、规则怪谈流、悬疑惊悚流、社会派推理流,并分别标注核心爽点与代表模式;
- 题材规则/诫律:给出可执行的创作纪律(如规则怪谈的"本格推理十诫":罪犯早期登场、超自然力量禁止用于真相解释等),用于约束 Agent 写作与审查。
这套模板结构意味着:题材不只是标签,而是一套完整的"卖点 + 约束 + 流派 + 规则"集合,直接决定初始化后写进世界观设定的初始内容质量。
三、题材别名:输入自由,系统自动归一化
用户在/webnovel-init中输入题材时,不需要死记官方名称。系统会自动识别常见别名,官方文档明确列出的映射如下:
| 输入 | 自动映射为 |
|---|---|
| 玄幻、修真、玄幻修仙 | 修仙 |
| 都市修真 | 都市异能 |
| 游戏电竞、电竞文 | 电竞 |
| 直播、主播、直播带货 | 直播文 |
| 克系、克系悬疑 | 克苏鲁 |
底层实现上,这套别名的事实来源是 genre-index.csv 的aliases列,而非硬编码。例如该 CSV 中实际登记了比文档示例更广的别名集合:
- 修仙:
玄幻修仙、修仙/玄幻(玄幻/仙侠 canonical 均指向修仙.md模板); - 都市异能:
都市修真;现代异能;超凡都市; - 电竞:
电竞文;游戏电竞;电子竞技; - 直播文:
直播;直播带货;主播; - 克苏鲁:
克系;克系悬疑;诡秘;不可名状; - 系统流:
系统;系统文;替身文:替身;白月光;知乎短篇:知乎体;知乎盐选;第一人称短篇;小程序短篇。
解析逻辑位于 genre_taxonomy.py 的resolve_genre_input():先对输入做 NFKC 归一化并去除空白(_normalize_lookup_key),按"完整精确匹配 → 分隔符切分匹配 → 最长键包含匹配"三级策略在 CSV 构建的 lookup 表(_build_lookup)中查找,命中后聚合该条目对应的template_file、route_tags、trope_tags、format_tags。同时 CSV 会校验别名的唯一性——重复 label/alias 会直接抛出duplicate label/alias错误,从数据源上杜绝歧义。
此外,CSV 中还登记了文档未展开的复合写法别名,例如"玄幻退婚流"这类带桥段的写法也能通过包含匹配被解析(见 test_story_system_cli.py 的 real_genre_seed 用例,该用例验证玄幻退婚流能路由到真实题材种子而非空 CSV 回退)。
四、复合题材规则:最多 2 个,主辅 7:3
官方文档定义的复合题材规则如下:
- 用
+连接两个题材(如都市脑洞+规则怪谈),同时支持/、、、与作为分隔符; - 最多组合 2 个题材(超过 2 个会在运行时被边界校验拦截);
- 建议主辅比例 7:3:主线遵循主题材逻辑,副题材提供钩子/规则/爽点。
文档给出的合法示例:
都市脑洞+规则怪谈修仙+系统流古言+宫斗宅斗
底层实现由两个模块协同完成:
- 输入切分:
genre_taxonomy.py中的_INPUT_SPLIT_RE = re.compile(r"[++/、,,|]+|与")负责把复合输入拆成 token;data_modules/genre_profile_builder.py的parse_genre_tokens()则支持自定义分隔符集合,并在复合场景下对每个 token 独立做别名归一化、去重。 - 边界校验:复合题材的上限(最多 2 个)有测试用例专门锁定,见 test_context_manager.py 的 composite_genre_boundary_three_plus 用例,三个及以上的题材输入会被拦截。
复合题材在运行时会被识别为复合模式(composite: True),第一个题材作为主引擎(primary),其余作为副题材(secondary),并自动生成复合执行提示。build_composite_genre_hints()(genre_profile_builder.py)会产出类似这样的指导语:
- 以"主题材"作为主引擎推进主线,每章至少保留 1 处"副题材"特征表达;
- 主辅题材冲突时,优先保证主题材读者承诺,辅题材用于制造新鲜感。
同时,初始化阶段还配套一份 复合题材-融合逻辑模板,引导你依次填写:题材组成(占比 7:3)、融合目标(共同核心冲突/共同爽点目标/读者承诺)、融合机制(规则兼容点、冲突点与解决、副题材介入条件、不可混用规则)、主线/副线分工(节奏安排,如每 N 章一次副题材钩子)、风险清单(风格割裂点、设定冲突点、读者预期偏差点、规避办法),以及与创意约束的对齐(反套路规则、硬约束、主角缺陷放大)。
五、题材模板的产物:初始化时如何注入世界观
初始化项目时,指定的题材模板内容会自动注入到设定集/世界观.md的**"参考题材模板"章节**中。该注入逻辑位于 init_project.py:
- 先通过
resolve_template_stems()把题材解析结果换算为模板文件(如修仙.md); - 在生成的世界观内容末尾追加
## 参考题材模板(可删/可改)章节,并将模板正文整体写入(模板未命中时写入"(未找到对应题材模板,可自行补充)"占位); - 章节标题自带"可删/可改"提示,说明模板注入是起点而非终点,作者可在此基础上自由调整。
初始化完成后,项目内同时会持久化题材相关元信息:测试 test_init_persists_canonical_genre_and_template_tags 验证了初始化会保存 canonical genre 与模板标签;从init_project.py的初始化元信息结构看,还包含题材解析出的templates列表([Path(name).stem for name in genre_resolution.template_files]),这些会写入项目状态,供后续webnovel-plan、webnovel-write、webnovel-review等命令读取。
六、运行时精调:6 个题材配置与写作指导
除初始化模板外,系统内还有 6 个精调题材配置目录(genres/),用于为特定题材提供更细粒度的写作指导:
xuanhuan(玄幻)dog-blood-romance(狗血言情)period-drama(年代)realistic(现实题材)rules-mystery(规则怪谈)zhihu-short(知乎短篇)
这些配置目录与题材归一化模块(genre_aliases.py 的 GENRE_PROFILE_KEY_ALIASES)中的 profile key 一一对应,例如规则怪谈 → rules-mystery、知乎短篇 → zhihu-short、狗血言情 → romance、年代 → xuanxia(历史映射)。
6.1 题材加权指导(Writing Guidance)
运行时写作指导的题材加权文本定义在 writing_guidance_builder.py 的 GENRE_GUIDANCE_TEXT,按 profile key 注入到每章的写作指导中,例如:
| profile key | 加权指导 |
|---|---|
xianxia | 强化升级/对抗结果的可见反馈,术语解释后置 |
shuangwen | 维持高爽点密度,主爽点外叠加一个副轴反差 |
urban-power | 优先写社会反馈链(他人反应→资源变化→地位变化) |
romance | 每章推进关系位移,避免情绪原地打转 |
mystery | 线索必须可回收,优先以规则冲突制造悬念 |
rules-mystery | 规则先于解释,代价先于胜利 |
zhihu-short | 压缩铺垫,优先反转与高强度结尾钩 |
substitute | 强化误解-拉扯-决断链路,避免重复虐点 |
esports | 每场对抗至少写清一个战术决策点与其后果 |
同时,GENRE_METHOD_ANCHORS(同文件 writing_guidance_builder.py)为题材定义了"压力来源/释放目标"锚点,例如xianxia的压力来源是"资源争夺/境界压制"、释放目标是"主角主动破局并拿到可见收益",未命中题材时使用通用锚点(生存目标/资源竞争)。
6.2 追读力配置档案(Genre Profiles)
references/genre-profiles.md 以 YAML 形式为高频题材定义了完整的追读力配置参数(该文件当前标记为 Fallback Only,高频题材的主判定/主调性/主禁忌已迁移到 Story Contracts / CSV route seed,仅合同缺失时回退读取),字段包括:
- hook_config:偏好钩子类型(危机钩/悬念钩/选择钩/情绪钩等)、默认钩子强度(strong/medium/weak)、章末钩子偏好、过渡章豁免上限;
- coolpoint_config:偏好爽点模式、每章爽点密度(high 2+/medium 1/low 0-1)、combo 间隔、阶段胜利间隔;
- micropayoff_config:偏好微兑现类型、每章下限、过渡章下限;
- pacing_config:节奏停滞阈值(连续 N 章无推进触发 HARD-003)、Quest 主线最大连续章数、感情线最大断档章数、过渡章最大连续数;
- override_config:允许的 override 理由类型、债务倍率、还款窗口默认值。
以规则怪谈(rules-mystery,genre-profiles.md)为例的完整配置:
id: rules-mystery name: 规则怪谈 description: 诡异规则,生存推理,反杀怪谈 tags: [rules-mystery, horror] hook_config: preferred_types: [危机钩, 悬念钩, 选择钩] strength_baseline: strong chapter_end_required: true transition_allowance: 1 coolpoint_config: preferred_patterns: [越级反杀, 反派翻车] density_per_chapter: medium combo_interval: 5 milestone_interval: 8 micropayoff_config: preferred_types: [信息兑现, 线索兑现, 能力兑现] min_per_chapter: 1 transition_min: 1 pacing_config: stagnation_threshold: 2 strand_quest_max: 4 strand_fire_gap_max: 15 transition_max_consecutive: 1 override_config: allowed_rationale_types: [LOGIC_INTEGRITY, WORLD_RULE_CONSTRAINT] debt_multiplier: 1.2 payback_window_default: 2对比可看出题材间差异被参数化:规则怪谈要求钩子强度 strong、过渡章容忍度仅 1 章(规则约束是合理 override 理由);而都市异能(urban-power)偏好"扮猪吃虎/装逼打脸/身份掉马"类爽点、密度 high、采用"3 章一峰"节奏(第 1 章困境、第 2 章能力初展、第 3 章小胜+新阻力);知乎短篇(zhihu-short)则要求强反转、高强度结尾钩、过渡章容忍度为 0。
6.3 复合题材的运行时识别
上下文构建阶段会把复合题材解析结果带入写作任务书:测试 test_context_manager_dynamic_weights_and_composite_genre 验证了genre: "xuanhuan+realistic"会被识别为复合模式(composite: True),主题材为xuanhuan,同时生成composite_hints复合提示列表;同一测试还验证了上下文权重随章节推进从early阶段切换到late阶段(context_weight_stage),说明题材解析结果会参与每章动态权重计算。从genre_taxonomy.py的解析结构看,一个题材还会携带route_tags(题材路径标签)、trope_tags(桥段标签)、format_tags(格式标签),供 Story System 的 route seed 与写作检查清单使用。
七、题材选择实操建议
综合官方文档与源码,在webnovel-init中选择题材时的实操要点:
- 单题材:直接输入题材名或任一别名(如
直播带货、克系),系统自动归一化; - 复合题材:用
+、/、、或与连接两个题材,主题材写在前面;遵循 7:3 主辅比例,副题材只负责提供钩子/规则/爽点,不改变主线逻辑; - 复合前先自查:参考 复合题材-融合逻辑模板 预填"融合目标/融合机制/风险清单",避免设定冲突与风格割裂;
- 善用模板产物:初始化后到
设定集/世界观.md的"参考题材模板"章节核对注入内容,模板是起点,可按需删改; - 关注精调配置:若题材命中 6 个精调目录(玄幻、狗血言情、年代、现实题材、规则怪谈、知乎短篇),写作与审查环节会自动套用对应追读力参数,无需手动配置。
结语
Webnovel Writer 的题材体系是一条完整的数据驱动链路:用户输入 → 别名归一化(genre_taxonomy.py+genre-index.csv)→ 模板注入(init_project.py写入世界观)→ 运行时加权(writing_guidance_builder.py)→ 追读力参数(genre-profiles.md)→ 审查与动态权重。37 个初始化模板解决"开局怎么写",6 个精调配置解决"连载中怎么持续",复合题材规则解决"混合题材怎么不出戏"。理解这条链路,你就能在长篇创作一开始选对题材基调,并在几十万字的连载中持续保持读者承诺与题材味道。
【免费下载链接】webnovel-writer基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200 万字量级 连载创作。项目地址: https://gitcode.com/GitHub_Trending/we/webnovel-writer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考