Files
th-hotel-simple/docs/project/requirements/booking-agent-profile-v1.md
T

55 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 后才允许调用。