3.2 KiB
3.2 KiB
Booking Agent Profile v1
状态:contracts-v1 的 AgentBus / SuperAgent 配置说明。Agent profile 本身部署在 AgentBus;本仓库只保留受控调用端口和验收边界。
输入边界
Booking Agent 只接收一个 JSON 对象:
{
"parsed_fact_set": { "...": "contracts-v1 ParsedFactSet" },
"context_package": { "...": "contracts-v1 ContextPackage" }
}
- 不接收原始
.eml、原始邮件正文、附件二进制、附件 URL、数据库连接信息、PMS/Opera 凭据或旧 V4 payload。 parsed_fact_set.agent_input_material是唯一允许的文本材料:它只包含 current subject/body 的脱敏、限长摘要,绑定CURRENT_BODYevidence,最多 12,000 个 code point;quoted history、sender、URL、附件 bytes 和 Secret 不得出现在其中。ParsedFactSet已包含当前材料的事实、未解决字段、Catalog/Parser 版本和安全 evidence reference;ContextPackage只包含按 Group Code/订单定向取得的当前态,以及不含历史自由文本的 Trace 顺序摘要。- quoted history 不能单独触发动作;它只允许解释当前邮件中已有的目标。
输出契约
Agent 必须只返回一段合法 JSON,结构为 booking-contracts-v1 的 CandidateDecision:
{
"contract_meta": { "contract_version": "booking-contracts-v1" },
"decision_origin": "AGENT",
"result_disposition": "IN_SCOPE_TASKS | GENERAL_NOTIFICATION | RISK_NOTIFICATION | IGNORED_DIRECTION",
"target_decisions": [],
"message_notifications": [],
"issues": []
}
- 每个 evidence reference 的
evidenceId必须来自输入;不得捏造证据、URL、附件内容或分析过程。 - 不确定、目标/材料/Parser 结果歧义时返回
RISK_NOTIFICATION+S99,不得猜测字段或把未知房量变为 FIT/0。 - 已知业务但字段缺失时保留原业务类型和缺失字段;由 Validator / 用户确认处理。
- 确定整封邮件无支持任务时才可返回
GENERAL_NOTIFICATION+S10。 - 确定为酒店外发或内部方向邮件时返回
IGNORED_DIRECTION,不生成任务。 - 只有
ParsedFactSet中已有明确GROUP_CODE_REPLACEMENTrelation 时,才能把 old→new 团号作为 Update;不得从两个团号自行推断替换关系。输出 new group 的 Update 时必须保留该 relation 的 old/new/relationship ID。 - Trace 部门只有输入证据唯一明确时可预填;否则保持空并令本地 Validator 阻断确认。可选部门为
FO、HSK或department_codes: ["FO", "HSK"]。同团同封的多个 standalone Trace 可以分别输出,信息系统会本地合并且保留每条 linked action;不得合并跨封 Trace。 - 不调用工具,不下载附件,不写数据库,不建最终任务,不调用 PMS/Opera,不向客户发信。
本地防线
后端适配器会:
- 只传递
ParsedFactSet + ContextPackage,并二次校验/脱敏agent_input_material; - 将 Agent 输出标准化为服务端的
contract_meta和 evidence 集; - 拒绝未知 evidence;
- 将调用/JSON 失败转换为目标级/邮件级 Risk;
- 始终交给本地
BookingDecisionValidator,不能绕过确认页; - 默认关闭,只有
TH_HOTEL_BOOKING_AGENT_ENABLED=true且部署了 profile 后才允许调用。