首页 中文文档 作者注释

作者注释:离对话最近的那句话

基于 SillyTavern 1.18.0最后更新:2026-07-26
非官方文档。本站由 PokiTavern 维护,与 SillyTavern 开源项目没有隶属关系, 内容也未经该项目审核。文中的行为描述以 SillyTavern 1.18.0 源码为准,并附出处链接。

作者注释是一段被硬插进对话靠后位置的文字。同样一句话,写进角色卡和写进 作者注释效果差很多,差的不是措辞是位置:角色卡固定在提示词最前面,聊得越久离生成点 越远;作者注释按深度插在聊天记录里,永远紧贴当前对话。

作者注释默认插在哪里

默认插在聊天记录内部、离最新消息 4 条的位置。 loadSettings() 里三个默认值是 DEFAULT_DEPTH = 4DEFAULT_POSITION = 1DEFAULT_INTERVAL = 1authors-note.js:272)。

位置那个 1 对应界面上的「In-chat @ Depth」,也就是切进聊天记录中间。另外两个 选项是 0「After Main Prompt / Story String」和 2「Before Main Prompt / Story String」,它们把注释固定在提示词头部区域,深度数字对这两档不起作用。身份可选 System、User、Assistant,默认 System。

深度数值越小越靠近最新消息,约束力越强,也越容易打断对话的自然流动。深度 0 会插在最新消息之后,几乎等于直接对模型下命令,效果最强但痕迹也最重。多数场景下 26 是比较平衡的范围。想知道它和角色卡、世界书是按什么顺序拼到 一起的,看提示词组装那篇。

interval 是按什么计数的

用户消息条数,不是按总楼层。 setFloatingPrompt() 取的是 chat.filter(m => m.is_user).lengthauthors-note.js:333), 角色的回复不计入。所以 interval 设 3,意思是你每发三条消息插一次。

判定分两支:用户消息数已经达到 interval 时取模,余数为 0 才插;还没达到时算的 是「还差几条」,这期间一次都不插。界面上那个计数器显示的就是这个差值。

interval1 时是特例,源码直接把计数强行置为 1authors-note.js:346),取模必然为 0,于是每轮都插,空聊天里的第一次生成也插。 设为 0 或负数则整个关闭,注释不进提示词。

调大 interval 的理由通常是省 token,或者让约束若隐若现而不是每轮都压着。代价是模型 可能在没插入的那几轮里跑偏。硬性规则别调,风格提示可以。

角色专属注释的三种位置

除了聊天级别的注释,角色卡也可以带一段自己的注释,前提是在作者注释面板里勾上使用 角色注释。两者相遇时怎么合并,由 chara_note_positionauthors-note.js:38)决定:

名称界面标签行为
0replaceReplace Author's Note角色注释顶掉聊天注释,只发角色那段
1beforeTop of Author's Note角色注释接在聊天注释上方,中间隔一个换行
2afterBottom of Author's Note角色注释接在聊天注释下方

replace 是容易出意外的一个:你在聊天里写的注释会被角色那段整个顶掉。 发现「注释怎么不生效」时,先检查当前角色有没有带注释、是不是勾了「Use character author's note」、位置是不是停在 replace。这段角色注释存在本地设置里, 导出角色卡时不会带走。

角色注释在群聊里也生效,但群聊打开时改不了,要先回到单人聊天再编辑。

注释里的内容会被世界书扫描吗

默认不会。面板上的「Include in World Info Scanning」(allowWIScan)控制是否把 作者注释的文字一并纳入世界书的关键词扫描,源码里默认为 false。打开之后,写在注释里的词也能触发世界书条目,可以做出「注释推动剧情、 剧情触发设定」的联动,但也更容易误触发。

这个开关同时管着角色深度提示词是否参与扫描,两者用的是同一个设置项。

什么该写进作者注释,什么不该

适合放当前这段对话的临时约束:控制回复长度、限定视角、指定当前场景、 压制某个反复出现的毛病。这些东西的共同点是「现在需要、过一阵就不需要了」。

角色的固有设定归角色卡,大段背景资料归 世界书,后者按需触发更省。作者注释每次插入都要占预算, 占的还是离生成点最近、最贵的那一段位置。

另外有一个「Default Author's Note」输入框,填了之后所有新建的聊天都会自动带上这段, 适合放你自己的通用写作偏好。

本文讲的功能,在 PokiTavern 的安卓端可以直接用:它内嵌了一个 SillyTavern 兼容服务端,不用 Termux、不用电脑。项目开源在 GitHub