Skip to content

扩展 API 参考

本文档是 Luker 扩展 API 的完整参考,面向插件开发者。所有 API 均通过 Luker.getContext() 暴露。完整参考分为以下子页面:

页面涵盖内容
聊天与状态聊天数据、统一消息 API、聊天持久化、聊天状态、楼层状态、角色状态、聊天生命周期、swipe API、扩展 prompt、媒体辅助函数
角色卡角色卡、V2/旧版 Proxy 语义、标签、导入 / 导出、按角色的旁挂状态
世界书世界书 CRUD、激活扫描、角色辅助世界书
预设与提示词context.presets.*buildPresetAwarePromptMessagesresolveWorldInfoForMessages、信封检视、reasoning 辅助函数、设置视图
生成请求generateTask、工具注册、generateRaw / generateQuietPrompt、Service 类、连接配置
Slash 命令注册和执行 slash 命令、命名 / 非命名参数、枚举
宏与变量宏注册、内置宏参考、substituteParams、本地与全局变量
UI 与弹窗弹窗、加载器、模板、消息格式化
IterationStudioAI 驱动迭代编辑的共享弹窗框架 —— 对话、会话、diff 预览、批准 / 拒绝生命周期。adapter 提供工件形状和工具
插件集成正则运行时、搜索工具、扩展 API 注册表、事件系统、i18n、设置存储、调试与抓取器注册、tokenization、工具函数、符号与常量
底层端点原始 HTTP 路由(仅供高级 / 调试场景使用)

全局入口

js
const context = Luker.getContext();
别名说明
Luker.getContext()推荐使用
SillyTavern.getContext()兼容别名
st.getContext()兼容别名

新插件应统一使用 Luker.getContext()。兼容别名仅为迁移期保留。

命名空间速查

为了便于快速定位 API 所在位置,context 对象将相关 API 分组成命名空间:

命名空间内容
context.presetslistgetSelectedgetLivegetStoredsaveresolvereadExtensionswriteExtensionsstate.*
context.connectionProfileslistresolve(不推荐直接使用)
context.variables.localgetsetaddincdecdelhas
context.variables.globalgetsetaddincdecdelhas
context.swipeleftrighttoshowhiderefreshisAllowedstate
context.symbolsignoreIGNORE_SYMBOL 哨兵值)
context.constantsunsetUNSET_VALUE 哨兵值)
context.macrosregisterregisterAliasregistryenginecategoryenvBuilder
context.loadershowhideactivegetisBlockingToastModeHandle

与 SillyTavern 的 API 差异

Luker 基于 SillyTavern 构建,但在 API 层面有以下主要差异:

领域SillyTavernLuker
聊天持久化整文件覆写Patch-first(RFC 6902 增量更新)
聊天绑定状态chat_metadata新增聊天状态机制 + 楼层状态
按角色的旁挂状态getCharacterState / setCharacterState(独立于角色卡 JSON)
预设管理直接导入内部模块context.presets.* 统一 API
提示词组装需要手动拼接buildPresetAwarePromptMessages()
世界书模拟simulateWorldInfoActivation()
角色辅助世界书getCharaAuxWorlds()
生成钩子基础事件新增 GENERATION_CONTEXT_READYGENERATION_BEFORE_WORLD_INFO_SCAN 等细粒度钩子
事件排序注册顺序支持 prioritypluginOrdermakeFirst/makeLast
正则运行时无插件 APIregisterManagedRegexProvider()
搜索工具无插件 APILuker.searchTools 全局 API
函数调用基础 ToolManager纯文本模式支持 + 连接级独立开关 + sendOpenAIRequest 预设覆盖
连接配置全局单一context.presets.resolve() 支持按预设解析连接配置
宏引擎字符串替换结构化 macros.register(),带处理器上下文、参数、分类
角色对象朴素 V1/V2 字段Proxy,带 V2 规范化和旧版写入弃用警告

IMPORTANT

优先使用 Luker.getContext() 提供的 API,而非直接调用底层 HTTP 端点。Context API 封装了 patch-first 语义、冲突处理和重试逻辑,直接调用端点需要自行处理这些细节。

相关页面

基于 SillyTavern 构建