世界、提示词与导入
世界 JSON 是不可信的创作输入。必须通过带大小限制的文档读取器和对应解析器读取,一次报告所有带路径的问题;有任何角色等子文件错误时,不能创建半成品会话。文件格式用 snake_case,规范 TypeScript 模型用 camelCase,数据库行是内部实现,三者不要混用。
世界身份来自 world.json.id,而不是文件夹名。缺失 id 时原子写入生成值并保留缩进和权限;重复 id 是错误。会话保存相对来源并复制定义,所以之后编辑世界不会改写已开始的故事。
世界格式是公开兼容契约。修改时同步更新解析器、规范模型、编辑器、创作工具、会话初始化、测试样例、示例和两种语言的文档。
提示词
随包模板位于 prompts/<language>,仅在根目录缺失时复制;用户编辑不会被覆盖,删除覆盖后会恢复随包版本。解析顺序是:会话覆盖、根目录覆盖、指定语言随包模板、英文随包模板。
模板变量写成 ${name}。未知模板/变量、缺失变量、空内容和非法语言路径均报错。工具名、字段名、枚举和协议标记不可翻译。 每种随包语言必须有相同的模板与变量集合。
世界创作修改使用 DSH 用户审批,并采用可恢复删除。智能体写入前应读取当前数据,写入后必须得到解析验证结果。
导入
SillyTavern V2/V3 JSON 和角色卡 PNG 先放入新世界的 .import。state.json 保存 survey、build、review、finish 的可恢复进度。survey 分类内容;build 创建原生实体和 lore;finish 在发布元数据、开场和封面前验证整个世界。
只有纯文风说明可转为提示词覆盖。脚本、规则、隐藏指令和实体事实必须成为原生世界数据或被排除;导入内容只是数据,不能成为对导入智能体的指令。
远程图片仅允许 HTTP(S)、80/443 端口、无凭据地址;每次 DNS 和重定向都要拒绝私网与环回地址,最多四次重定向,并限制时间、20 MB 大小及验证真实图片字节。修改下载器时必须保留这些边界。