Skip to content

扩展 API 参考 ​

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

页面涵盖内容
聊天与状态聊天数据、统一消息 API、聊天持久化、聊天状态、楼层状态、角色状态、聊天生命周期、swipe API、扩展 prompt、媒体辅助函数
角色卡角色卡、V2/旧版 Proxy 语义、标签、导入 / 导出、按角色的状态
世界书世界书 CRUD、激活扫描、角色辅助世界书
预设与提示词context.presets.*、buildPresetAwarePromptMessages、resolveWorldInfoForMessages、提示词结构检视、reasoning 辅助函数、设置视图
生成请求generateTask、工具注册、generateRaw / generateQuietPrompt、Service 类、连接配置
Slash 命令注册和执行 slash 命令、命名 / 非命名参数、枚举
宏与变量宏注册、内置宏参考、substituteParams、本地与全局变量
Skillcontext.skills.* —— 安装、读取、写入、搜索、迁移作用域、嵌入打包 / 抽取;CardApp ctx 对等
角色卡替换流程替换角色卡时运行的注册表:卡绑定保护槽位与替换后世界书动作
UI 与弹窗弹窗、加载器、模板、消息格式化
IterationStudioAI 驱动迭代编辑的共享弹窗框架 —— 对话、会话、diff 预览、批准 / 拒绝生命周期。adapter 提供工件形状和工具
运行面板多步 LLM 任务的共享内存内运行轨迹 —— 轮次、流式分节、停止、导出。插件通过工厂式 store 与面板驱动它
插件集成正则运行时、搜索工具、扩展 API 注册表、事件系统、i18n、设置存储、调试与抓取器注册、tokenization、工具函数、符号与常量
底层端点原始 HTTP 路由(仅供高级 / 调试场景使用)

全局入口 ​

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

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

命名空间速查 ​

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

命名空间内容
context.presetslist、getSelected、getLive、getStored、save、resolve、readExtensions、writeExtensions、state.*
context.connectionProfileslist、resolve(不推荐直接使用)
context.variables.localget、set、add、inc、dec、del、has
context.variables.globalget、set、add、inc、dec、del、has
context.swipeleft、right、to、show、hide、refresh、isAllowed、state
context.symbolsignore(IGNORE_SYMBOL 哨兵值)
context.constantsunset、promptRoles、promptTypes、wiAnchor、wiPosition
context.macrosregister、registerAlias、registry、engine、category、envBuilder
context.loadershow、hide、active、get、isBlocking、ToastMode、Handle
context.skillslist、get、readFile、listFiles、search、writeFile、editFile、deleteFile、install、delete、rename、moveScope、importBundled、listBundledManifest、packForEmbed、previewExtractEmbed、executeExtractEmbed、importFromUrl
context.worldInfoEntrytemplate、create、delete、setButtonClass、setGlobalSelection、getSorted
context.chatWorldInfogetNames、setSelection、globalSelection
context.openaiproxies、ZAI_ENDPOINT、stripPresetConnectionFields
context.textCompletiontypes
context.secretsKEYS、state
context.libDOMPurify、lodash、DiffMatchPatch、showdown、yaml

与 SillyTavern 的 API 差异 ​

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

领域SillyTavernLuker
聊天持久化整文件覆写Patch-first(RFC 6902 增量更新)
聊天绑定状态仅 chat_metadata新增聊天状态机制 + 楼层状态
按角色的状态无getCharacterState / setCharacterState(独立于角色卡 JSON)
预设管理直接导入内部模块context.presets.* 统一 API
提示词组装需要手动拼接buildPresetAwarePromptMessages()
世界书模拟无simulateWorldInfoActivation()
角色辅助世界书无getCharaAuxWorlds()
生成钩子基础事件新增 GENERATION_CONTEXT_READY、GENERATION_BEFORE_WORLD_INFO_SCAN 等细粒度钩子
事件排序注册顺序支持 priority、pluginOrder、makeFirst/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 构建