Appearance
聊天设定 JSON 格式
用于导入导出完整聊天设定。
一份聊天设定可以同时包含:
- 变量字段定义
- 消息规则
- 提示词注入
顶层结构
json
{
"version": 1,
"name": "聊天设定名称",
"stateFieldDefinitions": [],
"regexEntries": [],
"promptInjectionEntries": []
}| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
version | number | 是 | 固定为 1 |
name | string | 是 | 聊天设定名称 |
stateFieldDefinitions | array | 否 | 变量字段定义数组;省略时等价于空数组 |
regexEntries | array | 否 | 消息规则数组;省略时等价于空数组 |
promptInjectionEntries | array | 否 | 提示词注入数组;省略时等价于空数组 |
组合规则
stateFieldDefinitions的单项格式,参考 变量字段regexEntries的单项格式,参考 消息规则列表promptInjectionEntries的单项格式,参考 提示词注入列表
何时优先用完整聊天设定 JSON
- 同时涉及变量字段、消息规则、提示词注入
- 希望 AI 一次生成可直接导入的完整方案
- 需求里既包含“要求 AI 按某格式输出”,又包含“解析 AI 输出并更新状态”
这类场景下,默认应优先输出完整聊天设定 JSON,而不是拆成多个局部列表 JSON。
最小示例
json
{
"version": 1,
"name": "选项菜单",
"regexEntries": [
{
"title": "列表项转可点击链接",
"search": "- (.+)",
"replace": "- [$1](rengeguan://chat/send?text=$1)",
"sourceType": "character",
"targetChannels": ["user"]
}
],
"promptInjectionEntries": [
{
"title": "要求 AI 输出选项列表",
"depth": 0,
"conditionType": "none",
"template": "<instruction>在每次输出最后必须额外增加 1~4 个以 - 开头的选项。</instruction>"
}
]
}完整示例
json
{
"version": 1,
"name": "好感度系统(自报增量)",
"stateFieldDefinitions": [
{
"id": "affection",
"displayName": "好感度",
"type": "number",
"visibility": "visible",
"minValue": 0,
"maxValue": 100,
"defaultValue": 50
}
],
"regexEntries": [
{
"title": "解析增量并更新好感度",
"search": "【好感\\+(\\d+)=(\\d+)】",
"replace": "$0{{set affection=affection+Match1}}",
"sourceType": "character",
"targetChannels": ["user"]
},
{
"title": "解析减量并更新好感度",
"search": "【好感-(\\d+)=(\\d+)】",
"replace": "$0{{set affection=affection-Match1}}",
"sourceType": "character",
"targetChannels": ["user"]
},
{
"title": "把显示数字校正为当前实际值",
"search": "(【好感[+-]\\d+=)\\d+(】)",
"replace": "$1{{affection}}$2",
"sourceType": "character",
"targetChannels": ["user", "character"]
}
],
"promptInjectionEntries": [
{
"title": "要求 AI 自报增量格式",
"depth": 0,
"conditionType": "none",
"template": "<instruction>当好感度发生变化时,必须在消息末尾输出 `【好感+N=变化后的值】` 或 `【好感-N=变化后的值】`,N 为变化量。</instruction>"
}
]
}常见错误
- 把变量字段写成
fields,而不是stateFieldDefinitions - 把消息规则数组写成
entries,而不是regexEntries - 把提示词注入的
condition错写成内部模型名conditionPattern - 把提示词注入的
regexCaseSensitive错写成内部模型名isRegexCaseSensitive - 把“要求 AI 按某种格式输出”的需求写进说明文字,却没有实际生成
promptInjectionEntries
AI 生成约束
- 默认优先输出一整份聊天设定 JSON。
- 若需求同时涉及状态、解析规则、提示词要求,不要拆成多份局部 JSON。
- 只有用户明确要求局部编辑时,才退回输出
stateFieldDefinitions/regexEntries/promptInjectionEntries之一的列表 JSON。