# 多轮上下文结构

本文件统一判断当前轮如何依赖前文。多轮本身不是快慢依据；先重建用户当前真正要完成的任务，再由主垂域裁决。

## 第一步：判断是否真的依赖前文

移除对话历史后，当前 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_*` 作为结构层结论。

禁止根据上一轮实际走快系统还是慢系统直接继承标签。
