Files
th-hotel-simple/docs/import/20260710/归档/skills/booking-desk-event/references/16-trace-notes.md
2026-07-12 09:57:54 +08:00

8.8 KiB
Raw Blame History

Trace 与预订补充信息

定义

Trace 用于保存当前邮件中与具体预订对象相关、但不属于主任务核心参数的补充业务信息。

补充信息可以是要求、安排、备注或单纯告知。只要当前内容包含具体预订业务信息并能绑定目标,就生成 Trace;不要判断发件人是否明确要求酒店记录、执行或转交。

主任务已经完整表达的核心参数不得重复生成 Trace。例如 New Booking 的入住日期、房型和房量仍属于 New Booking同邮件中的 meeting、meal、arrival notice 或 room preference 才作为补充信息生成 Trace

触发条件

普通 Trace 必须同时满足:

  • 信息来自当前邮件正文、当前附件、当前图片/OCR、当前表格或当前明确继续处理指令。
  • 信息包含具体预订业务内容,不是只有礼貌或收件确认文字。
  • 信息能唯一绑定 group_code、confirmation number、reservation number或能关联同邮件中目标明确的主事件。
  • 信息不属于主任务已经完整承接的核心参数。

历史内容只能补充目标 key 或解释当前信息,不能单独触发 Trace

事件类型固定为:

  • Trace

普通预订补充信息不再输出 NoteNote 仅为旧契约兼容保留,除非后续任务卡映射另有明确规则。

子类型

  • extra_bed:同一 Trace 的全部条目都是 extra bed。
  • general_request:包含任意非 extra-bed 条目,包括 mixed Trace。

Trace 输出

extracted_fields 固定使用:

{
  "trace_subtype": "extra_bed | general_request",
  "trace_text": "<按当前证据顺序合并的完整补充信息原文>",
  "trace_items": [
    {
      "category": "extra_bed | room_preference | room_setup | meeting | function | meal | transport | payment_information | general_information",
      "text_raw": "<单条原文>",
      "service_date": "YYYY-MM-DD | null",
      "service_period_raw": "FULL DAY | null",
      "pax": 110,
      "notify_departments": []
    }
  ],
  "notify_departments": []
}

规则:

  • trace_text 必须完整保留所有补充信息原文,按当前证据中的出现顺序使用换行连接;结构化字段不能替代原文。
  • trace_items 每条补充信息一个 item顺序与 trace_text 一致。
  • category 只能使用上述枚举;没有更具体类别时使用 general_information
  • service_dateservice_period_rawpax 只在当前证据或合法日期上下文可以唯一支持时填写,否则为 null
  • item 的 notify_departments 只保留当前证据明确指定或本规则可以唯一确定的部门;无法确定时使用空数组。
  • 事件级 notify_departments 是所有 item 已知部门的去重合集;全部未知时使用空数组。
  • notify_departments 为空不阻塞 Trace不得仅因此输出人工复核。

General Request

general_request 包括但不限于:

  • Meeting、conference、function、banquet。
  • Meal arrangement。
  • Airport transfer 或其他 transport arrangement。
  • Non-smoking、high floor、away from elevator、same floor 等 room preference。
  • Honeymoon、房间布置、amenity placement 等 room setup。
  • Guide arrival、到店安排、接待信息或其他具体预订补充事实。
  • 已确定的补充付款安排,例如“剩余款项将在入住时支付”。
  • 其他能绑定具体预订对象、且不属于主任务核心参数的补充业务信息。

以上是开放示例,不是封闭白名单。即使当前内容只是告知,没有出现 please noteplease arrangeplease inform 等动作词,也按本规则生成 Trace。

payment_information 只表示已经确定、需要随预订保留的补充付款安排。它不包括付款凭证、到账结果、Payment Notice、Invoice、催款、价格或付款条件审批询问这些内容继续按各自业务规则路由不得为了生成 Trace 任务卡而改名。

例如 New Booking HD260510A 同邮件出现 12/5 FULL DAY Meeting 110 PAX 时,额外生成 linked Trace.general_request,并保留:

{
  "trace_subtype": "general_request",
  "trace_text": "12/5 FULL DAY Meeting 110 PAX",
  "trace_items": [
    {
      "category": "meeting",
      "text_raw": "12/5 FULL DAY Meeting 110 PAX",
      "service_date": "2026-05-12",
      "service_period_raw": "FULL DAY",
      "pax": 110,
      "notify_departments": []
    }
  ],
  "notify_departments": []
}

Extra Bed

Extra bed item 使用通用 item 结构:

{
  "category": "extra_bed",
  "text_raw": "<extra bed 原文>",
  "service_date": null,
  "service_period_raw": null,
  "pax": null,
  "notify_departments": ["FO", "HSK"]
}

同时继续在事件级 extracted_fields 保留原有业务意图字段,不得移动或删除:

{
  "occupancy_update": "3adult",
  "requires_rate_update": true,
  "rate_adjustment_formula": "rate_code_price / 2 * 3"
}

只要合并后的 Trace 包含 extra bed item就保留上述事件级字段全部 item 都是 extra bed 时使用 trace_subtype=extra_bed,否则使用 general_request

硬边界:

  • 不计算最终价格。
  • 不决定 Rate Code。
  • 不把 extra bed 当 room quantity。
  • 不把 U-เตียงเสริม 当 PMS room type。
  • 原始 extra bed price text 只能作为 evidence。

部门规则

现有明确映射继续使用:

  • Non-smoking、high floor、away from elevator、same floorFO
  • Set Honeymoon、房间布置、amenity placement、需要 housekeeping 准备的要求:FO + HSK
  • Extra bedFO + HSK

Meeting、function、meal、transport、payment information 或其他类别没有明确部门映射时使用空数组,交由任务卡用户确认,不输出人工复核。

告知、礼貌文字与审批询问边界

以下当前内容生成 Trace

  • FYI guide will arrive at 20:00 等带有具体预订事实的告知。
  • 已确定的安排或事实,即使没有要求酒店采取动作。

以下内容不生成 Trace

  • 只有 ThanksNotedReceivedFYIconfirmed receipt 或同类礼貌/收件确认,没有任何具体预订业务信息。
  • Booking Confirmation Request、please confirm booking details 或要求酒店核对并回复既有预订。
  • 需要酒店批准或决定的价格谈判、退款、减免、豁免、账期、付款政策或合同条件询问。
  • 例如“剩余款项可以入住时支付吗”属于付款政策审批询问,不是 Trace“剩余款项将在入住时支付”属于已确定的 payment information可以是 Trace。

不符合 Trace 但具有当前业务意义的内容不得静默忽略。必须在 Main Agent 素材包的 unknowns 中保留原文,并使用:

{
  "category": "unhandled_current_business_content",
  "current_or_history": "current",
  "reason_code": "requires_business_approval_or_unsupported_task_card",
  "text_raw": "<当前原文>",
  "case_keys": {
    "group_code": null,
    "confirmation_number": null,
    "reservation_number": null,
    "block_code": null
  },
  "attachments": [],
  "file_references": []
}

同邮件存在至少一个支持事件时,按 03-current-content-completeness.md 输出到业务根对象的 unhandled_current_intents;整封邮件没有支持事件时由 Main Agent 输出 S10。未覆盖意图不是 Trace也不创建任务。

独立、关联与合并

  • 同一封邮件、同一目标对象只生成一个 Trace
  • 同一目标的多条补充信息合并进一个 trace_text 和多个 trace_items
  • 多个 group_code 必须分别生成 Trace不得合并到数组型 case_keys.group_code
  • 独立 Trace 必须由当前证据或允许的历史证据唯一绑定目标。
  • Trace 与 New Booking、Update Booking / Amendment 或 AMEND GROUP CODE 同现时,输出主事件和单独 linked Trace。
  • linked Trace 保留 related_source_event_indexrelated_event_typerelationship_type=linked_tracerequires_downstream_hard_validation=true
  • 不得把 Trace 吞进主事件的普通备注字段。

Cancel 边界

Cancel 行不会因为被取消对象历史上有补充信息就自动生成 Trace。只有当前邮件同时提供新的、需要保留的具体预订补充信息时才生成 Trace。

人工复核

只有以下情况输出 Need Manual Review

  • 当前 Trace 内容不可读,无法保留可靠原文。
  • 当前信息无法唯一绑定目标对象。
  • 历史目标候选冲突。
  • 同邮件存在多个主事件,补充信息无法判断属于哪个目标。
  • current/history 边界不清。
  • extra bed rate update 无法安全附着到目标。

以下情况本身不构成人工复核:

  • notify_departments 不清。
  • service_dateservice_period_rawpax 缺失。
  • 当前信息是要求还是单纯告知不清。