webnovel-writer 情感与心理描写知识库:CSV 检索机制与五条核心技法实战解析
webnovel-writer 情感与心理描写知识库CSV 检索机制与五条核心技法实战解析【免费下载链接】webnovel-writer基于 Claude Code 的长篇网文辅助创作系统解决 AI 写作中的「遗忘」和「幻觉」问题支持 200 万字量级 连载创作。项目地址: https://gitcode.com/GitHub_Trending/we/webnovel-writer导读本指南面向使用webnovel-writer基于 Claude Code 的长篇网文辅助创作系统写作长篇连载的创作者与开发者讲解该系统如何通过「stub 化 CSV 集中管理 BM25 按需检索」的方式为 AI 写作过程提供情感与心理描写的实时知识支撑。读完本文你将掌握reference_search.py检索命令的完整用法与底层机制并系统学会系统内置的五条核心情感描写技法WT-002/WT-006/WT-037/WT-050/WT-068可直接用于提升章节中人物情绪的现场感与真实度。一、从 stub 到 CSV情感心理知识是如何迁移的在webnovel-writer/skills/webnovel-write/references/writing/目录下emotion-psychology.md是一份迁移占位文件stub。它的完整内容只有一句话本文件内容已迁移到 CSV写作技法运行时通过reference_search.py --table 写作技法检索情感/心理相关行如 WT-002/WT-006/WT-037/WT-050/WT-068。此处不再维护正文历史见 git。这意味着该系统经历了一次参考资料架构重构把原先散落在各 Markdown 文件里的写作技法正文统一收敛到 写作技法.csv 这一结构化知识表中让 Markdown 只保留检索入口说明。同样的迁移也发生在同目录下的dialogue-writing.md对话写作、scene-description.md场景描写、combat-scenes.md战斗场景等文件上可参见 reference-loading-map.md 中「当前非直接调用项」一节的记录。这一迁移的价值在于单一真源Single Source of Truth技法正文只在 CSV 中维护一份不再出现Markdown 正文与 CSV 数据互相打架的问题结构化检索每条技法以固定字段编号、关键词、大模型指令、核心摘要、详细展开、毒点、正例、反例组织可被程序化检索与注入按需加载写作时不再全文读取大文件而是由检索脚本按当前场景关键词返回最相关的技法条目控制上下文长度。二、运行时检索机制reference_search.py 的完整调用链2.1 命令形态情感/心理描写触发检索时webnovel-write 技能在 Step 2起草正文阶段按需调用检索脚本见 reference-loading-map.md 的 CSV 检索表python -X utf8 ${SCRIPTS_DIR}/reference_search.py \ --skill write \ --table 写作技法 \ --query 情感描写 心理 \ --genre {题材}其中参数说明示例--skill必填按「适用技能」列过滤决定哪些行可见write写作技能--table可选指定单一 CSV 表名不带.csv后缀写作技法--query必填BM25 检索关键词可用空格分隔多词情感描写 心理--genre可选按「适用题材」列过滤全部题材恒匹配现言、古言、玄幻--max-results可选返回结果上限默认 53--csv-dir可选覆盖 CSV 目录路径默认自动定位到references/csv在不指定--table时脚本会在references/csv/下所有 CSV 表中做跨表检索story-system 内部表会被隐藏见_table_visible_for_search。返回结果为 JSON每条结果包含编号、表、分类、层级、适用题材、内容摘要、大模型指令。2.2 底层实现BM25-lite 评分reference_search.py的核心搜索流程位于search()函数参考实现分为四步过滤候选行按--skill匹配「适用技能」列支持|分隔的多值按--genre匹配「适用题材」列全部恒匹配且输入与单元格都会先解析为规范题材再比较分词与加权按分隔符切分关键词并对不同字段施加不同权重——意图与同义词权重 4、关键词权重 3、核心摘要权重 2、详细展开权重 1_DEFAULT_SEARCH_WEIGHTS。这解释了为什么查询词命中意图与同义词列时召回最强BM25 打分实现简化版 BM25 公式k11.5, b0.75并内置中文字符子串匹配兜底qt in dt or dt in qt即使查询词与文档词不完全相等也能召回——这是中文复合词检索的关键设计结果格式化按得分降序取前 N 条内容摘要优先取「核心摘要」列缺失时才拼接其他列。2.3 表注册与注入目标写作技法表在CSV_CONFIG中注册为配置定义配置项值含义search_cols关键词:3, 意图与同义词:4, 核心摘要:2检索打分字段及权重output_cols编号, 技法名称, 核心摘要, 大模型指令, 详细展开结果输出字段poison_col毒点反例字段供审查与防毒点rolebase基础检索表注入合同contract_injectCHAPTER_BRIEF.dynamic_context检索结果注入写作任务书的dynamic_context段prefixWT条目编号前缀也就是说情感心理技法检索结果会作为风格参考补充进入章节写作任务书的dynamic_context而不会覆盖章纲硬约束章节目标、CBN/CPNs/CEN、禁区等这与 webnovel-write 任务书排序第 5 条的要求一致。2.4 测试验证仓库测试 test_reference_search.py 中专门为情感检索场景编写了用例def test_emotion_query_hits_writing_techniques_table(self): 情感与心理查询应命中 写作技法.csv。 out run_search( --skill, write, --table, 写作技法, --query, 情感描写 心理, ) assert out[status] success ids [r[编号] for r in out[data][results]] assert WT-002 in ids该用例以子进程方式真实调用脚本并断言WT-002情绪递进式心理描写被召回验证了情感描写/心理这类自然语言查询可以稳定命中知识表。三、五条核心情感描写技法全解WT-002 / WT-006 / WT-037 / WT-050 / WT-068以下五条是情感心理主题在写作技法表中的核心条目每条的完整字段大模型指令、核心摘要、详细展开、毒点、正例、反例均取自 写作技法.csv。3.1 WT-002 情绪递进式心理描写适用技能/题材write全部题材关键词情感描写 | 心理描写 | 内心独白 | 情绪变化意图与同义词心理怎么写 | 情感戏怎么写 | 内心戏怎么写大模型指令先写触发源和身体反应再写意识层判断避免空转自述和单纯概念词堆叠。详细展开情感与心理描写要把触发、身体反应、意识判断串起来避免只写抽象情绪名词。可按触发事件 → 细微反应 → 意识解释 → 行动倾向推进让心理变化既可感知又能推动下一步剧情。示例对比正例 vs 反例正例门关上的瞬间他才后知后觉地发现掌心全是汗。那句原本准备好的解释堵在喉咙里怎么也说不出来。反例他现在非常难过也非常痛苦非常纠结心里充满了复杂的情绪。这条技法解决的是网文最常见的情绪名词堆叠问题——作者直接报出难过/痛苦/纠结这些结论读者却感受不到任何东西。正确的做法是把情绪翻译成可见、可感的身体与意识过程。3.2 WT-006 高情绪场景三段式适用技能/题材write全部题材关键词高情绪场景 | 激烈吵架 | 诀别场景 | 情绪爆发意图与同义词吵架场景怎么写 | 诀别戏怎么写 | 情绪戏怎么推进大模型指令按铺垫→爆发→余韵的三段式推进情绪场景不要一上来就高声量互骂。详细展开高情绪场景需要先积累矛盾和压迫再在临界点爆发最后留出余波和关系变化。铺垫段负责引出矛盾和立场爆发段集中打出核心质问与反击余韵段用沉默、动作或环境收束情绪。示例对比正例 vs 反例正例她本来只是把那封信放到桌上声音也很轻。直到他说出我从没答应过你她才像被彻底逼到墙角攥紧指节把压了整章的话一次性掀开。反例两个人一上来就大吼大叫吵完立刻切场关系像什么都没发生过。要点爆发必须有前置矛盾支撑爆发后必须有关系后果否则情绪场景就是无效的高声量噪音。这条与 WT-060高压情绪三段爆发可互相印证。3.3 WT-037 动作化代情法Show, Dont Tell适用技能/题材write|plan全部题材关键词show dont tell | 动作化情绪 | 不直说情绪 | 用动作写情绪意图与同义词不要直接说生气怎么写 | 用动作表现害怕 | 情绪怎么不直白讲大模型指令优先用动作、微表情和环境反馈替代抽象情绪词让读者自己感到人物在怕、在怒、在崩。详细展开动作化代情法的核心是把他很生气改成读者能看见、能听见、能感到的具体反应。发白的指节、吞不下去的口水、说到一半突然停住这些都比直接贴情绪标签更有现场感。示例对比正例 vs 反例正例她没说害怕只是第三次去摸门锁时指尖已经冷得没了血色。反例她很害怕非常非常害怕整个人都很害怕。毒点提醒动作堆太多反而失焦所有情绪都靠握拳咬牙会显得套路化环境反馈和人物反应脱节。3.4 WT-050 微动作连锁推进适用技能/题材write|plan全部题材关键词动作序列 | 微表情 | 连贯动作 | 细节推进意图与同义词动作细节怎么写连贯 | 微表情怎么排 | 动作序列怎么不跳大模型指令把一个情绪节点拆成可见的三到四个连续动作别直接从站着跳到崩溃。详细展开微动作连锁能把情绪和关系变成可见过程让场面不只剩心理结论。视线转移、手指停顿、呼吸变化、肩背绷紧和半句打断都是能连成节拍的动作链。示例对比正例 vs 反例正例她先去拿杯子手指碰到杯沿时却顿了一下最后只是把它往他那边推过去始终没抬眼。反例她很紧张于是咬唇、握拳、发抖、哭了所有反应同时出现没有层次。与 WT-037 的区别WT-037 强调用动作替代情绪词WT-050 强调动作之间要有顺序与层次——三四个动作连成一条可追踪的节拍链而不是一次性堆出所有反应。3.5 WT-068 触发反应选择链强情绪场适用技能/题材write|plan现言 | 古言 | 幻言关键词强情绪描写 | 感官动作心理 | 虐点表达 | 情感共鸣意图与同义词女频情绪戏怎么写 | 虐点怎么写痛 | 情感描写怎么不空大模型指令强情绪场用触发、身体反应、动作选择和心理判断串联不要只堆痛苦词。详细展开女频高情绪描写要让读者看见角色为什么痛也看见她痛完后做了什么选择。视觉、声音、触觉、停顿和小动作都可以承载情绪但每个细节都要和人物关系或旧伤有关。示例对比正例 vs 反例正例听见那句和她一样时她没有哭只是把已经签好的名字慢慢划掉纸都被笔尖刮破了。反例她非常痛苦非常绝望非常伤心心里有说不出的复杂感情。题材限制说明WT-068 的「适用题材」为现言/古言/幻言女频方向而前四条均为「全部」题材。检索时若不传--genre则不受题材过滤影响传了题材参数后脚本会按「适用题材」列严格过滤全部恒匹配。四、五条技法的横向对比与组合使用编号技法名称核心抓手适用题材适用场景WT-002情绪递进式心理描写触发→反应→判断→行动全部情感戏、受挫反应、心态转折、关系推进WT-006高情绪场景三段式铺垫→爆发→余韵全部激烈争执、诀别、失控告白、道歉失败WT-037动作化代情法用动作/微表情替代情绪词全部情绪爆点、人物失控、细腻心理外化、润色改稿WT-050微动作连锁推进三四个连续动作成节拍链全部对峙、告白、审讯、谎言暴露WT-068触发反应选择链痛因→反应→选择现言/古言/幻言虐点、决裂、重逢、告白失败、道歉无力组合建议实战经验供参考起草重场戏时以 WT-006 规划整场节奏铺垫→爆发→余韵再以 WT-050 的微动作链填充爆发段的具体动作润色改稿时用 WT-037 扫描全章把他很愤怒/她很难过这类抽象结论批量替换为动作与身体反应女频虐点优先参考 WT-068让每个感官细节都挂靠人物旧伤与关系心态转折类段落以 WT-002 的触发→反应→判断→行动四步作为骨架防止内心戏空转。五、情感知识在写作任务书中的落地位置在 webnovel-write 的完整写章流程中见 SKILL.md情感心理检索发生在Step 2 起草正文阶段触发条件为情感描写类需求。检索结果经由CHAPTER_BRIEF.dynamic_context注入写作任务书作为场景写法补充仅作风格参考不能覆盖章纲约束——任务书排序为本章硬性约束chapter_directive→ CBN/CPNs/CEN 与must_cover_nodes→ 本章禁区forbidden_zones→ 风格指引 →dynamic_context补充参考。换言之情感技法知识服务于表达层面不改变剧情走向与设定约束。起草时只根据任务书起草情感描写参考已内化在任务书供 AI 按需取用保证既不丢技法也不越界改事实。六、小结与延伸阅读本文以emotion-psychology.md的迁移说明为线索还原了 webnovel-writer 情感与心理描写知识的完整技术链路知识存放从 Markdown stub 迁移至结构化 CSV 写作技法.csv单一真源维护检索能力由 reference_search.py 提供带 skill/genre 过滤、字段加权与中文子串兜底的 BM25-lite 检索测试用例见 test_reference_search.py实战技法WT-002 / WT-006 / WT-037 / WT-050 / WT-068 五条情感描写核心技法及其正反例、毒点清单可直接指导写作与润色流程落位检索结果注入写作任务书dynamic_context在遵守章纲约束的前提下提升情感表达质量。若需继续深入可参阅webnovel-write 技能流程查看完整写章六步流程与 CSV 检索触发条件reference-loading-map.md查看全部技能的 reference 消费关系与检索调用表reference-gap-register.md了解参考资料覆盖缺口的管理方式写作技法.csv浏览全部 104 条写作技法WT-001 至 WT-104涵盖对话、场景、节奏、悬疑、仙侠、快穿、种田、衍生等多个维度。【免费下载链接】webnovel-writer基于 Claude Code 的长篇网文辅助创作系统解决 AI 写作中的「遗忘」和「幻觉」问题支持 200 万字量级 连载创作。项目地址: https://gitcode.com/GitHub_Trending/we/webnovel-writer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考