修正SuperAgent任务结果来源消息定位
This commit is contained in:
@@ -70,13 +70,13 @@ V3 以以下资料和决策为输入:
|
||||
后端处理时按以下路径反查:
|
||||
|
||||
```text
|
||||
系统酒店 + source_provider + source_channel + source_message.source_message_id
|
||||
系统酒店 + source_message.source_message_id
|
||||
→ platform_source_message_inbox.external_message_id
|
||||
→ platform_source_message_inbox.id
|
||||
→ workflow / task / transition 表内部 source_message_id 外键
|
||||
```
|
||||
|
||||
V3 第一版继续使用单酒店阶段的系统默认酒店;后续多酒店或权限收口时再扩展显式酒店上下文。
|
||||
V3 第一版继续使用单酒店阶段的系统默认酒店;后续多酒店或权限收口时再扩展显式酒店上下文。SuperAgent 不需要传数据库层 provider/channel,`source_message.source_channel=Email` 只是上游消息渠道语义;后端以 SourceMessage Inbox 的真实入库 provider/channel 为准。同一系统酒店下如果出现多条相同 `external_message_id`,后端返回 `SOURCE_MESSAGE_AMBIGUOUS`,不随机选择。
|
||||
|
||||
### 4.2 缺少 source_message_id
|
||||
|
||||
@@ -181,7 +181,9 @@ V3 第一版必须保存并支持以下路由类别:
|
||||
- `Note`、`Allotment Maintenance`、`update_allotment_control_block` 仅历史兼容,不允许新数据生成。
|
||||
- 当前 producer 不允许再生成 `normal_task/manual_review + Cancel Booking + linked_parent_release_after_child_split`。
|
||||
- `relationship_type=linked_parent_release_after_child_split` 只用于 Parent / Child 关联和 Preflight,不再决定 `task_subtype`。
|
||||
- 旧 V2 兼容 `ai_task_results[]` 若继续提交 `Cancel Booking + linked_parent_release_after_child_split`,也按当前 producer 契约错误处理。
|
||||
- 旧 V2 兼容 `ai_task_results[]` 若继续提交 `Cancel Booking + linked_parent_release_after_child_split`,按请求级 `ADAPTER_CONTRACT_ERROR` 拒绝,不创建业务任务,也不创建 AI transition。
|
||||
- Parent 只提供 `group_code` 或只提供 `block_code` 时,adapter 可以在派生副本中补齐另一边用于路由和落库;原始 payload 不回写。
|
||||
- Parent 的 `group_code` 与 `block_code` 原始候选冲突时不猜测。若 SuperAgent 已输出 `manual_review.reason_code=target_object_unclear` 且 `context_used.parent_identity_candidates[]` 非空,创建同卡 type-known manual review;否则写入 adapter contract error。
|
||||
|
||||
P0.1 Parent Group 路由规则:
|
||||
|
||||
@@ -189,8 +191,11 @@ P0.1 Parent Group 路由规则:
|
||||
| --- | --- | --- |
|
||||
| Child Group 创建 | `normal_task/manual_review + New Booking + new_group_block` | 创建 New Booking 业务任务 |
|
||||
| Parent Group 完整释放 / 取消 | `normal_task/manual_review + Cancel Allotment + cancel_allotment_control_block` | 创建 Cancel Allotment 业务任务卡 |
|
||||
| 旧 Parent split 新入站 | `Cancel Booking + linked_parent_release_after_child_split` | `adapter_contract_error`,不创建业务任务 |
|
||||
| 旧 Parent split 新入站 | V3 `Cancel Booking + linked_parent_release_after_child_split` | 按 event 写入 `adapter_contract_error`,不创建业务任务 |
|
||||
| 旧 Parent split V2 兼容入口 | V2 `ai_task_results[]` 中的 `Cancel Booking + linked_parent_release_after_child_split` | 请求级 `ADAPTER_CONTRACT_ERROR` 拒绝,不创建业务任务 / AI transition |
|
||||
| 重复 Parent 候选 | 同一 Parent Group 再次输出合法 Parent 候选 | 第二个及后续 Parent 写入 `adapter_contract_error` |
|
||||
| Parent key 单边缺失 | `group_code` 或 `block_code` 仅有一边 | 在派生副本中补齐另一边,继续创建 Cancel Allotment 业务任务卡 |
|
||||
| Parent key 候选冲突 | 双 key 无法安全归一,且 `target_object_unclear + parent_identity_candidates[]` 完整 | 创建 Cancel Allotment 同卡人工复核任务 |
|
||||
| 历史旧 payload 只读展示 | `Cancel Booking + linked_parent_release_after_child_split` | reader / adapter 展示层可归一为 Cancel Allotment,不改写原 payload |
|
||||
|
||||
### 7.2 方案 C:AI 三元组和系统处理分类分离
|
||||
@@ -422,6 +427,7 @@ V3 P0.1 不做以下事项:
|
||||
- 结构化 `S10/S99` 入站处理,复用 `SOURCE_MESSAGE_ONLY` 只读特殊任务。
|
||||
- 40 条 P0.1 路由枚举 / 稳定配置。
|
||||
- V3 业务根 `source_message + message_events[]` 基础解析;能派生到稳定路由的 event 创建业务任务,无法派生的 event、显式 `contract_errors`、根 `missing_fields`、不完整 `manual_review`、当前 producer 旧 Parent Cancel Booking 和不完整 parent split 候选只落 `adapter_contract_error` transition。
|
||||
- P0.1 Parent split 已支持单边 Parent key 归一;Parent key 候选冲突且符合 `target_object_unclear + parent_identity_candidates[]` 时进入同卡 type-known manual review,不再误判为 adapter contract error。
|
||||
- `unhandled_current_intents[]` 只落 `UNHANDLED_CURRENT_INTENT` transition,不创建订单和任务,也不伪装成 adapter 契约错误。
|
||||
- AI transition 最小保存 `route_code`、`system_process_category`、`adapter_error_code`、`adapter_error_message`。
|
||||
- 任务列表、订单任务时间线和任务详情顶层透出 `result_type`、`ai_task_type`、`task_subtype`、`route_code`、`system_process_category`。
|
||||
|
||||
Reference in New Issue
Block a user