首页 中文文档 Quick Reply

Quick Reply:把一串操作压成一个按钮

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

Quick Reply 是把一段斜杠命令存起来、挂成按钮或让它自动触发的功能。 它不产生新能力,只是把你反复手打的那几步固定下来。做成按钮只是一半用法,另一半是 绑定自动执行的时机,让它在该跑的时候自己跑。

它和斜杠命令是什么关系

Quick Reply 存的就是斜杠命令。你在输入框里能打的 / 开头指令,都可以放进一条 Quick Reply 里,多条串起来就是一个小脚本。所以学 Quick Reply 之前,先熟悉斜杠命令, 顺序反过来会很吃力。

Quick Reply 集合(QR Set)是一组按钮的容器。源码里同时维护全局、当前聊天、当前角色 三层配置,自动执行时三层的按钮都会被收集起来一起跑,所以一个角色专属的 QR Set 不会 顶掉全局那套,而是叠加上去。分享出去的「一键预设」多半就是一个 QR Set 加若干世界书条目。

八个自动执行时机分别在什么时候触发

AutoExecuteHandler 提供八个 handle* 方法,各自挂在一个事件上。前七个由 Quick Reply 编辑器里的 勾选框控制,第八个靠 ID 匹配。

处理函数监听的事件触发时机
handleStartupAPP_READY酒馆界面初始化完毕、加载遮罩收起之后
handleChatChangedCHAT_CHANGED切换到另一个聊天
handleNewChatCHAT_CREATED / GROUP_CHAT_CREATED新建单人或群聊
handleBeforeGenerationGENERATION_AFTER_COMMANDS一次生成开始、输入框里的斜杠命令处理完之后
handleUserUSER_MESSAGE_RENDERED你的消息已入库并渲染出来
handleAiCHARACTER_MESSAGE_RENDERED模型的回复已渲染出来
handleGroupMemberDraftGROUP_MEMBER_DRAFTED群聊里角色已切好、还没开始生成
handleWIActivationWORLD_INFO_ACTIVATED世界书条目被激活,按 automationId 配对

handleUser 和 handleBeforeGeneration 差在哪

不差在「影响这一轮还是下一轮」,两者都在同一次生成里、提示词组装之前跑完。差别在 触发条件:handleBeforeGeneration 每次生成都触发,重新生成、续写、群聊里的每个 成员各算一次;handleUser 只在真的新增了一条用户消息时触发。

顺序也是固定的。一次正常发送里,酒馆先发 GENERATION_AFTER_COMMANDSscript.js:4262),之后才调用 sendMessageAsUser 把消息入库并发出 USER_MESSAGE_RENDERED,再往后才开始拼提示词。所以 handleBeforeGeneration 里改的设置,handleUser 还能覆盖回去。

handleBeforeGeneration 有两处会被跳过:干跑(dry run)不触发,群聊在切到具体 成员之前的那次外层调用也不触发。handleAi 则会跳过 swipe 时那条占位的 ... 消息。

自动执行最容易出的问题

循环触发。一条绑在 handleAi 上的 Quick Reply,如果自己又触发了一次 生成,就会再次触发 handleAi。编辑器里的「Don't trigger auto-execute」 (preventAutoExecute)就是断这个环用的:勾上之后,这条脚本自动执行期间发生的 任何自动执行时机都会被忽略。它 在源码里默认为 true, 关掉之前先想清楚这条脚本会不会把自己叫起来。

启动那一批跑完之前,其他时机在排队。酒馆没准备好时收到的事件会进队列, 等 handleStartup 全部执行完才依次补跑。启动脚本写得慢,后面的自动执行就一起晚。

三层配置一起跑。全局、聊天、角色三层里同名的按钮如果都勾了同一个时机, 一次触发会执行多遍。查「为什么执行了两次」,先看是不是同一条 Quick Reply 被复制进了 不同的 QR Set。

用 automationId 让世界书调起 Quick Reply

handleWIActivation 不看勾选框,它读取本轮被激活的世界书条目上的 automationId,再去三层配置里找 automationId 相同的 Quick Reply 执行。 两边的 ID 必须完全一致,任意一边留空都不会配上。

这条链路把「剧情推进」和「机制变化」绑在一起:进入某个场景时自动调整生成长度,或者 聊到某个话题就切一套采样参数,都靠它。

在手机上用

Quick Reply 按钮在窄屏上会挤,建议一组不超过五六个,名字尽量短。手机端更值得投入的 是自动执行:打字和点按在手机上都比桌面费劲,能让它自己跑的就别做成按钮。

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