聊天指南
插件
你自己的 JavaScript,安全地运行在每条消息前后。
插件是你自己写的 JavaScript,会在每次消息发出或返回时运行。可以用来改写文本、维护自己的计数器,或往提示词里插入备注。
插件是全局的:启用后会在所有对话里运行。在聊天菜单的「插件」中管理,可以粘贴代码或导入 .js 文件。
为以下四个时机之一注册处理器:
input request output display
处理器接收文本并返回替换后的内容。不返回任何值则保持原样。
text
uno.registerHandler("output", (text) => {
return text.replace(/\bcolour\b/g, "color");
});处理器按顺序运行,且从不阻塞回复:抛出错误或超过五秒的会被跳过,原文继续传递。
在处理器内部,uno 对象负责读写对话。每次调用都返回一个 promise。
text
const name = await uno.getName();
const last = await uno.getUserLastMessage();
await uno.setChatVar("mood", "curious");
const mood = await uno.getChatVar("mood");完整能力涵盖聊天消息、角色与人设字段、对话变量、世界书条目、宏展开、词元计数,以及一个带频率限制的 https 请求。
为 JanitorAI 写的脚本可以直接运行。它们拿到同样的 context 对象,留在 character.personality 和 character.scenario 里的内容会成为该轮的提示词。
text
if (context.chat.last_message.toLowerCase().indexOf("storm") !== -1) {
context.character.scenario += "\nA storm is rolling in.";
}它们的规则同样适用:状态每轮都会重置,所以想保留的内容每次都要重新写回场景。
插件运行在隔离的框架中,无法访问你的对话、文件、Cookie 或登录状态,也读不到页面、发不出自己的网络请求。
插件能接触到的一切都要经过上面的 API,因此它只看得到处理器收到的内容。即便如此,也只安装你信任的代码:插件可以改写你发送和读到的文字。