55 lines
3.2 KiB
Markdown
55 lines
3.2 KiB
Markdown
# Booking Agent Profile v1
|
||
|
||
> 状态:contracts-v1 的 AgentBus / SuperAgent 配置说明。Agent profile 本身部署在 AgentBus;本仓库只保留受控调用端口和验收边界。
|
||
|
||
## 输入边界
|
||
|
||
Booking Agent 只接收一个 JSON 对象:
|
||
|
||
```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_BODY` evidence,最多 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`:
|
||
|
||
```json
|
||
{
|
||
"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_REPLACEMENT` relation 时,才能把 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,不向客户发信。
|
||
|
||
## 本地防线
|
||
|
||
后端适配器会:
|
||
|
||
1. 只传递 `ParsedFactSet + ContextPackage`,并二次校验/脱敏 `agent_input_material`;
|
||
2. 将 Agent 输出标准化为服务端的 `contract_meta` 和 evidence 集;
|
||
3. 拒绝未知 evidence;
|
||
4. 将调用/JSON 失败转换为目标级/邮件级 Risk;
|
||
5. 始终交给本地 `BookingDecisionValidator`,不能绕过确认页;
|
||
6. 默认关闭,只有 `TH_HOTEL_BOOKING_AGENT_ENABLED=true` 且部署了 profile 后才允许调用。
|