收口MCP提交为V4契约

This commit is contained in:
andy
2026-07-22 23:43:54 +07:00
parent 68ff9e2b38
commit 5df2910465
21 changed files with 897 additions and 1609 deletions

View File

@@ -416,7 +416,7 @@ V3 建议拆成以下 checkpoint避免一次性重构过大
| M002-V3-CP5 | 同卡复核解阻 | 已完成第一版:支持 review_status、review_resolution.field_overrides[]、复核场景订单归属确认、JSON Pointer 校验和 READY 流转 |
| M002-V3-CP6 | P0 fixtures 回归 | 已完成第一版:引入 0711 P0 fixtures / validator 作为后端适配测试参考,覆盖 main_outcomes、candidate_gate、manual_review_resolution、source_identity_errors、parent_split_two_children、row_multiple_derived、allotment_scope其中 candidate_gate 是 Main Agent 调 Skill 前契约,后端以 validator 和 fixture reference 固化,不作为任务结果回调直接建任务 |
| M002-V3-CP7 | P0.1 Parent Group 路由修订 | 已完成:将 Parent split 父事件从旧 Cancel Booking 迁移为 Cancel Allotment路由总数 42 → 40并保留旧 payload 只读兼容 |
| M002-V3-CP8 | MCP submit 稳定性 | 已完成 review 修正版MCP `th_hotel_submit_task_results` 支持 V3 业务根、结构化 S10/S99 和 V2 兼容V2 item 已暴露完整 schema 并在提交前校验V3 按 `message_events[]` 顺序把 Agent 内部事件 ID 映射为本系统一基 `source_event_index`,返回 `mapping_diagnostics` 但不污染业务 JSONMCP 层只拦 transport 问题event 业务契约问题继续由业务入站层落 `adapter_contract_error` |
| M002-V3-CP8 | MCP submit 稳定性 | 历史已完成M002 V4 后已被 V4-only MCP submit 替代。当前 `th_hotel_submit_task_results` 只接受 `route_code + source_message + order_contexts[] + message_events[]`,旧 V2/V3 payload 返回 `MCP_SUBMIT_V4_REQUIRED`,不再做 V3 事件索引映射或 V2 `ai_task_results[]` 校验 |
| M002-V3-CP9 | 字段控件契约 V1 | 已完成后端第一版:`fields[]` 返回 `control_type/edit_scope/write_target/options_source/raw_readonly/control_hint`,覆盖 room_items、只读证据、S10/S99 只读卡和 type-known manual review 缺失字段控件;前端后续按契约接入 |
## 13. 明确不做
@@ -468,10 +468,10 @@ V3 P0.1 不做以下事项:
- `field_contract_version` 历史迁移已收紧V18 只把没有 `draft_payload_json` 且没有 `confirmed_payload_json``code-v1` 任务卡标记为 `20260711-p0`;已经存在用户草稿或确认 payload 的历史任务卡保留旧版本,等待重新保存、确认或后续专项 backfill。
- 订单 / 任务列表、任务详情、草稿保存、最终确认、OPERA 模拟骨架和审计列表。
- SuperAgent 查询上下文接口 1、2以及邮件会话相关查询。
- MCP `th_hotel_submit_task_results` 的 V3/P0.1 payload adapter 和提交前校验;`E1/E_CHILD_1/E_PARENT` 等 Agent 内部事件 ID 不直接进入业务层,由 MCP adapter 映射为 `1/2/3` 等本系统一基索引,跨 Child Trace / Parent split 多事件关系保留顺序并拒绝悬空或重复引用
- MCP submit V3 成功响应返回 `mapping_diagnostics.source_event_index_mapping[]`,用于排查 Agent 内部事件 ID 到本系统索引的映射;该诊断不写入 AI transition 业务 payload
- MCP submit V2 兼容路径已在 `tools/list` 暴露 `ai_task_results[]` item schema并在 adapter 层校验必填字段、字段类型、允许 `result_type` 和未知字段
- MCP submit 对缺失 `source_message.source_message_id` 或整个 `source_message` 保留业务入站层 `MISSING_SOURCE_MESSAGE_ID` 错误语义;对 V3 event 业务契约问题不提前整批拒绝,由业务入站层保存 `adapter_contract_error` transition。
- MCP `th_hotel_submit_task_results` 的 V3/P0.1 payload adapter 和 V2 `ai_task_results[]` 兼容已作为历史参考废弃;当前 MCP submit 已收口为 M002 V4-only
- 当前 MCP submit 只接受 `route_code + source_message + order_contexts[] + message_events[]`,旧 V2/V3 payload 返回 `MCP_SUBMIT_V4_REQUIRED`,不调用业务写入 Service
- V4-only 模式下 `mapping_diagnostics_json` 通常为空对象;旧 V3 事件 ID 映射不再作为当前联调能力
- V4 event 业务契约问题继续由业务入站层保存 `adapter_contract_error` transitionMCP adapter 只拦 V4 根结构、`source_message` 和附件 transport 形态问题
M002 V4 CP2 设计文档已落地: