进阶 12 分钟界面

SillyTavern:LLM的虚拟角色界面 本地

SillyTavern 是一个用于通过 LLM 进行角色扮演和交互式写作的网页界面。它本身不运行模型,而是连接到 KoboldCpp 或 Ollama 等本地后端,并在其上补充普通聊天所缺少的各种功能——角色卡、持久化的世界记忆、精细的提示词管理和扩展。本指南涵盖安装、连接您的后端、创建角色,以及能改善角色演绎效果的设置。

作者: Léa B.·更新于 2026-08-27·已在 Windows、macOS 和 Linux 上测试

#为什么选择 SillyTavern,而不是常规聊天界面

Open WebUI 或 LM Studio 这样的界面将每次对话视为助手与用户之间的交流。SillyTavern 则从另一种需求出发:在一个能记住自身规则的虚构世界中,扮演一个在数百条消息里始终保持一致的角色。它是本地 LLM 角色扮演社区的标杆工具,并提供普通聊天所没有的机制。

角色卡
一种标准化格式(带嵌入元数据的 PNG),用于描述角色设定、风格、对话示例和欢迎消息。可导入并以单文件形式共享。
世界记忆
lorebook 仅在出现关键词时向提示注入信息,从而保持世界观的一致性,同时避免上下文过载。
提示词控制
你可以看到并修改发送给模型的每一部分:系统提示、指令格式、注入顺序。没有任何内容被隐藏。
可选后端
SillyTavern 是一个纯前端。同一角色可在 KoboldCpp、Ollama、llama.cpp 或远程 API 上运行,无需重新编写代码。
i
SillyTavern 无法替代您的推理服务器
它是一个用户界面层。您仍然需要一个后端来加载模型并执行生成。SillyTavern 只负责组织提示词和显示结果。

#前置条件与后端选择

本地 AI 套件

只需 1 小时,即可在您的电脑上拥有专属的免费 ChatGPT — LM Studio、Ollama、Open WebUI、您的文档,无需云端。

  • 在线空间,终身可用
  • PDF + 文件
  • 30 天内退款

SillyTavern 在 Windows、macOS 和 Linux 上通过 Node.js(18 或更高版本)运行。它的资源占用很低——消耗显存的是后端。两个本地后端几乎可以覆盖所有用途:KoboldCpp 侧重 GGUF 和角色扮演,Ollama 则更通用。

KoboldCpp
一个可执行GGUF模型的二进制文件,通过SillyTavern原生支持的API运行。支持精细内存配置和AMD ROCm。是RP社区的默认选择。
Ollama
守护进程在 http://localhost:11434 上监听。如果您已经将它用于其他用途,这会很方便;SillyTavern 可通过它的兼容端点连接。
llama.cpp (llama-server)
兼容 OpenAI 的 HTTP 服务器,可最大限度地控制模型层的卸载。
VRAM
采用 Q4_K_M 量化时:7B 模型约占 5 GB,14B 模型约占 9 GB,32B 模型约占 19 GB。为了让角色扮演更流畅,如果您的显卡允许,建议至少选择 12B 到 14B 的模型。
→
长上下文 = 更多 VRAM
角色扮演依赖长上下文(8k、16k、32k token)。KV 缓存会随着上下文变长而增大,除了模型权重之外,还会额外占用显存。请预留显存余量,或对 KV 缓存进行量化,以便在同一张显卡上容纳更长的上下文。

#安装 SillyTavern

推荐方法是使用Git克隆:可轻松实现更新(只需执行git pull),且SillyTavern更新频繁。请确保已安装Node.js 18及以上版本和Git。

  1. 01
    克隆仓库
    请获取 release 分支,该分支稳定且经过测试。除非您想以遇到一些 bug 为代价提前体验新功能,否则请避免使用 staging 分支。
  2. 02
    运行启动脚本
    Linux/macOS 上运行 start.sh,Windows 上运行 Start.bat。首次启动时,npm 会自动安装依赖项。
  3. 03
    打开界面
    SillyTavern 在 http://localhost:8000 提供界面。请在浏览器中打开该地址;无需安装桌面应用程序。
  4. 04
    稍后更新
    在目录中执行一次 git pull,然后重新运行脚本。您的角色和对话会单独保存在 data/ 目录下,不会被覆盖。
终端(Linux/macOS)
# Cloner la branche stable
git clone https://github.com/SillyTavern/SillyTavern -b release
cd SillyTavern

# Premier lancement : installe les dépendances puis démarre
./start.sh

# Interface accessible sur http://localhost:8000
PowerShell(Windows)
git clone https://github.com/SillyTavern/SillyTavern -b release
cd SillyTavern

# Double-cliquez Start.bat, ou en ligne de commande :
.\Start.bat
i
网络访问与安全
SillyTavern 默认仅监听 localhost。若想从网络中的其他设备访问,请在 config.yaml 中启用 listen,并配置身份验证(基本认证)。切勿在没有防护的情况下将界面直接暴露到互联网上。

#连接本地后端

打开 SillyTavern 后,所有操作都在 API 连接标签页中进行(顶部的插头形图标)。基本做法是:先启动后端,再在 SillyTavern 中指定后端地址。

#使用 KoboldCpp

使用 GGUF 模型启动 KoboldCpp;默认情况下,它会在 5001 端口暴露 API。在 SillyTavern 中选择 API 类型为「Text Completion」,后端选择「KoboldCpp」,并填写 URL。点击 Connect:若一切正常,将显示已加载模型的名称。

终端
# Lancer KoboldCpp avec un modèle et 8k de contexte
./koboldcpp --model mon-modele-rp.Q4_K_M.gguf --contextsize 8192

# API disponible sur http://localhost:5001
# Dans SillyTavern : API = Text Completion > KoboldCpp
# URL = http://localhost:5001

#使用 Ollama

Ollama 已经作为守护进程在 11434 端口运行。在 SillyTavern 中,选择“Text Completion”,然后选择“Ollama”后端,输入地址,再从自动获取的模型下拉列表中选择模型。

终端
# Vérifier qu'Ollama tourne et lister les modèles
ollama list

# Le daemon écoute sur http://localhost:11434
# Dans SillyTavern : API = Text Completion > Ollama
# URL = http://localhost:11434
!
正确的指令模板至关重要
每个模型系列都需要特定的格式(Qwen 3.5/3.8 和 gpt-oss 使用 ChatML,Gemma 4 使用 Gemma,Mistral Small 使用 Mistral……)。如果回复语无伦次、被截断或充满可见标签,几乎总是因为选错了模板。请在 Advanced Formatting 选项卡中调整模板,使其与已加载的模型匹配。

#创建并导入角色卡

角色卡是SillyTavern的核心。它是一个PNG文件,图像用作头像,嵌入的元数据描述角色信息。您可以从零开始创建,也可以导入社区共享的角色卡。

#关键字段

描述
角色的基础设定:外貌、性格特征、背景经历。这些信息会始终注入上下文,因此描述应信息密度高、内容具体,避免冗长。
Personality
对性格的简要概括。有助于在不重写完整描述的情况下确定语气
First message
用于交代场景的开场消息。它设定了预期的基调、写作风格和格式——模型往往会模仿它的形式。
Example dialogues
通过对话示例向模型展示角色的说话方式。这对固定某种特定的说话风格非常有效。
Scenario
场景上下文与角色描述分离。适用于在多种情境中复用同一角色。
  1. 01
    打开角色面板
    顶部栏中的角色图标可展开列表,点击「+」按钮可创建一张空白卡片。
  2. 02
    填写描述信息
    用信息丰富、表述紧凑的方式描述角色。许多作者采用结构化格式(特征列表),而不是整段文字,模型也能很好地遵循这种格式。
  3. 03
    撰写第一条消息
    请用心打磨这条消息:它是您塑造风格的最有效手段。采用第三人称叙事的开场消息会引导模型沿用这种形式。
  4. 04
    导入现有角色卡
    将一张 PNG 格式的角色卡拖入列表,或将其导入。角色卡以普通图片文件的形式在社区平台上分享。
→
角色的 token 预算
角色卡中的所有内容都会在每条消息中占用上下文空间。在 8k 的上下文窗口中,一段 2000 个 token 的描述就会消耗四分之一的预算,此时还没计入历史记录。请保持简洁:质量比长度更重要。

#持续存在的世界:lorebook

lorebook(或 World Info)解决了长时间角色扮演中的核心问题:如何在不持续注入全部信息的情况下保持世界设定的一致性。其原理是根据关键词有条件地注入信息。

您创建条目,每个条目关联一个或多个关键词。只要其中一个关键词出现在最近的消息中,对应条目就会在生成开始前被注入上下文。其余时间,该条目不占用任何空间。这样,您可以描述数十个地点、次要角色和规则,而不会把提示词空间塞满。

输入
一段文本(要注入的背景设定)及其触发关键词。例如:关键词“Valmont” → 对 Valmont 城的描述。
固定模式 vs 选择性模式
一个条目可以始终生效(世界的基本规则),也可以仅由关键词触发(上下文细节)。
注入深度
您可以选择将条目插入提示词的哪个位置,这会影响模型赋予该条目的权重。
绑定到角色或全局适用
一个 lorebook 可以搭配特定卡片使用,也可以作为共享世界应用于所有对话中。
i
Lorebook ≠ RAG
关键词注入比向量搜索更简单、更可预测:它通过文本匹配触发,而非依赖语义相似性。对于设定结构清晰的虚构世界,这种方式通常比常规 RAG 更可靠,而且始终完全由您掌控。

#为角色扮演调整生成设置

采样参数决定连贯性与创造性之间的平衡。角色扮演比事实性辅助需要更多变化,但仍要保持连贯。这些设置位于生成参数选项卡中(滑块图标)。

温度
控制创造力与稳定性之间平衡的滑块。在角色扮演(RP)中,设为约 0.7–0.9 可取得良好平衡。过高(> 1.2)会导致内容不连贯;过低则会让角色重复而平淡。
Min-P
一种现代采样器,以概率最高的 token 为基准,按比例剔除低概率 token。将数值设为 0.05-0.1 可改善输出质量,并允许提高温度而不让输出失控。
重复惩罚
对重复使用相同 token 施加惩罚。有助于避免循环,但惩罚过强会迫使模型使用生硬、不自然的表达。设置应保持适度。
Response length
每条回复可生成的最大 token 数。设为 200–400 个 token,可让叙事回复内容充实,同时避免没完没了的独白。
Context size
必须与后端加载时设定的上下文大小一致。如果 KoboldCpp 启动时只设置了 8k 上下文,那么在 SillyTavern 中请求 16k 上下文也没有用。
→
先使用预设,再进行修改
SillyTavern 提供开箱即用的采样预设。加载一个适合角色扮演的预设,先演绎一个场景,再一次调整一个参数。同时改动五个滑块,就无法判断问题出在哪里。

#能够改变使用体验的插件

SillyTavern 支持扩展。有些扩展随软件附带,另一些则通过各自的代码仓库 URL 安装。以下这些扩展能显著改变使用体验。

Vector Storage(记忆摘要)
将历史记录向量化,并重新注入旧消息中的相关段落,使记忆延伸到上下文窗口之外。适合持续很久的角色扮演对话。
Summarize
生成并维护持续更新的对话摘要,再将其注入提示词中。即使对话已进行了数百条消息,角色仍能记住重要事件。
Text-to-Speech
通过本地 TTS 引擎让角色发声。对于通过语音互动来游玩的用户,沉浸感更强。
图像生成
连接本地图像后端(如Stable Diffusion)以实时从聊天中生成场景和人物图像。
表情
使用一组角色精灵图,根据消息的语气显示带有相应情绪表情的头像。
i
每个扩展消耗的都是token或显存
Summarize 和 Vector Storage 会占用上下文;图像生成和 TTS 需要各自的模型,因此除了 LLM 所需的资源,还需要额外的显存或 CPU 资源。请根据您的硬件资源预算启用这些功能,不要一次性全部开启。

#哪些本地模型擅长角色扮演

并非所有大语言模型在角色扮演中的表现都一样。为提供辅助而经过对齐的“instruct”模型往往会脱离角色、说教,或拒绝虚构场景。社区更倾向于使用专门的微调模型,这些模型通常以扎实的基础模型为底座,再针对叙事和角色对话进行训练。

实用的模型规模
低于 4B 的模型,角色在长时间互动中的一致性会受到影响。2026 年,对于大多数中端显卡,Qwen 3.5 9B(约 6.6 GB,256k 上下文)或 Gemma 4 12B(约 7.6 GB,Apache 2.0)这样的较新基础模型是性能与资源需求之间的平衡点;再高一级,Mistral Small 24B(约 14 GB,法语表现出色)能装入 16 GB 显存,并带来更细腻的叙事。
角色扮演(RP)微调模型
请寻找明确针对角色扮演或虚构内容训练的模型(通常在 Hugging Face 上标注为「RP」、「storytelling」或「uncensored」)。2026 年表现最佳的微调模型均基于这些新基座模型构建(Qwen 3.5,Mistral Small 24B,Gemma 4),而非 2023 年的老款 Llama 2 或 Mistral 7B;它们更符合卡片格式要求。
长上下文
优先选择在 16k 及以上 token 的上下文中仍能稳定表现、不会退化的模型:长时间的互动需要这样的能力。请检查模型标称的原生上下文长度。
GGUF格式
对于KoboldCpp,建议使用量化后的GGUF格式。Q4_K_M是推荐的折中方案;若VRAM允许且你追求更高精度,可升级至Q5_K_M或Q8_0。
→
用两三个模型测试同一张角色卡
同一个角色在一个模型上可能显得平淡,在另一个模型上却表现出色。在认定您的角色卡不好之前,请先用几个不同的角色扮演(RP)模型试试:角色表现的差异往往非常显著。

#常见问题排查

SillyTavern 无法连接
请确认后端服务正常运行且端口正确(KoboldCpp为5001,Ollama为11434)。在浏览器中访问API URL进行测试,确认其返回响应。
带有可见标签的回复
几乎总是因为指令模板不合适。请在 Advanced Formatting 中,将格式(ChatML、Gemma、Mistral 等)设置为与模型所用格式一致。
角色偏离了设定
完善角色描述和对话示例,稍微降低温度,并检查您的系统提示词是否与角色卡冲突。
重复和循环
稍微提高重复惩罚参数,并加入 Min-P。如果问题仍然存在,可能是上下文已满:启用 Summarize,或缩减角色卡的内容。
截断的回复
Response length 设置过低,或后端启动时设置的上下文大小小于 SillyTavern 要求的大小。请将两边的数值设为一致。

#深入了解

SillyTavern 只是一层:最终质量主要取决于您的后端和模型。这些指南可以帮助您夯实基础。

KoboldCpp:安装与入门
本地角色扮演的标杆后端:支持 GGUF,提供内存设置,以及 SillyTavern 原生支持的 API。
Ollama 是什么,它如何工作
如果您更倾向于在端口 11434 上运行单一守护进程以支持所有用途,那么这是一个通用的替代方案。
量化KV缓存
用于在同一张显卡上支持更长的角色扮演上下文,同时避免显存占用过高。
这份指南对您有帮助吗?

有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。