Files
th-hotel-simple/docs/project/requirements/M012-fixed-channel-parsing-agent-v1-contract.md
T
鲨鱼辣椒 694c4317a3 checkpoint: complete recoverable V2 pre-separation baseline
Complete the selective V2 checkpoint with its minimal AgentBus, object-storage, replay persistence, and validated-workbench shared dependency closure.
2026-08-20 17:09:00 +08:00

7.0 KiB
Raw Blame History

M012 / QBD+LianTai 共享 Parsing Agent v1.0 契约

项 内容
状态 IMPLEMENTED OFFLINE — v1.0 pre-release correction applied; runtime pending
契约 fixed-channel-parsing-agent-v1
Agent 版本 fixed-channel-core-parsing-agent-v1.0
渠道 QBD、LianTai
Profile QBD_CORE_V1_0、LIANTAI_CORE_V1_0
发布 HOLD / INTERNAL_ONLY
Main Prompt 独立中文 v1.0,不进入 Skill 读取链或 .skill
运行时 未接 Provider、AgentBus、Merger、Booking Agent、PMS 或 Opera

1. 分层职责

Current/History + fixed-channel-parser-fact-material-v1
→ shared Parsing Agent v1.0(中立来源结构)
→ local Merger/Validator(STRUCTURED_MENTION 有效视图)
→ Layer 5 Booking Agent(业务类型、Trace、linked action、部门候选)
→ Layer 6 Validator / 员工确认

Parsing Agent只负责来源内容的结构化提取。Parser facts是只读输入;Agent不得删除、覆盖或伪装成 Parser事实。Parsing Agent不判断最终业务类型、是否形成Trace、linked action或负责部门。

2. 输入与调用前门禁

  • 完整Current subject/body和系统预生成的稳定evidence registry;
  • 完整、严格有序且不含附件信息的History body;
  • 当前附件全部Parser Results,遵循fixed-channel-parser-fact-material-v1;
  • 系统显式授权的Current-only fallback;Parser FAILED时不得携带partial facts/materials;
  • channel_code、profile_code及全部版本字段作为已验证审计元数据。

QBD/LianTai渠道/Profile精确配对、版本栅栏、未知字段和引用闭合由JSON Schema及本地调用前校验器负责。 Main Prompt只要求使用系统选定Profile,不重复白名单判断,也不得从正文改判渠道。

Evidence ID由source message、revision、区段、Unicode code-point span、文本Hash和evidence schema version 稳定生成。Agent只能引用输入已有ID。

3. 输出顶层结构

结果是严格JSON,必需数组为:

  • agent_targets[]:正文-only目标候选;
  • candidate_facts[]:仅冻结十类公共fact role的附加候选;
  • target_bindings[]:正文目标到唯一Parser target的关联;
  • relationships[]:例如Allotment source-to-actual;
  • structured_mentions[]:中立的来源服务结构;
  • display_information[]:员工需要知晓的原文、范围和顺序;
  • material_dispositions[]:每个Parser/fallback material恰好一次处置;
  • review_requests[]:冲突、目标不唯一、必要参数不清或fallback不足。

Agent不输出effective_facts[]或review_items[]。

4. structured_mentions[]

每项固定包含:

字段 规则
mention_id 本次结果内唯一ID
scope MESSAGE或TARGET
target_ref 消息级必须为空;目标级必须引用已知目标
semantic_type EXTRA_BED / HONEYMOON_SETUP / ROOM_SETUP / NAME_SIGN / MEETING_ROOM / OTHER_SERVICE
source_text 来源原文,不改写
source_room_ref 可为空;有值时必须引用已知来源房型项
quantity 可为空;有值时为正整数
source_label、sequence 准确来源类型和顺序
evidence_refs[] 只引用已登记Current evidence
material_refs[] 来自Parser/fallback material时必须同时引用material ID

Parsing Agent可以提取“加床、数量2、关联某来源房型”等已知结构,但不得称其为Trace或分配部门。 必要参数不完整时保留已知结构并生成review_request,不得猜数量、房型或目标。

5. 业务与证据规则

  • 绑定具体Tour Code的附件Parser action优先于邮件级subject/body action;同Tour Code冲突时保留Parser fact并review。
  • Current明确New/Update/Cancel可形成SOURCE_ACTION_KIND来源候选,但不是最终action_kind或业务事件。
  • History只能辅助,不能单独产生本次fact、structured mention、display或relationship。
  • FINAL、LINE、办公室付款、已确认和普通非动作信息原文进入display_information[],不继续拆参数或动作。
  • 唯一目标才可目标级绑定/展示;无Tour Code保持消息级;点名但不能唯一关联则review。
  • 每个material只能是CONSUMED、PARTIALLY_CONSUMED_REVIEW、REVIEW_REQUIRED或REDUNDANT_WITH_PARSER_FACTS。
  • 缺价格不猜价格,不输出GRPA1。

6. 禁止的Parsing Agent输出

结果在任何层级都不得出现business_type、最终action_kind、Trace字段、部门字段、linked action、 CandidateDecision或TaskCard;也不得输出FIT/GROUP、canonical Room/Rate、库存/预订状态或外部副作用指令。

未来Merger只能把合法mention以中立STRUCTURED_MENTION带入有效视图,不得在Layer 3转换为Trace或部门。 Layer 5 Booking Agent决定是否形成TRACE_RESERVATION_NOTES并提出部门候选;证据不明确时部门留空, 由Validator阻断并交员工确认。

7. Skill交付边界

  • .skill固定包含15个标准Skill成员;包格式只使用.skill,不创建.skll。
  • prompts/main-prompt.md是独立中文资产,不属于Skill读取链、archive或成员Hash。
  • Main Prompt明确要求完整解析Current主题/正文,并按顺序完整阅读系统提供的全部History正文;Agent不得自行 筛选、截断或判断某封History是否可用,但History仍只能辅助理解Current。表格侧逐项读取只读facts[]与 必须处置的agent_materials[],不接收整份工作簿无界文本。
  • Main Prompt SHA-256:8ad0a914c1596563122d94efff084419204524c6fa48acc721704d6b3786b5f6。
  • 当前确定性.skill SHA-256:94bb65b6a7af75b1c6e5edf5496d3c66e12058362a735c2402136628e91ba22d。
  • 本次包Hash变化仅来自Skill中邮件/表格完整读取说明及其防回退校验;三份Schema、fixtures业务结果、独立 Main Prompt、Agent/Parser版本和15成员集合均未改变。
  • 包和sidecar保持HOLD/INTERNAL_ONLY;不代表真实Profile发布或运行时接线。
  • 本次发布前纠错原地替换旧Trace/部门输出契约,不创建v1.1或双写兼容。
  • 2026-08-12 runtime integration preflight确认Parser业务/Java契约允许message-level material的 target_ref=null,而包内Parser dependency schema误写为只允许对象。因v1.0从未发布且持续HOLD,按同一 pre-release correction原则原地修正为“字段必有、值可空”;Parser fact target仍必须为对象,Main Prompt不变。
  • 2026-08-12 CP1双侧request preflight进一步发现canonical evidence的QBD 3段、LianTai 4段Unicode span 与完整原文错位或越界;已只纠正synthetic fixture坐标,并让Python/Java都强制source identity、span不越界、 exact source slice。Agent expected result、Main Prompt、业务规则、15成员和HOLD/INTERNAL_ONLY均不变。

8. 固定非范围

不修改任何Server Java、Parser/Core/Profile/DTO、Merger运行时、Provider、AgentBus、数据库、前端或真实 Booking Agent Profile;不调用PMS、Opera或任何外部业务系统。