146 lines
6.8 KiB
Markdown
146 lines
6.8 KiB
Markdown
# **评分智能体(法官)模板 | 使用说明书 V1.0**
|
||
|
||
## **1. 智能体概述**
|
||
|
||
**名称:** 评分智能体(代号:“法官”)
|
||
**角色:** 文枢高级评价官 (Wenshu Senior Evaluation Officer)
|
||
**核心使命:** 本智能体的核心使命是扮演一个严谨、客观、公正的**“司法者”**。它接收**学生作文**、由“检察官”生成的**《具体评分规则》**以及作文的**元数据**,然后严格依据规则,对作文进行全面的定性评估和定量评分,最终输出一份详尽、结构化的综合评估报告。
|
||
|
||
它是一个纯粹的**规则执行引擎**。它的所有判断都严格基于输入的规则,不受任何外部知识或偏好影响,确保了评分过程的**绝对公正、一致和透明**。
|
||
|
||
## **2. 核心功能**
|
||
|
||
* **循证评估:** 严格遵循“规则 -> 证据 -> 推理 -> 结论”的逻辑,对作文的每一个评估点进行打分,并提供来自原文的证据支撑。
|
||
* **双重检查:** 同时执行对作文**内容质量**的深度评估和对**形式要求**的合规性检查。
|
||
* **自动计分:** 内置完整的计分逻辑,能够根据评估结果和扣分项,自动计算出各维度得分、内容质量分和最终得分。
|
||
* **结构化报告:** 输出一份详尽的JSON格式报告,完整记录了每一个评估点的评级、理由、证据,以及最终分数的完整计算过程。
|
||
|
||
## **3. 输入规范**
|
||
|
||
“法官”智能体需要**三个独立部分**作为输入才能开始工作。这三部分共同构成了它进行审判所需的全部“卷宗”。
|
||
|
||
1. **`学生作文文本 (student_essay_text)`**
|
||
* **类型:** `String` (字符串)
|
||
* **内容:** 学生作文的纯文本内容,应包含标题和正文。
|
||
|
||
2. **`具体评分规则JSON (scoring_rubric_json)`**
|
||
* **类型:** `JSON Object` (JSON对象)
|
||
* **来源:** **必须**是“检察官”智能体针对本次作文任务生成的、未经任何修改的完整JSON输出。
|
||
* **关键作用:** 这是“法官”进行审判的**唯一法典**。它包含了所有评估标准、计分模型和检查指令。
|
||
|
||
3. **`作文元数据对象 (essay_metadata_object)`**
|
||
* **类型:** `JSON Object` (JSON对象)
|
||
* **来源:** 这部分数据需要由外部工具或系统在调用“法官”智能体**之前**预先处理并提供。**“法官”自身不负责统计这些数据。**
|
||
* **关键作用:** 为形式要求检查提供客观、确定的数据依据。
|
||
* **必填字段:**
|
||
* `word_count`: (Number) 作文的总字数。
|
||
* `has_title`: (Boolean) 作文是否有标题 (`true` 或 `false`)。
|
||
* `typo_count`: (Number) 作文中错别字的数量。
|
||
* *(可根据`formal_requirements_check`中的要求扩展其他字段)*
|
||
|
||
**输入结构概览 (在实际调用时,这三部分可能是API请求的不同参数):**
|
||
|
||
```
|
||
// 输入 1: 学生作文文本
|
||
student_essay_text = "青年的担当\n何为担当?范仲淹说‘先天下之忧而忧’..."
|
||
|
||
// 输入 2: 具体评分规则JSON
|
||
scoring_rubric_json = {
|
||
"global_rules": { ... },
|
||
"task_specific_rule": {
|
||
"evaluation_list": [ ... ],
|
||
"formal_requirements_check": [ ... ]
|
||
}
|
||
}
|
||
|
||
// 输入 3: 作文元数据对象
|
||
essay_metadata_object = {
|
||
"word_count": 856,
|
||
"has_title": true,
|
||
"typo_count": 2
|
||
}
|
||
```
|
||
|
||
## **4. 输出详解**
|
||
|
||
“法官”执行成功后,将输出一份单一的、结构化的JSON报告。该报告全面记录了本次评分的所有细节。
|
||
|
||
**输出结构核心:**
|
||
|
||
```json
|
||
{
|
||
"evaluation_details": [
|
||
// ... 包含了对 evaluation_list 中每一个评估点的详细定性评估报告 ...
|
||
],
|
||
"scoring_summary": {
|
||
// ... 包含了所有定量评分结果和计算过程 ...
|
||
}
|
||
}
|
||
```
|
||
|
||
* **`evaluation_details`**: 这是一个数组,详细记录了**定性评估**的过程和结果。
|
||
* 数组中的每一个对象都对应`evaluation_list`中的一个评估任务。
|
||
* 每个对象都严格遵循`output_standard`格式,包含`rating` (A/B/C/D), `reasoning` (评级理由), 和 `evidence` (原文证据)。
|
||
|
||
* **`scoring_summary`**: 这是一个对象,清晰展示了**定量评分**的完整链条。
|
||
* `dimension_scores_100`: 各个维度的百分制平均分。
|
||
* `weighted_total_score_100`: 加权后的百分制内容总分。
|
||
* `quality_score`: 换算后的实际内容质量得分。
|
||
* `deductions`: 一个对象,详细列出了每一个形式检查项的扣分值和原因。
|
||
* `total_deduction`: 形式要求的总扣分。
|
||
* `final_score`: **最终得分** (`quality_score` - `total_deduction`)。
|
||
|
||
## **5. 使用示例 (端到端流程)**
|
||
|
||
**第一步:准备输入材料**
|
||
|
||
1. 获取**学生作文**的纯文本。
|
||
2. 使用“检察官”智能体生成本次任务的**《具体评分规则》JSON**。
|
||
3. 使用外部工具(如字数统计脚本)处理学生作文,生成**`作文元数据对象`**。例如,统计出字数为856,有标题,有2个错别字。
|
||
|
||
**第二步:调用“法官”智能体**
|
||
|
||
将上述三份材料作为输入,调用智能体。
|
||
|
||
**第三步:接收并解读输出(片段示例)**
|
||
|
||
您将收到一份完整的评估报告JSON。其中,`scoring_summary`部分可能会是这样:
|
||
|
||
```json
|
||
"scoring_summary": {
|
||
"dimension_scores_100": {
|
||
"思想内容": 92.5,
|
||
"结构逻辑": 85.0,
|
||
"语言表达": 88.0,
|
||
"视野与素养": 90.0
|
||
},
|
||
"weighted_total_score_100": 89.43,
|
||
"quality_score": 53.66,
|
||
"deductions": {
|
||
"标题检查": {
|
||
"deduction_value": 0,
|
||
"comment": "作文存在标题。"
|
||
},
|
||
"字数检查": {
|
||
"deduction_value": 0,
|
||
"comment": "作文字数为856,符合'不少于800字'的要求。"
|
||
},
|
||
"错别字检查": {
|
||
"deduction_value": 2,
|
||
"comment": "发现2个错别字,根据'每字扣1分'的规则,扣2分。"
|
||
}
|
||
},
|
||
"total_deduction": 2,
|
||
"final_score": 51.66
|
||
}
|
||
```
|
||
|
||
**解读:** 这份报告清晰地展示了作文在内容上表现优异(内容分53.66/60),但在形式上因错别字被扣2分,最终得到51.66分。整个评分过程透明、可追溯。
|
||
|
||
## **6. 最佳实践与注意事项**
|
||
|
||
* **输入一致性:** `作文元数据对象`中的字段必须与《具体评分规则》中`formal_requirements_check`部分的要求相对应。例如,如果规则中有“错别字检查”,那么元数据中就必须提供`typo_count`。
|
||
* **规则的权威性:** 绝对不要手动修改“检察官”生成的JSON规则。任何调整都应通过优化“检察官”的提示词或其输入来实现。
|
||
* **外部工具依赖:** “法官”的准确性部分依赖于外部工具提供的元数据的准确性。请确保用于生成`essay_metadata_object`的工具是可靠的。
|
||
* **原子化任务:** “法官”被设计为执行一次性的、无状态的评分任务。它不记忆历史评分记录,每次调用都是一次全新的、独立的审判。
|