评分规则编辑器使用指南¶
一、概述¶
评分规则编辑器是醒空 AI 智能评估平台的核心工具,用于为课程配置评分规则。通过规则编辑器,你可以:
- 手动新增、编辑、删除评分规则
- 将规则关联到课程的章节和剧情节点
- 配置规则的计分模式、分值、适用角色等属性
- 使用 AI Copilot 通过自然语言快速生成规则

编辑器界面分为四个区域:
| 区域 | 位置 | 功能 |
|---|---|---|
| 评分规则库 | 左侧面板 | 规则列表,按类型分组,支持新增/删除 |
| 课程结构 | 中间面板 | 章节-剧情树,关联规则到具体节点 |
| 规则属性编辑 | 右侧面板 | 编辑选中规则的所有字段 |
| AI Copilot | 底部栏 | 自然语言输入指令,AI 自动生成规则 |
二、新增规则¶
2.1 手动新增¶

点击左侧面板顶部的 「+ 新增」 按钮,系统会自动创建一条空白规则并选中。然后在右侧属性面板中填写各项字段。
2.2 字段说明¶
| 字段 | 说明 | 填写建议 |
|---|---|---|
| 规则名称 | 规则的简短描述性名称 | 使用简洁的命名,如"未规范使用警用语言" |
| 规则类型 | 规则的分类标签 | 相同类型的规则会自动归为一组,如"致命失误""程序合规性" |
| 实体标签 | 限定规则适用的阵容标签 | 选择"不限"则对所有实体生效;标签来源于课程中定义的实体标签 |
| 评分角色 | 限定规则适用的参训角色 | 选择"不限"则对所有角色生效;角色来源于课程中定义的参训角色 |
| 分数变化 | 触发时的分值变化 | 正数加分(如 +10),负数扣分(如 -20) |
| 计分模式 | 多次计分 / 单次计分 | 见下方「计分模式」说明 |
| 规则描述与判定依据 | AI 根据此段文字判定事件是否触发 | 最核心的字段,需写明具体的判断条件和场景要求 |
2.3 计分模式¶
- 多次计分(multiple):每次触发都计入分数。如
scoreChange = -10,触发 3 次则总分变化 = -30。适用于可重复发生的行为,如"违规开火"。 - 单次计分(single):无论触发多少次只计一次分。如
scoreChange = -10,触发 3 次总分变化仍为 -10。适用于"是否做了某事"的判定,如"必须报告上级"。
2.4 删除规则¶

- 点击左侧面板的 「删除」 按钮进入批量删除模式


- 勾选要删除的规则(支持按分类全选/半选)

- 点击 「删除」 按钮确认
- 误删时可使用
Ctrl+Z撤销
三、关联章节与剧情节点¶
3.1 为什么需要关联节点?¶
评分时,系统只会用关联节点范围内的事件来判定该规则。如果规则没有关联任何节点,该规则将不会参与评分。
3.2 操作方法¶

- 在左侧面板选中一条规则

- 中间面板会展示课程的章节-剧情树结构

- 点击章节前的展开箭头查看其下属剧情

- 勾选/取消勾选章节或剧情的复选框,即可关联/解除关联

- 关联完成后,剧情节点右侧会显示已关联的规则徽章
3.3 锁定关联配置¶

中间面板顶部的 锁定按钮 可以防止误操作。锁定后复选框变为只读状态,需要点击解锁才能修改关联关系。
3.4 节点背景设定¶

每个章节和剧情节点都有一个 背景设定 按钮(铅笔图标)。点击后可在右侧面板中填写该节点的背景描述。这些背景信息会作为大模型分析时的上下文(Context),帮助 AI 更准确地理解事件发生的场景。
技巧:为关键剧情节点补充详细的背景描述(如场景环境、任务目标、角色关系),能显著提升 AI评分的准确度。
四、AI Copilot 智能规则生成¶
4.1 基本用法¶
底部 AI Copilot 输入框支持通过自然语言指令来批量生成、修改或删除规则:

- 在输入框中输入自然语言指令

- 按
Enter或点击发送按钮

- 系统会将当前课程的所有规则作为上下文发送给 AI

- AI 返回结构化的操作建议(新增/修改/删除)

- 在弹窗中逐条审阅,可选择 采纳 或 拒绝 每一项
4.2 指令示例¶
| 场景 | 示例指令 |
|---|---|
| 新增规则 | "新增一条规则:必须告知被查证人权利,扣30分,单次计分" |
| 批量新增 | "添加以下规则:1. 未佩戴执法记录仪 -15分;2. 未表明身份 -10分;3. 及时疏散群众 +5分" |
| 修改规则 | "把第一条规则的分值改为-20" |
| 删除规则 | "删除过期的规则" |
| 关联节点 | "把'未规范使用警用语言'关联到第1章第1节" |
4.3 审阅与采纳¶
AI 生成的结果会以卡片列表展示,每张卡片包含: - 操作类型(新增/修改/删除) - 规则 ID、名称、分值 - AI 给出的操作原因 - 可展开查看完整详情(分类标签、计分模式、关联节点、规则描述)
操作按钮: - 采纳 — 接受该条变更 - 拒绝 — 丢弃该条变更 - 一键采纳变更 — 接受所有剩余变更 - 放弃剩余变更 — 丢弃所有剩余变更
4.4 操作历史¶

底部栏的 时钟图标 按钮可查看操作历史,记录所有编辑步骤。配合 Ctrl+Z 可逐步撤销操作。
五、评分引擎工作原理¶
理解评分引擎的工作方式,有助于编写出更有效的规则。
5.1 三分路由架构¶
系统采用 Router-Worker Agent 架构,AI 会自动将每条规则归类为三种触发类型之一:
| 类型 | 含义 | 典型规则 | 计分方式 |
|---|---|---|---|
| presence(出现型) | 规则描述一个具体事件,每次发生都独立触发计分 | "人质受伤""击杀敌方""违规开火" | 匹配到事件即按 scoreChange 计分 |
| absence_must_do(必做型) | 规则要求必须履行某行为,只判一次 | "必须报告上级""应告知权利" | 做了→ 0分;没做→ 应用 scoreChange |
| absence_must_avoid(必免型) | 规则要求必须避免某行为,只判一次 | "不得过度使用武力""禁止对人质开火" | 犯了→ 应用 scoreChange;没犯→ 0分 |
5.2 自动路由判定¶
AI Router 会根据规则文字自动判定类型,判定依据为:
- presence:规则是对某情况的命名或具体事件描述,不包含行为要求词
- 例:"人质受伤"、"错误决策"、"维持现场秩序"
- absence_must_do:含"必须/应/应当/要求/及时/需要/保持"等词
- 例:"必须报告上级"、"应及时通知相关人员"
- absence_must_avoid:含"不许/不得/不要/禁止/严禁/避免/杜绝"等词
- 例:"不得过度使用武力"、"严禁聊天"
5.3 计分方向由 scoreChange 正负号决定¶
- 正分(+N):奖励合规行为
- 负分(-N):惩罚违规行为
对于必做/必免型规则,系统会根据 触发类型 + scoreChange 正负号 自动判定计分时机的矩阵:
| 触发类型 | scoreChange | 行为发生(found=true) | 行为未发生(found=false) |
|---|---|---|---|
| must_do | 正分(奖励) | ✅ 得分 | ❌ 不得分 |
| must_do | 负分(惩罚) | ✅ 不扣分 | ❌ 扣分 |
| must_avoid | 正分(奖励) | ❌ 不得分 | ✅ 得分 |
| must_avoid | 负分(惩罚) | ✅ 扣分 | ❌ 不扣分 |
5.4 角色过滤¶
如果规则配置了实体标签(tagsValue)或评分角色(roleValue),系统会在评分前按参训人信息过滤规则,只评估与该参训人相关的规则。
六、规则编写技巧¶
6.1 规则命名 — 让 Router 正确分类¶
规则名称是 Router 判定的核心依据。好的命名能让系统自动识别规则类型:
| 目标类型 | 命名方式 | 示例 |
|---|---|---|
| presence | 用名词短语命名一种情况 | "人质受伤"、"违规开火"、"成功制服嫌疑人" |
| must_do | 用"必须/应当/需"开头 | "必须告知被查证人权利"、"应当佩戴执法记录仪" |
| must_avoid | 用"不得/禁止/严禁"开头 | "不得对平民使用致命武力"、"禁止辱骂当事人" |
避免:模糊的命名如"表现不好"、"操作失误",这些无法被准确分类。
6.2 规则描述 — 决定评分精度¶
description 是 Worker Agent 逐事件比对的核心依据,直接决定评分精度。
好的描述(具体、可判定):
在询问开始时,执法人员是否清楚告知被查证人的法律权利,
包括沉默权、聘请律师权等。如果事件中有明确的告知行为则视为已履行。
差的描述(模糊、不可判定):
执法是否规范
描述编写要点:
- 明确判断标准:写清楚"什么算触发"和"什么不算"
- 指向具体行为:描述具体的可观察行为,而非抽象概念
- 说明上下文要求:如有特定场景限制,在描述中说明
- 避免主观判断:用事实描述替代主观评价
6.3 事件与规则的对应关系¶
系统处理的事件包含以下信息:
| 事件字段 | 内容 |
|---|---|
| 角色 | 行为主体名称 |
| 语音内容 | ASR 语音识别文本 |
| 行为描述 | 自然语言描述的行为 |
| 行为类型/名称/动作 | 结构化逻辑信息 |
让规则与事件匹配更好的技巧:
- 在规则描述中使用与事件字段一致的关键词(如行为类型名称、角色名)
- 如果事件中有特定的行为类型标签,在规则描述中提及该标签
- 规则粒度适中:太宽泛会导致误匹配,太狭窄会遗漏事件
6.4 分值设定策略¶
| 场景 | 建议分值 | 计分模式 |
|---|---|---|
| 致命错误(人质死亡等) | -200 ~ -500 | single |
| 重要违规行为 | -20 ~ -50 | multiple |
| 轻微程序瑕疵 | -5 ~ -10 | single |
| 鼓励性正面行为 | +5 ~ +20 | multiple |
| 关键必做步骤 | -30 ~ -50 | single |
6.5 关联节点策略¶
- 全局规则(如"职业素养"):关联所有章节/剧情,确保全程评估
- 场景特定规则(如"进入前敲门"):仅关联特定剧情节点
- 阶段性规则(如"开场白规范"):关联第一章的相关剧情
注意:未关联任何节点的规则在评分时会被跳过,不会产生任何分数变化。
6.6 组合使用示例¶
以下是一个完整的规则配置示例:
规则 1: 人质受伤
类型: 出现型 (presence)
名称: "人质受伤"
描述: "处置过程中人质受到身体伤害,包括被嫌疑人伤害或被执法人员误伤"
分值: -300
计分: multiple(每次受伤都扣分)
关联: 所有章节
规则 2: 必须报告上级
类型: 必做型 (must_do)
名称: "必须向上级报告现场情况"
描述: "执法人员是否在处置过程中向上级指挥中心报告了现场情况"
分值: -30
计分: single(只判一次)
关联: 第2章、第3章
规则 3: 不得辱骂当事人
类型: 必免型 (must_avoid)
名称: "不得辱骂或侮辱当事人"
描述: "执法人员不得使用侮辱性、歧视性语言对待当事人"
分值: -20
计分: single(只判一次)
关联: 所有章节
评分角色: 警察
七、常见问题¶
Q: 规则创建了但评分时没有效果?¶
检查规则是否已关联到章节/剧情节点。未关联节点的规则不会参与评分。
Q: AI Copilot 生成的规则不太准确?¶
尽量在指令中提供具体的细节(分值、计分模式、关联节点、角色限制),AI 会根据你的描述精确生成。模糊指令会导致 AI 自行推断。
Q: 为什么 Router 把我的规则分类错了?¶
检查规则名称是否包含明确的类型指示词。如"不背离处置初心"可能被归为 presence(情况命名),但"不许背离处置初心"会被归为 must_avoid(禁令)。
Q: 同一规则在多个剧情中都触发了,但只想扣一次分?¶
将计分模式改为 单次计分(single)。
Q: 如何为不同角色设置不同的评分规则?¶
在规则的 实体标签 或 评分角色 字段中选择特定值。同一课程内容可以为不同角色配置不同的规则集。
Q: Ctrl+Z 撤销失效了?¶
撤销功能基于操作栈(OperationStack),每次字段编辑、关联变更都会压栈。如果页面刷新后撤销历史会清空,这是预期行为。