SillyTavern 完整指南:5 分钟搭好属于你的 AI 角色扮演前端
【免费下载链接】SillyTavernLLM Frontend for Power Users.项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern
当你希望模型从头到尾演好一个具体角色,而不是退化成"回答问题"的通用助手时,单靠一个 API 接口很难做到。SillyTavern 是一款开源的 AI 角色扮演前端,负责管理角色数据、对话参数与上下文,把各种 LLM 后端统一成一套可长期使用的对话工作台。本文按实际使用流程,讲清从启动服务到调好一个角色的完整路径。
先搞清楚:SillyTavern 是什么
SillyTavern 本身不生成内容,它是一个部署在本地浏览器里的 LLM 对话工具:模型推理交给 OpenAI、Anthropic、Google、NovelAI、KoboldAI、Horde 或本地推理服务(如 LLaMA.cpp、vLLM),而角色设定、提示词组装、上下文裁剪、多角色调度全部由它完成。
它适合两类人。一类是长期做角色扮演、跑团叙事的用户,需要角色不崩、记忆不丢;另一类是开发者和提示词工程师,需要观察每次请求实际发出去的完整内容,方便调试。所有角色、对话、预设都保存在本地文件中,断网也能运行,这也是它作为开源 AI 对话工具被广泛使用的原因。

功能拆解 🧩:从建角色到分享出去
第一步:创建并管理角色卡片
SillyTavern 的角色数据直接写进一张 PNG 图片里。图片内嵌符合 V2/V3 两个版本规范的数据块,包含角色描述、问候语、示例对话;解析与生成逻辑在 src/character-card-parser.js 与 src/png/ 中。这样分享角色时只发一张图,对方导入即可还原全部设定,不会丢字段。仓库自带的演示角色 Seraphina 配有 28 张情绪表情图,可在对话中随情绪切换头像。
| 数据项 | 作用 |
|---|---|
| 名称与头像 | 聊天界面的显示信息 |
| 角色描述 | 性格、说话风格、世界观背景 |
| 问候语 | 新对话开场白 |
| 示例对话 | 用 3–4 组样例钉住口吻 |
第二步:连接后端并配置对话风格
后端管理对应 src/endpoints/ 下的各个 API 端点,填入服务地址与密钥即可接入。连好后选择预设,这是新手最容易忽略的一步。内置预设放在 default/content/presets/,其中上下文格式预设 34 个、指令格式预设 38 个、系统提示预设 13 个,三者合计 80 多个,分别对应不同模型的消息拼装格式。选对预设,模型才"听得懂"角色设定。
第三步:多角色群组互动设置
创建群组后,把多个角色拉进同一个对话,可以设定出场顺序、发言比例,以及群组的头像与背景场景。轮换逻辑保证不会出现同一角色连续刷屏,适合写多线剧情。
第四步:备份与跨机迁移
界面上有一键主导出,把角色、对话历史、预设打包成单个归档文件;换机器时一键导入即可整体还原,不需要逐条复制。

5 分钟上手 ⚡
前置条件只有一个:本机装有 Node.js 20 及以上版本。
git clone https://gitcode.com/GitHub_Trending/si/SillyTavern cd SillyTavern && npm install npm start服务启动后,终端会打印本地访问地址,浏览器打开即可。接下来做三件事:
- 在后端设置里添加一个模型 API,保存并测试连接
- 用内置角色 Seraphina 发起一轮对话,确认链路通
- 新建一个角色,填名称、描述、问候语,保存后会生成对应的 PNG 角色卡片
深度玩法 🔧:出问题就按这个思路查
如果角色性格单薄、对话"出戏"
通常原因是角色描述写成一句话简介,模型缺少可依据的细节。可以把性格拆成三层来写:表层语言风格(用什么词、句长、口头禅)、内在动机(想要什么、怕什么)、变化轨迹(对话推进后立场如何演变)。再配 3–4 组示例对话,口吻问题基本就解决了。
如果群对话顺序混乱、某人抢话
原因是群组里没定义角色间关系与发言规则。先在角色描述或群组备注里写明两两关系与冲突点,再在群组设置里指定轮换顺序或权重。群聊脚本见 public/scripts/group-chats.js。
如果回复平淡或发散,需要调参
先确认预设与该模型匹配,再动参数。下面这组起点适合大多数聊天模型,再按结果微调:
| 参数 | 起点值 | 调整方向 |
|---|---|---|
| 温度 temperature | 0.7–0.9 | 偏低则更稳,偏高则更跳 |
| 单次最大输出 tokens | 2048 | 控制回复长度上限 |
| 重复惩罚 | 1.1 | 重复严重时上调 |
避坑与调优
误区:角色描述越详细越好。原因是上下文有长度上限,正文过长时卡片开头会被截断,模型反而看不到最关键的设定。处理方法是正文只留核心人设,把大段世界观、历史事件放进世界信息(World Info),按关键词触发注入,平时不占上下文。
误区:一套预设通吃所有模型。原因是不同模型的消息格式差异很大,格式对不上时模型会忽略系统指令或直接乱答。处理方法是换后端后先换对应模型的上下文/指令预设,再谈参数调优。
误区:角色卡发出去别人导入后是乱码。原因是对方平台读取的卡片规范版本与导出版本不一致。处理方法是导出时选择标准 PNG 角色卡(V3 规范),兼容性最好。
生态与扩展:想魔改去哪看
项目按"后端端点 + 前端扩展 + 插件"三层组织:
src/endpoints/ 后端 API:角色、对话、预设、备份等 public/scripts/extensions/ 前端扩展:图库、翻译、TTS、记忆、向量等 plugins.js 插件加载入口 default/content/presets/ 内置预设模板前端扩展可以直接在界面里安装,比如给对话加 TTS 朗读、翻译、图库、长期记忆,不需要改核心代码。插件则通过npm run plugins:install安装,适合开发者扩展功能。
下一步清单 ✅
- 拉取仓库并启动,用 Seraphina 确认链路通畅
- 接入一个自己的模型后端,跑通一轮完整对话
- 基于模板改一个自己的角色,尝试三层性格写法
- 再建一个角色,拉群测试多角色互动设置
- 做一次主导出归档,把调好的角色卡片 PNG 分享给别人
【免费下载链接】SillyTavernLLM Frontend for Power Users.项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考