附.MVU 会让 AI 变蠢吗?

附.MVU 会让 AI 变蠢吗?#

回顾教程, MVU 只做几件事:

  • 在新开聊天时, 读取关闭状态的世界书条目 [initvar], 将里面设置的变量初始化到第 0 层消息楼层变量中 (不涉及 AI)

  • 尾附 <StatusPlaceHolderImpl/>, 便于利用酒馆正则来不消耗 token 地显示界面 (不涉及 AI)

  • 解析回复中的变量更新命令来更新消息楼层变量 (不涉及 AI)

提示

<%_ _%><%= _%> 是提示词模板语法, 不是 MVU! 问问题时请注意, 方便回答者知道你的问题出在哪.

也就是说, MVU 只负责管理变量而不与 AI 直接交互. 它唯一与 AI 相关的部分是你所写下的变量提示词——变量列表、变量更新规则、变量输出格式.

由于 MVU 通过尾附 <StatusPlaceHolderImpl/> 方便了显示界面, 而很多卡只是用这个来显示一个状态栏, 与 MVU 变量相对比的往往是直接让 AI 输出状态栏文本, 因此让我们来仅从 token 占用对比一下两种方法:

变量列表

假设 initvar 里设置了好感度变量, 而我们简单地用 {{format_message_variable::stat_data}} 作为变量列表将所有变量发给 ai, 则变量列表对应于不使用 MVU 变量框架时 AI 所输出的整个状态栏:

  • 变量列表只会发送最新版本, 且可以放在更次要的位置而不是必须随消息楼层发送;

  • 默认情况下, 每楼 AI 回复的状态栏都会发送; 你可以用正则不发送之前的状态栏, 但如果完全不发送之前的状态栏且状态栏提示词没调整好, 则可能面临掉格式问题.

变量更新规则

例如根据角色对<user>当前行为的态度增减好感度. 这对应于状态栏提示词中对好感度的更新要求, 无论如何都得写. 当然对于好感度这种要求, 如果只是很常见地使用, 无论 MVU 变量框架还是状态栏都没必要写太多要求.

变量输出格式

它对应于状态栏提示词中对好感度部分的输出要求, 无论如何都得写, 而显然 MVU 变量框架所要输出的格式比起状态栏更简单. 至于 <Analysis> 即思维链部分, 其实部分用状态栏的角色卡也会使用思维链来稳定格式和更新好感度, 也只是可选项.

除非有新的思路规避上面三种提示词:

  • 变量列表: 变量当前的值是多少? 它有什么含义?

  • 变量更新规则: 变量在什么情况下应该被更新、更新成什么值?

  • 变量输出格式: AI 应该输出什么来更新变量?

即, 省去 AI 了解有什么变量、该怎么更新 -> AI 输出变量更新命令 中任何一个部分, 否则不可能做出更好的方法.

当然, 我们可以在负责剧情的 AI 输出完毕后, 再另外调用 AI 来进行这一过程, 从而避免剧情 AI 受到影响.