80 lines
4.2 KiB
Markdown
80 lines
4.2 KiB
Markdown
# 多轮上下文结构
|
|
|
|
本文件统一判断当前轮如何依赖前文。多轮本身不是快慢依据;先重建用户当前真正要完成的任务,再由主垂域裁决。
|
|
|
|
## 第一步:判断是否真的依赖前文
|
|
|
|
移除对话历史后,当前 query 的对象、动作、约束和满足方式仍然明确,则:
|
|
|
|
- `CONTEXT_INDEPENDENT`:前文与当前结论无关,按当前 query 的普通垂域规则判断。
|
|
- `context_dependent=false`
|
|
- `context_used=false`
|
|
- `context_relation="independent"`
|
|
|
|
只有省略、指代、确认、修正或补充会改变当前任务解释时,才设置 `context_dependent=true` 和 `context_used=true`。
|
|
|
|
时间相邻、同一 session、相同关键词或上一轮走过某个系统,只能作为同一任务的辅助证据,不能单独证明上下文依赖。
|
|
|
|
## 第二步:重建当前任务
|
|
|
|
只继承完成当前判断所需的最少信息:
|
|
|
|
1. 找到仍在延续的最近一个有效用户任务。
|
|
2. 解析当前轮是在直接执行、补槽、改约束、继续规划,还是回答澄清。
|
|
3. 合并成语义完整的当前任务,但不得继承已经被用户取消、否定或改写的条件。
|
|
4. 前文存在多个可继承候选时,不猜测用户指向。
|
|
|
|
## 继承边界
|
|
|
|
- 当前轮明确说出新对象、新任务或“不是 A,是 B”时,以当前轮为准;被替换的旧信息不得继续保留。
|
|
- 当前轮已经能独立构成完整任务时,不因词面相似强行继承前文。
|
|
- 助手上一轮的追问可以帮助理解用户简短回答,但助手自行猜测、推荐或生成的内容不能当作用户已确认事实。
|
|
- 工具失败、能力不足、拒绝或上一轮实际路由不改变任务的语义快慢;只在能力承接字段中记录。
|
|
- 多段历史都可能被指代且无法唯一选择时,按未消歧处理。
|
|
|
|
## 上下文关系
|
|
|
|
### 可快的关系
|
|
|
|
- `CONTEXT_FAST_RESOLVED_DIRECT`:前文只提供唯一对象、位置、资源或简单槽位,当前轮是直接控制、确定性查询或明确资源切换。设置 `context_relation="resolved_direct"`。
|
|
- `CONTEXT_FAST_OPERATION_CONTINUATION`:用户处于已经明确的操作流中,当前轮执行返回、确认、取消、暂停、继续、切换等直接动作。设置 `context_relation="operation_continuation"`。
|
|
|
|
这两类只是“具备判快条件”。若重建后的完整任务命中垂域慢规则,仍按垂域规则给慢。
|
|
|
|
### 应慢的关系
|
|
|
|
- `CONTEXT_SLOW_CONSTRAINT_EXTENSION`:当前轮新增或修改筛选、排序、比较、排除、路线、场景等约束,需要重新检索或规划。设置 `context_relation="constraint_extension"`。
|
|
- `CONTEXT_SLOW_PLANNING_CONTINUATION`:当前轮继续上一轮的分析、推荐、生成、故障排查或多步规划。设置 `context_relation="planning_continuation"`。
|
|
- `CONTEXT_SLOW_TRUE_DISAMBIGUATION`:结合现有历史后仍有多个真实候选,或关键槽位仍缺失,需要追问或推断。设置 `context_relation="unresolved_reference"`。
|
|
|
|
### 回答澄清
|
|
|
|
- `CONTEXT_CLARIFICATION_COMPLETION`:当前轮只回答系统上一轮的澄清、确认或补槽问题。设置 `context_relation="clarification_completion"`。
|
|
|
|
这类不按“是、不是、确认、取消”等表面词直接定标,而是重建完整任务:
|
|
|
|
- 澄清完成后是明确直接操作或确定性查询,按对应快规则判断。
|
|
- 澄清完成后仍是推荐、规划、故障分析或场景映射,按对应慢规则判断。
|
|
- 无法确认系统究竟在澄清哪个任务时,进入复核。
|
|
|
|
## 历史缺失与复核
|
|
|
|
- `CONTEXT_REVIEW_HISTORY_MISSING`:当前轮明显依赖前文,但输入没有提供足够历史,且不同解释会改变垂域或标签。
|
|
|
|
此时不得凭空补全:
|
|
|
|
```text
|
|
context_relation="unresolved_reference"
|
|
confidence="low"
|
|
review_required=true
|
|
```
|
|
|
|
## 裁决顺序
|
|
|
|
1. 使用本文件识别 `context_relation` 并重建当前任务。
|
|
2. 使用重建后的任务读取主垂域卡。
|
|
3. 主垂域有明确多轮或业务规则时,以垂域规则为最终结论。
|
|
4. 主垂域没有覆盖时,才使用本文件中的 `CONTEXT_FAST_*` 或 `CONTEXT_SLOW_*` 作为结构层结论。
|
|
|
|
禁止根据上一轮实际走快系统还是慢系统直接继承标签。
|