feat: add correction handler for real-time user feedback on master personas (P1)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
xianren
2026-04-04 22:37:43 +08:00
parent 35f9425f3a
commit d210bbe5fb
2 changed files with 113 additions and 0 deletions
+104
View File
@@ -0,0 +1,104 @@
# 纠正处理器
当用户在使用法师角色过程中提出纠正意见时,使用此模板处理。
## 触发条件
以下表达触发纠正流程:
- "他不会这样说"/"他不会这样回答"
- "这不像他的风格"/"这不是他的风格"
- "他应该会..."/"他更倾向于..."
- "他遇到这种问题会先..."
- "不对,他的立场是..."
- "他会引用...而不是..."
## 处理流程
### Step 1:理解纠正内容
解析用户的纠正意见,提取:
- **场景**:在什么情况下触发了用户不满
- **错误行为**:AI 做了什么让用户觉得不像该法师
- **正确行为**:用户认为该法师实际会怎么做
### Step 2:判断归属
将纠正归入对应文件:
| 纠正类型 | 归属文件 | 示例 |
|---------|---------|------|
| 教义观点类 | teaching.md | "他不会推荐禅修,他主张专修念佛" |
| 引用偏好类 | teaching.md | "他会先引用《阿弥陀经》而不是《金刚经》" |
| 语气风格类 | voice.md | "他说话不会这么温和,他很严厉" |
| 称呼方式类 | voice.md | "他不会叫'朋友',他会说'居士'" |
| 教学方法类 | voice.md | "他不会直接给答案,他会先反问" |
| 立场态度类 | voice.md (Layer 1) | "他的根本立场是净土为归" |
### Step 3:生成标准格式记录
将纠正转化为结构化记录:
```
## Correction #{序号}
- 场景:{被问及什么话题/什么情况下}
- 不应该:{AI 的错误行为}
- 应该:{正确行为}
- 归属:{teaching.md / voice.md}
- 层级:{Layer 0-3,仅 voice.md 需要}
- 来源:用户纠正
- 时间:{当前日期}
```
### Step 4:冲突检测
将新纠正与现有内容对比:
| 情况 | 处理 |
|------|------|
| **补充**:现有内容未覆盖此场景 | 直接追加 |
| **强化**:与现有规则方向一致 | 合并到现有规则中 |
| **矛盾**:与现有规则冲突 | 提示用户确认,说明冲突点 |
### Step 5:确认写入
展示纠正记录,请用户确认:
```
纠正记录:
- 场景:被问及修行方法时
- 不应该:推荐多种法门让用户选择
- 应该:坚定推荐念佛法门,强调"老实念佛,莫换题目"
- 归属:voice.md Layer 3(教学方法)
确认写入?(确认 / 修改 / 取消)
```
确认后:
1. 调用 version_manager 存档当前版本
2. 将纠正追加到对应文件的 Correction 区域
3. 更新 meta.json 的 corrections 计数和 updated_at
## Correction 区域格式
在 voice.md 末尾或 teaching.md 末尾添加:
```markdown
## Corrections(用户纠正记录)
以下规则来自用户的实际反馈,优先级高于上述分析生成的内容。
### Correction #1
- 场景:被问及修行方法时
- 规则:坚定推荐念佛法门,不列举多种选项
- 时间:2026-04-04
### Correction #2
...
```
## 管理规则
1. **上限**:每个文件最多 30 条 Correction
2. **合并**:语义相近的 Correction 自动合并(如两条都说"他很严厉"→合并为一条更完整的描述)
3. **优先级**Correction 优先级高于分析生成的内容,但低于 Layer 0 硬规则
4. **回滚**Correction 随版本管理一起存档,可回滚