写好条目的技巧
条目是你创建世界时最重要的元素。平台上每个世界都在用它们。排名第一的世界(大逃杀,已有近 2000 次游玩)有 27 个条目,零条规则——整个游戏完全靠精心编写的条目运转。
本指南教你写出让世界活起来的条目。关于条目和分区的基础知识,请参阅入门指南:条目。
好条目和优秀条目的区别
看看平台上最多人玩的世界,你会发现一个规律。打造热门世界的创作者并不比其他人用了更多功能,而是写出了更好的条目。
一个平庸的角色条目:「Alicia 是个精灵法师。她喜欢讽刺,爱好植物。」
一个优秀的角色条目:「Alicia 说话时语气温柔,但被激怒时会用植物比喻当武器。她暗中对人类着迷,但绝不会承认。被逼到情感角落时,她会用植物学冷知识打岔。她最大的秘密是极度害怕蜈蚣。」
区别在哪里?前者告诉 AI 这个角色是什么。后者教 AI 这个角色会怎么做。行为才是让角色鲜活的关键。
写出有血有肉的角色
平台上最好的世界在角色条目上投入最多。以下是经过验证的方法。
用行为描述性格,而非标签
不要只列出性格特点。描述这些特点在实际中如何表现。
不要这样写:
Rin 害羞、聪明、善良。
要这样写:
Rin 初次见面时回避眼神接触,对着地板说话。但当话题涉及她研究过的领域时,她的姿态完全改变——身体前倾,直视对方,语速飞快地说出完整的句子。她的善良近乎强迫性:看到有人在挣扎就忍不住伸出援手,即使要付出代价。
AI 无法持续演绎「害羞」。但它可以持续演绎「回避眼神接触,对着地板说话」。
关系阶段
最沉浸的世界会根据玩家与角色的熟悉程度改变角色的行为方式。樱花季在这方面做得很出色:三位女主角每人都有四个好感度级别(0-25、26-50、51-75、76-100)的行为描述。
你可以通过条件条目实现这一点——只在变量达到阈值时才激活的条目:
- 初期(好感度 0-25):正式、警惕、浅层对话
- 信任增长(好感度 26-50):开始分享观点,偶尔展露脆弱
- 亲密(好感度 51-75):内部笑话、自在的沉默、主动求助
- 深厚羁绊(好感度 76+):完全敞开心扉、独特的说话方式、保护欲
每个阶段是一个带条件的独立条目。随着关系变量变化,AI 收到的指导会自动切换。
如何设置
为每个关系阶段创建一个条目。每个条目放在 Chat History 中并设置条件:
条目:「Rin — 初期」
- 条件:
rin_affinity小于 26 - 关键词:
Rin、her、she(也可以留空,只用条件) - 内容:Rin 在这个阶段的警惕行为和说话方式
条目:「Rin — 信任增长」
- 条件:
rin_affinity大于等于 26 且小于 51 - 关键词:同上
- 内容:Rin 在这个阶段如何敞开心扉
以此类推。引擎每回合检查条件,只发送匹配的阶段。
完整 schema 参考 → World Spec: Entries
角色卡公式
研究了数十个成功世界后,以下是有效的模式:
- 身份(1-2 句):名字、角色、核心特质
- 外貌(2-3 句):玩家看到什么。具体细节,不要泛泛描述
- 行为模式(主体部分):怎么说话、紧张/愤怒/开心时的反应、习惯、矛盾之处
- 与玩家的关系:初始如何看待玩家、什么会改变看法
- 秘密:AI 知道但角色不会轻易透露的事
行为模式部分是大多数创作者投入不足的地方。而这恰恰是魔法发生的地方。
知识库:按需提供上下文
知识库是关键词触发的条目系统。这就是为什么你可以构建一个拥有 50000 字设定的世界,AI 依然快速而精准。
设计好的关键词列表
引擎会扫描最近几条消息中的关键词。任何一个关键词匹配就会触发条目(OR 逻辑)。想想玩家可能会怎么提到某个东西:
关于酒馆的条目:
tavern、inn、bar、drink、bartender、pub
关于一个叫樱井公香的角色:
Kimika、Sakurai、class rep、class representative
全词匹配:当短关键词可能导致误触发时启用。不启用的话,关键词「art」会匹配到「start」、「heart」和「apart」。
二级关键词实现精准匹配
有时单个关键词不足以判断条目是否相关。二级关键词让你添加第二层过滤:
| 模式 | 含义 | 使用场景 |
|---|---|---|
| AND_ANY | 主关键词匹配且至少一个二级关键词匹配 | 「forest」+ 任一 ["elf", "danger", "ruins"] |
| AND_ALL | 主关键词匹配且所有二级关键词都匹配 | 「forest」+ 同时出现 "night" 和 "danger" |
| NOT_ANY | 主关键词匹配且没有任何二级关键词匹配 | 「forest」但不含 "safe" 或 "peaceful" |
| NOT_ALL | 主关键词匹配且并非所有二级关键词都匹配 | 「forest」但不同时出现 "safe" 和 "day" |
最常用的:AND_ANY,用于主题交叉。比如你希望「暗黑森林传说」条目在玩家同时提到森林和某些不祥之物时才触发,而不是随便提到树就触发。
深度注入:条目在聊天中的位置
关键词触发的条目不会像 System Presets 那样放在 prompt 顶部。它们被注入到聊天记录的特定位置。depth 设置控制具体位置。
depth: 4 意味着条目出现在聊天末尾往前数第 4 条消息的位置。这让它更像是最近对话的自然组成部分,而不是来自上方的系统指令。
depth 数值越小(越靠近末尾),AI 关注度越高。数值越大(越靠前),越像背景上下文。
技术细节:depth 如何工作
假设聊天记录如下:
[1] User: Hello
[2] AI: Hi there
[3] User: Where's the forest?
[4] AI: Head north
[5] User: Alright, let's godepth 为 2 的条目会插入到消息 [4] 之前:
[1] User: Hello
[2] AI: Hi there
[3] User: Where's the forest?
--- [条目内容插入此处] ---
[4] AI: Head north
[5] User: Alright, let's godepth 0 将条目放在最末尾(类似 Post Instructions)。
完整参考 → World Spec: Entries
状态驱动条目
最强大的条目不等待关键词。它们响应的是世界本身的状态。
条件让你根据变量值来控制条目的激活。这比关键词触发更可靠,因为你不是寄希望于玩家说出正确的词——系统读取的是实际的游戏状态。
实例:同伴态度
流浪日记使用条件来改变同伴对玩家的行为。每个同伴都有基于好感度阈值的条目:
- 当
xiaoyue_affinity < 30:条目描述小月谨慎而疏远 - 当
xiaoyue_affinity >= 30 AND < 60:条目描述逐渐温暖和信任 - 当
xiaoyue_affinity >= 60:条目描述深厚的忠诚和脆弱
玩家看不到这些机制。他们只会感受到一个随着关系加深而逐渐敞开心扉的同伴。
条件 + 关键词组合
两者可以结合使用。当条目同时有关键词和条件时,两者都必须通过才能激活。这创造了精确的上下文触发器:
- 关键词:
Kimika、class rep - 条件:
day_count > 3 - 效果:NPC 的背景故事只在第 3 天之后玩家提到她时才显示
这能防止信息在故事中过早出现。
七种比较运算符
| 运算符 | 含义 | 适用场景 |
|---|---|---|
eq | 等于 | 精确状态检查(「location 等于 cave」) |
neq | 不等于 | 排除(「不在新手区」) |
gt | 大于 | 阈值(「好感度超过 50」) |
gte | 大于等于 | 包含边界的阈值 |
lt | 小于 | 低值触发(「生命值低于 20」) |
lte | 小于等于 | 包含边界的低值 |
contains | 字符串包含 | 部分文本匹配 |
多个条件通过 All(所有条件都必须通过)或 Any(任一通过即可)组合。
进阶技巧
递归:链式上下文
当条目 A 触发后,它的内容中提到了条目 B 的关键词,B 是否也应该触发?这就是递归。默认关闭(设置中递归深度 = 0),但对于设定高度互联的世界可以开启。
谨慎使用。 深层递归链会消耗大量上下文。大多数世界保持在 0 或 1。
两种安全控制:
- Prevent Recursion:此条目可以被触发,但其内容不会扫描其他条目。「我可以被唤醒,但不会叫醒别人。」
- Exclude Recursion:只有玩家实际输入的文字才能触发此条目。完全对递归扫描不可见。
API 角色覆盖
默认情况下,所有条目作为 system 消息发送。但你可以改变 AI 如何解读它们:
- Instruction(system):默认值。AI 将其视为需要遵守的规则。
- User:AI 认为这是玩家说的。某些模型对 user 消息赋予更高权重。
- Assistant:AI 认为这是自己说的。适合「预填」回复风格。
示例对话
标记为示例的条目会得到特殊处理。引擎将它们解析成 user/assistant 消息对,这样 AI 看到的是实际的对话样本,而不是一段文本。
格式:
<START>
{{user}}: Can you heal this wound?
{{char}}: *examines the wound, frowning* This isn't a normal knife wound.
There's a curse residue. I need moonflower pollen... but it's daytime.
<START>
{{user}}: So what do we do?
{{char}}: *shrugs* Either wait for nightfall, or you endure it.
I recommend the latter — pain is the best teacher.用 <START> 分隔不同的对话示例。{{user}} 和 {{char}} 是宏,会被替换为实际的玩家和角色名称。
几个好例子胜过很多。 2-3 个能捕捉角色声音的对话样本,比 10 个让 AI 机械模仿的样本更有效。
正则表达式关键词
关键词也支持正则表达式。以 /pattern/flags 格式编写(例如 /dark\s*forest/i),引擎会将其作为正则而非字面字符串处理。当简单关键词无法覆盖灵活的表述时非常有用。
扫描深度和 token 预算
引擎不会扫描全部聊天记录来查找关键词——那太浪费了。世界设置中的 lorebookScanDepth(默认为 2)控制检查最近多少条消息。你可以在编辑器的知识库部分的 Entry Settings 中修改。值越高匹配越多,但处理开销也越大。
还有 token 预算限制:lorebookBudgetPercent(默认 100%)和 lorebookBudgetCap(默认无限)限制触发条目消耗的总 token 量。超出预算时,匹配分数更高的条目优先。
文件夹组织
当世界有几十甚至上百个条目时,侧边栏列表会变得难以管理。编辑器支持文件夹——把条目拖入逻辑分组(所有 NPC 一个文件夹、所有地点设定一个文件夹)。文件夹纯粹是组织工具,对运行时行为、匹配或注入顺序没有影响。
位置排序
在每个分区内,条目按 position 编号排序(越小越靠前)。支持小数,所以你可以通过设置 2.5 把条目插入到位置 2 和 3 之间。
System Presets 中靠前的条目缓存效率更高,所以把最稳定的内容(角色描述、世界规则)放在较低的位置,可能变动的内容(动态指令)放在较高的位置。
常见错误
关键词条目没有关键词或条件。 如果你把条目放在 Chat History 中但忘了添加关键词或条件,它永远不会触发。始终发送的条目应放在 System Presets 中。
条件条目范围重叠。 如果「Rin — 初期」覆盖好感度 < 30,而「Rin — 信任增长」覆盖好感度 > 25,那么 26-29 之间两个都会激活。使用不重叠的范围:< 26 和 >= 26 AND < 51。
关键词太具体导致永远不匹配。 如果你关于「水晶圣殿」的条目只在 crystalline sanctum 时触发,玩家输入「crystal place」或「that temple」就永远看不到它。要站在玩家的角度思考他们实际会怎么称呼事物,而不只是用规范名称。
重要上下文的深度注入太深。 depth 为 8 的条目被埋在聊天记录深处,AI 几乎不会关注它。重要内容保持在 depth 2-4。更高的深度留给背景点缀。
延伸阅读
完整 schema 参考 → World Spec: Entries & Sections
