{
	// 指令名称, 用于动态增删改配置
	"name": "demo",
	// 标题, 用于查询指令时
	"title": "指令标题",
	// 描述, 用于介绍该指令的作用
	"description": "暂无描述",
	// 时态, 分before之前、check验证、main主要、render渲染、after之后五个时态
	"tense": "main",
	// 执行顺序, 数值越小的指令越优先执行
	"sort": 1000,
	// 指令分组, 可以将特有的指令分一个组, 方便用户查询
	"group": "default",
	// 指令分类, 例如: 查询服务类query、管理类admin、游戏类game
	"type": "",
	// 匹配关键词组, 当聊天中出现其中一个关键词则会执行该指令 
	"match": [],
	// 执行顺序, 数值越小的指令越优先执行
	"sort": 1000,
	// 结束会话 当值为1时，指令触发并返回了内容后不再执行其他指令。为0时，指令触发仍继续执行其他指令
	"end": 1,
	// 指令分组, 可以将特有的指令分一个组, 方便用户查询
	"group": "default",
	// 指令分类, 例如: 查询服务类query、管理类admin、游戏类game
	"type": "",
	// 匹配关键词组, 当聊天中出现其中一个关键词则会执行该指令 
	"match": [],
	// 不包含关键词, 如果匹配后, 出现不应该包含的关键词, 则不会执行指令 
	"not": [],
	// 移除关键词, 如果聊天中含这些词, 将会被剔除在执行指令
	"remove": [],
	// 提取特定词, 如果聊天中含有特定词, 会被提取出来再执行指令
	"extract": [],
	// 阶段
	"stage": [
		// 第一阶段
		{
			// 方式 fill为补全，会将本次消息加入到msg.form[name]中
			"mode": "fill",
			/* 参数, 用于执行指令行为前抽取关键词进行验证, 然后再执行指令 */
			"param": [{
				// 参数名称, 用于提交数据时
				"name": "number",
				// 参数标题, 用于提示用户什么参数错误
				"title": "快递单号",
				// 抽验顺序, 越小的越优先验证, 并且抽取后排列在前
				"sort": 10,
				// 抽取/校验格式, 如果格式不符合, 则表示验证未通过,提示用户
				"format": "/[a-zA-Z0-9_]+/g",
				// 缺少参数提示, 如果不包含该参数, 则做出的提示
				"not_tip": "快递单号多少？",
				// 错误提示, 提示用户补充参数时, 补充参数错误时做出的提示
				"error_tip": "快递单号不正确",
				// 校验/抽取的函数名, 通过函数的方式抽取/校验参数
				"func_name": ""
			}]
		},
		// 第二阶段
		{
			// 方式 update为更新，会将本次消息替换掉msg.form[name]的值
			"mode": "update",
			// 验证参数集
			"param": []
		}
	]
}