第 8 章

递归 V1 怎么理解

把递归想简单一点——它不是自动乱扩展,而是「一条设定继续带出另一条相关设定」。

本章重点

本章重点:把递归想简单一点。它不是自动乱扩展,而是「一条设定继续带出另一条相关设定」。

先用一句大白话理解递归

递归的意思其实很简单:一条世界书命中以后,还能顺手把别的相关世界书带出来。

也就是说,不再只是「用户提到 A → 命中 A → 结束」,它真正的意思是「用户提到 A → 命中 A → A 又带出 B → B 还可能再带出 C」。

为什么要做递归

因为现实里的设定往往不是孤立的。比如:你提到「听雨咖啡」,这很自然会联想到「雪音」;提到「雪音」又可能带出「伦敦念想」。

如果没有递归,你可能要把一堆东西都手工写死。有了递归以后,设定之间就能形成链。

递归 V1 的核心逻辑

你现在这版递归,最适合新手理解的方式是:

  • 第 0 层:先正常用「用户输入」匹配世界书;
  • 第 1 层开始:再拿已经命中的词条,继续去带出下一批词条。

换句话说:

用户输入 → 命中第一批 → 第一批再带出第二批 → 第二批再带出第三批 ……

递归 V1 当前先用什么做「递归线索」

在目前版本内能够触发递归的只有:titletrigger(主关键词)、secondary_trigger(副关键词)来做递归。

换句话说:先用词条标题,再用主关键词,再用副关键词。

信息

为什么先不急着把正文也拿来递归?因为正文内容一旦也拿去做递归,会变得更强,但也更容易扩散。新手第一阶段最重要的是:先让递归稳定、可预测,而不是一上来就让它「特别会带」。

一个最适合新手理解的递归例子

我们继续用统一的主线例子。

用户输入:我推门走进听雨咖啡。

第 0 层命中 → 听雨咖啡(标题 / 关键词 / 副关键词匹配)
第 1 层递归 → 因为「听雨咖啡」关联到「雪音」,继续命中雪音
第 2 层递归 → 而「雪音」又可能关联到「伦敦念想」,再命中伦敦念想

递归最直观的感觉,大概就是这样:一条带一条,再往下带。

递归不是会一直无限往下跑

这个地方挺重要。递归一定要有停止条件,不然就会无限套娃。常见停止方式:

  • 到了最大递归层级;
  • 这一层没有新命中;
  • 某条词条设置了「命中后阻止继续递归」。

所以递归不是「一开就失控」,它更像是:按规则一层层往外扩,扩到该停的时候就停。

什么叫「允许递归参与」

这一项很好理解:

  • 如果一条词条开启了「允许递归参与」,那它就可以被递归链带出来;
  • 如果一条词条没开启,那它更像只允许「用户直接提到时命中」,而不允许被别的词条继续带出。

什么时候适合关掉:比如某些词条你只想让它「用户直提时出现」,不想让它在递归里到处冒出来,这时就可以关掉。

什么叫「命中后阻止继续递归」

这个更像「递归终点开关」。意思是:这条词条可以被命中,但命中到这里就够了,别再继续往后扩

什么时候适合开:比如某条词条本身已经是「最终解释」「终点说明」,你不想再往后带更多关联,那它就很适合做递归终点。

为什么递归不是越深越好

注意

这是新手非常容易误判的地方。很多人会以为「层级越深,带出的东西越多,世界书就越强」。其实不是。

深了以后会发生什么?

  • 命中会变多;
  • 信息会变杂;
  • 更容易把不该进来的设定也带出来;
  • 调试更难看懂。

所以对新手来说:递归稳定,比递归很深更重要

新手第一阶段怎么用递归最稳

更稳一点的话,可以这样来:

  1. 第一步:先不开递归,先把普通世界书跑顺;
  2. 第二步:只对少数明显有关联的词条开递归(比如听雨咖啡 → 雪音 → 伦敦念想);
  3. 第三步:最大层级先设低一点,比如 1 或 2;
  4. 第四步:先只观察「它能不能稳定从 A 带出 B,再从 B 带出 C」,不要一开始就追求复杂网络。

重点

递归不是自动乱扩展,它真正的意思是:一条设定,继续带出相关设定。

下一步

到这里,你已经懂了什么是世界书、什么是提示层级、什么是注入位置、什么是深度、什么是递归。下一章正式进入操作环节——世界书设置页怎么用