Skip to content

擴充 API 參考 ​

本文件是 Luker 擴充功能 API 的完整參考,面向外掛開發者。所有 API 均透過 Luker.getContext() 暴露。完整參考分為以下子頁面:

頁面涵蓋內容
聊天與狀態聊天資料、統一訊息 API、聊天持久化、聊天狀態、樓層狀態、角色狀態、聊天生命週期、swipe API、擴充提示詞、媒體輔助函式
角色卡角色卡、V2 / 傳統 Proxy 語義、標籤、匯入 / 匯出、角色狀態
世界書世界書 CRUD、啟動掃描、角色輔助世界書
預設與提示詞context.presets.*、buildPresetAwarePromptMessages、resolveWorldInfoForMessages、提示詞結構檢視、推理輔助函式、設定視圖
生成請求generateTask、工具註冊、generateRaw / generateQuietPrompt、Service 類別、connection profile
斜線指令註冊與執行斜線指令、具名 / 不具名引數、列舉
巨集與變數巨集註冊、內建巨集參考、substituteParams、本地與全域變數
Skillcontext.skills.* —— 安裝、讀取、寫入、搜尋、遷移作用域、嵌入打包 / 抽取;CardApp ctx 對等
角色卡取代流程取代角色卡時執行的登錄表:卡繫結保護槽位與取代後世界書動作
UI 與彈窗彈窗、載入器、範本、訊息格式化
IterationStudioAI 驅動迭代編輯的共享彈窗框架 —— 對話、會話、diff 預覽、批准 / 拒絕生命週期。adapter 提供工件形狀和工具
執行面板多步 LLM 任務的共享記憶體內執行軌跡 —— 輪次、串流分節、停止、匯出。外掛透過工廠式 store 與面板驅動它
外掛整合正則執行時、搜尋工具、擴充 API 註冊表、事件系統、i18n、設定儲存、除錯與 scraper 註冊、tokenization、工具函式、symbols 與常數
底層端點原始 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 欄位帶 V2 標準化與傳統寫入棄用警告的 Proxy

IMPORTANT

優先使用 Luker.getContext() 提供的 API,而非直接呼叫底層 HTTP 端點。Context API 封裝了 patch-first 語義、衝突處理和重試邏輯,直接呼叫端點需要自行處理這些細節。

相關頁面 ​

基於 SillyTavern 建構