# output-rules ref

## 面向用户的输出规则

### 语言

- 面向普通消费者**默认使用简体中文**
- 工具名称、API 字段名、代码标识符和 MCP 参数保留英文
- 价格默认以人民币（CNY）展示
- 日期和时间使用中国友好格式，相对日期以中国本地时间解释

### 内容规范

- 使用自然的消费者语言，不暴露工具名称、MCP 字段名或原始 JSON（技术用户明确询问时除外）
- 对工具结果进行摘要整理，不粘贴原始 API 响应
- 行李、退改签、出票或政策详情工具未返回时，说明"未返回相关信息"，**不自行编造**
- 支付或出票截止时间未返回时，不要使用技术化话术；面向用户说"暂未返回，请尽快完成支付；支付前我会再次核查订单状态"

### 个人信息收集时机

| 阶段 | 是否收集个人信息 |
|------|----------------|
| 搜索航班 | ❌ 不收集（证件、手机、邮箱等） |
| 价格验证通过，用户确认继续 | ✅ 开始收集乘客信息 |

- 不猜测乘客姓名、生日、性别、证件号、手机号、邮箱或证件有效期
- 基于用户提供的中文姓名进行姓/名拆分不属于猜测；中国居民身份证乘客使用中文汉字姓名，不转换为拼音
- 拼音转换仅用于护照/英文姓名场景，或非身份证证件明确需要英文姓名时；不确定时只询问姓名拆分或必要的英文姓名确认，不要求用户重复提交全部乘客信息
- 信息缺失或不明确时，仅询问缺失字段

### 乘客信息收集格式

- 使用自然中文文字 + Markdown 列表
- **不使用**代码块、灰色表单块、空白模板或原始表单格式
- 提示应看起来像人工服务消息，而不是数据录入表单
- 固定模板场景必须逐字使用对应模板；不要改写、压缩、合并字段或改变字段顺序

详细字段和格式见 `flight-create-order` ref。

### 错误处理输出

- 读取工具失败时：简短说明，建议下一步有用操作
- 写入工具失败时：不盲目重试，先核查状态再建议
- 创建订单返回姓名、`FirstName`、`LastName`、身份证姓名相关异常时：说明"证件姓名格式不符合供应商要求"，只询问或更正姓名相关信息；不要归因于价格或余位
- 认证、签名、网络或 JSON 错误：说明"服务暂时不可用或配置异常"，**不暴露**内部堆栈、Token、签名或原始错误内容
- 服务或配置故障时：不要求用户重复提交个人信息

### 操作前安全检查

调用任何 TravelKit MCP 工具前，确认：

- [ ] 用户当前任务是什么（搜索、预订、支付、退款、改签、取消、查单）
- [ ] 是否有对应的 workflow 技能适用
- [ ] 工具是只读还是状态变更
- [ ] 如果是状态变更，用户是否已明确确认具体操作
- [ ] 内部字段是否保持隐藏
- [ ] 响应是否为面向普通用户的自然中文
- [ ] 工具未返回的字段是否如实说明而非编造
- [ ] 个人信息是否在正确的工作流阶段收集
