扩展与插件
本页说明 NeoTavern 中的插件如何工作:从哪里获取、权限和同意如何运作, 以及应用如何约束不受信任的代码。
什么是插件
插件为 NeoTavern 添加行为 —— 工具栏操作、消息操作、斜杠命令、提示词 拦截器、自定义面板、快捷键、后端路由或与外部服务的集成。插件运行在稳定的 插件 SDK 之上,而不是应用内部,并且它们注册的每个功能在插件被禁用时 都会被移除。
官方目录附带一些插件;第三方软件包从 .stplugin ZIP 或公开 Git 仓库链接
(GitHub 或 GitLab,仅 HTTPS)安装。服务器绝不会运行 Git 或 npm:
Git 链接会被下载为归档文件,并像 ZIP 一样被验证。
安装插件
打开"插件"部分并安装一个软件包:
- 安装前,应用会显示作者、版本、来源、兼容性、签名(如果有签名) 以及完整的权限列表。
- 你审查并明确同意权限。软件包会保持在"需要同意"状态, 直到你确认每一项请求的权限。
- 安装是原子的:发生任何错误时,之前的版本保持安装并可用。
如果软件包声明了 npm 依赖,它们会通过 HTTPS 从注册表解析、按校验和验证, 并且永远不会被执行 —— 安装脚本和原生二进制会被直接拒绝。
权限
清单中的权限是对能力的请求,而不是自动访问权。在插件能够读取聊天记录、 修改提示词、接触你的文件或访问网络之前,你必须授予匹配的权限, 同意屏幕会描述每个权限的作用。有两条规则很重要:
- 更新后的新权限需要重新同意。 更新绝不能静默扩展插件的权利。
- 权限可以被撤销。撤销在插件下一次能力调用时生效。
管理插件
管理器显示每个插件的状态:已启用、已禁用、需要权限、不兼容或错误。 从这里你可以:
- 启用或禁用一个插件。禁用会在不重启的情况下移除其界面、钩子、定时器、 路由和订阅,清理由宿主强制执行。
- 卸载它,这也会清除其注册。
- 审查兼容性,针对旧版 SillyTavern 时代的扩展,它们会显示兼容级别和 已知限制。
一个插件中的错误是隔离的:应用会提供只禁用该插件的选项, 而不是破坏整个界面。
插件安全
不受信任的后端插件在单独的受限进程中运行,沙箱化的插件界面在带有受控 RPC 通道的 iframe 中运行。主题包无法访问聊天记录、密钥或文件。 安全模式禁用所有第三方插件和主题,并且可以在它们加载之前进入, 因此任何插件的不当行为都可以被逃脱。请参阅 安全模式与恢复和插件 SDK 文档。