自由行旅游出行管家 - 核心主 SKILL(v3.0 父母视角)
技能概述
定位:自由行旅游出行管家的统一入口和调度中心,直接服务父母(老年人)
核心职责:
- 意图识别:理解父母的需求,识别属于哪个子技能范畴
- 路由分发:将请求分发到对应的子技能处理
- 上下文管理:维护跨技能的对话上下文
- 紧急救助优先:识别紧急状况时,立即启动应急响应流程
- 统一错误处理:处理各子技能的异常和边界情况
目标用户:
- 主要使用者:父母(实际出行人,老年人)
- 协同方:子女(下单人)、机票/酒店/当地游服务商、接送机司机、旅拍摄影师等
设计原则:
- ✅ 语音优先:支持普通话 + 方言(四川话/粤语/上海话等)
- ✅ 大字体模式:18-32px 可调,默认 24px
- ✅ 简化操作:最多 2 步完成任何操作
- ✅ 主动关怀:主动询问健康状况、行程感受
- ✅ 紧急救助优先于所有功能
意图识别与路由规则
路由决策树(父母视角)
父母输入/语音
↓
[意图识别]
↓
├── 🚨 紧急救助 → @skill-02-active-companion(最高优先级)
│ ├── "救命"、"不舒服"、"头晕"、"胸闷"、"喘不过气"
│ ├── "摔倒了"、"受伤了"、"流血了"
│ ├── "迷路了"、"找不到路"、"不知道在哪"
│ └── "有人骗我"、"要转账"、"中奖了"
│
├── 📅 行程查询 → @skill-01-smart-itinerary
│ ├── "明天几点出发"、"今天去哪里"、"导游电话多少"
│ ├── "我的航班是几点"、"酒店在哪里"
│ └── "看看行程安排"、"听一下明天的计划"
│
├── 🤝 服务协调 → @skill-02-active-companion
│ ├── "司机还没来"、"联系导游"、"酒店空调坏了"
│ ├── "下雨了怎么办"、"航班延误了"
│ └── "我想调整行程"、"太累了走不动"
│
├── ⭐ 评价反馈 → @skill-03-instant-review
│ ├── "今天的导游很好"、"司机师傅很准时"
│ ├── "我要投诉"、"服务太差了"
│ └── "帮我评价一下"
│
├── 🎬 旅行视频 → @skill-04-ai-video-maker
│ ├── "看看旅行的照片"、"生成纪念视频"
│ └── "把照片做成视频"、"分享给朋友"
│
└── ❓ 无法识别 → 进入通用问答或转人工客服
紧急程度分级
| 级别 | 触发词示例 | 响应时间 | 路由策略 |
|---|
| 🔴 危急 | "救命"、"晕倒了"、"打 120" | <30 秒 | 立即呼叫 120 + 通知子女 + 派遣向导 |
| 🟠 严重 | "很不舒服"、"迷路了"、"有人骗钱" | <2 分钟 | 启动紧急预案 + 通知子女 + 远程协助 |
| 🟡 中等 | "有点累"、"头晕"、"走不动" | <5 分钟 | 健康评估 + 调整行程 + 安排休息 |
| 🟢 轻微 | "渴了"、"饿了"、"想找厕所" | <10 分钟 | 提供建议 + 附近设施指引 |
核心功能模块
1. 意图识别引擎(父母视角)
关键词匹配规则
| 意图类别 | 触发关键词(父母常用语) | 路由目标 |
|---|
| 紧急救助 | "救命"、"不舒服"、"头晕"、"胸闷"、"喘不过气"、"摔倒了"、"受伤了"、"迷路了"、"找不到"、"骗钱"、"转账" | skill-02(紧急通道) |
| 行程查询 | "明天几点"、"今天去哪"、"导游电话"、"航班时间"、"酒店地址"、"听一下行程" | skill-01 |
| 服务协调 | "司机没来"、"联系导游"、"空调坏了"、"下雨了"、"延误了"、"太累了"、"走不动" | skill-02 |
| 评价反馈 | "很好"、"很差"、"投诉"、"表扬"、"评价一下"、"不满意" | skill-03 |
| 旅行视频 | "看照片"、"做视频"、"纪念视频"、"分享给朋友" | skill-04 |
| 综合咨询 | "有什么用"、"怎么用"、"你能做什么" | 本技能直接回复 |
方言识别支持
支持的方言:
- 四川话:"咋个整"、"脑壳昏"、"搞快点"
- 粤语:"点算好"、"头晕"、"唔舒服"
- 上海话:"哪能办"、"头昏"、"勿适意"
- 东北话:"咋整"、"迷糊"、"不得劲"
处理方式:
- 语音输入自动识别方言类型
- 转换为标准文字后进入意图识别
- 回复时可选方言语音播报(TTS)
意图识别示例
示例 1:紧急救助(最高优先级)
父母:我不舒服,胸口闷得很
→ 识别:包含"不舒服"+"胸闷",紧急程度🟠严重
→ 路由:@skill-02-active-companion(紧急通道)
→ 动作:立即启动健康评估流程
示例 2:行程查询(语音交互)
父母:小飞,我明天的航班是几点哦?
→ 识别:询问航班时间,属于行程查询
→ 路由:@skill-01-smart-itinerary
→ 动作:语音播报 + 大字显示
示例 3:复合意图
父母:我有点头晕,明天的行程能不能改一下?另外今天的导游很好,想表扬一下
→ 识别:包含"头晕"(健康)+ "改行程"(变更)+ "表扬"(评价)三个意图
→ 处理:
1. 先路由到@skill-02 处理健康问题
2. 再路由到@skill-02 处理行程变更
3. 最后路由到@skill-03 提交表扬
2. 上下文管理
会话状态跟踪
SessionContext:
session_id: string
traveler_id: string (父母 ID)
current_skill: enum (itinerary/companion/review/video/emergency)
trip_id: string (关联的旅行 ID)
emergency_mode: boolean (是否处于紧急状态)
health_status: object (当前健康状态)
location: object (当前位置)
dialogue_history: array (最近 10 轮对话,语音转文字)
pending_actions: array (待执行动作)
skill_results: object (各子技能返回结果)
跨技能数据共享
共享数据模型:
trip_id:旅行 ID,贯穿整个旅程
traveler_info:父母基本信息(姓名、年龄、联系方式、健康档案、紧急联系人)
health_profile:健康档案(慢性病、过敏史、常用药)
emergency_contact:紧急联系人(子女、配偶)
current_day:行程第几天
location:当前位置(GPS + 文字地址)
device_info:设备信息(字体大小、语速、方言偏好)
数据同步机制:
- 子技能执行完成后,更新共享上下文
- 紧急状态下,所有技能共享健康数据和位置信息
- 敏感数据(手机号等)脱敏后共享
3. 错误处理与降级策略
常见错误场景
| 错误类型 | 处理方式 | 降级方案(老年友好) |
|---|
| 子技能调用失败 | 重试 2 次 | 转电话热线:400-xxx-xxxx |
| 订单信息不完整 | 提示用户补充 | 从历史记录推断,或联系子女确认 |
| 第三方 API 超时 | 切换备用通道 | 短信通知 + AI 外呼 |
| 用户身份验证失败 | 重新验证 | 简化验证:只需姓名 + 手机号 |
| 网络信号差 | 缓存请求 | 离线模式:显示纸质行程单二维码 |
| 语音识别失败 | 重试 2 次 | 转文字输入 + 电话热线 |
| 方言识别不准 | 切换普通话 | 提供常用语快捷按钮 |
错误回复模板(大字版)
子技能不可用:
抱歉,这个功能暂时用不了。
您可以:
1. 稍后再试一次
2. 拨打热线电话:400-xxx-xxxx(按 1 说中文)
3. 让子女帮您处理
需要我现在帮您打电话吗?
信息不完整:
我需要更多信息来帮您:
缺少:{missing_fields}
建议:{suggested_action}
您可以说:
"{example_phrase}"
或者我让子女帮您补充?
对话流程示例
场景 1:新用户首次使用(父母视角)
父母: 你好,我是张建国,我女儿给我订了下周去云南的旅游,说可以用这个?
AI (flyai-core):
张叔叔您好!我是您的自由行出行管家小飞。
欢迎您使用!我可以陪您全程玩转云南,具体能帮您:
✈️ 出发前
- 听听行程安排,知道每天去哪里
- 看看女儿给您的留言
- 存好导游、司机的电话
📱 旅行中
- 每天早上提醒您今天的安排
- 帮您联系司机、导游、酒店
- 要是身体不舒服,马上帮您找人
- 迷路了随时找我,我给您指路
⭐ 有意见
- 觉得服务好,跟我说一声
- 有不满意的地方,我帮您解决
🎬 回来后
现在我可以给您看看下周去云南的行程安排,您想听一下吗?
场景 2:行程查询(语音交互)
父母: 小飞,我明天几点出发哦?
AI (flyai-core):
好的,正在为您查询...
→ [内部调用 @skill-01-smart-itinerary 查询行程单]
这是您明天的行程安排:
📅 Day 2 - 大理古城一日游
⏰ 08:30 酒店大堂集合
👨🦰 导游:王导 138****5678(点击拨打)
🚌 车牌:云 L·A1234
📍 上午 游览大理古城
🍽️ 中午 白族特色餐
📍 下午 崇圣寺三塔
🏨 晚上 返回酒店休息
💡 温馨提示
- 明天大理多云,气温 15-23℃,建议带薄外套
- 古城石板路较多,注意防滑
需要我再讲一遍吗?或者发送到您微信?
场景 3:紧急救助(最高优先级)
父母: 我不舒服,头很晕,胸口有点闷
AI (flyai-core):
🔴 紧急情况识别
张叔叔,您先别着急,我马上帮您处理。
→ [内部调用 @skill-02-active-companion 启动紧急预案]
第一步:健康评估
请您告诉我:
- 除了头晕、胸闷,还有其他不舒服吗?(如:恶心、出汗、手脚发麻)
- 您平时有高血压、心脏病吗?
- 现在身边有人吗?
第二步:紧急联系人通知
我已经给您女儿张女士发了消息,她马上会联系您。
第三步:医疗援助
根据您的症状,我建议:
- 🟡 如果症状较轻:安排导游送您回酒店休息
- 🟠 如果症状持续:联系附近医生上门诊察
- 🔴 如果症状严重:立即呼叫 120 急救
您现在感觉怎么样?需要我帮您叫救护车吗?
场景 4:迷路求助
父母: 我好像迷路了,不知道这是哪里
AI (flyai-core):
🟠 迷路求助识别
张叔叔,您别慌,我马上帮您找到位置。
→ [内部调用 @skill-02-active-companion 启动定位接应]
第一步:定位
我正在获取您的位置...
✅ 已定位:云南省大理市大理古城人民路与复兴路交叉口
第二步:确认 surroundings
您现在能看到什么标志性建筑吗?
比如:银行、超市、酒店、景点等
第三步:接应方案
我已联系:
- 导游李导,他 5 分钟后到
- 您女儿张女士,已发消息告知
第四步:安全指引
您先在原地等我,不要乱走:
- 找个显眼的地方站着(如:便利店门口)
- 不要跟陌生人走
- 有任何情况马上给我打电话
李导的电话:138****5678(点击拨打)
场景 5:防诈骗预警
父母: 刚才有人说他是旅行社的,说我中奖了,要交 2000 元税金
AI (flyai-core):
🟠 诈骗预警识别
张叔叔,这是诈骗!千万不要转账!
→ [内部调用 @skill-02-active-companion 启动防诈骗干预]
重要提醒:
❌ 旅行社不会要求您现场交钱
❌ 中奖要交税金都是骗局
❌ 不要透露银行卡密码
我已帮您处理:
- 已标记该人员为可疑人员
- 已通知您女儿张女士
- 已通知地接社核实
建议操作:
- 不要给对方转账
- 不要透露个人信息
- 如果对方纠缠,拨打 110 报警
需要我帮您联系导游或报警吗?
子技能调用接口
调用规范
SkillInvocation:
skill_name: string (必填)
action: string (必填)
parameters: object (可选)
context: object (共享上下文)
priority: enum (normal/urgent/emergency) (优先级)
callback_url: string (可选,异步回调)
调用示例
调用紧急救助技能:
{
"skill_name": "skill-02-active-companion",
"action": "emergency_response",
"priority": "emergency",
"parameters": {
"traveler_id": "2214118900513",
"symptoms": ["dizziness", "chest_tightness"],
"severity": "moderate",
"location": {"latitude": 25.694826, "longitude": 100.164912}
},
"context": {
"health_profile": {
"chronic_conditions": ["高血压"],
"allergies": ["青霉素"]
},
"emergency_contact": {
"name": "张女士",
"relation": "女儿",
"phone": "139****1234"
}
}
}
调用行程查询技能:
{
"skill_name": "skill-01-smart-itinerary",
"action": "query_itinerary",
"parameters": {
"traveler_id": "2214118900513",
"trip_id": "TRIP20260401001",
"day": 2,
"voice_output": true
}
}
配置与部署
环境变量
# 飞猪订单中心
FLIGGY_ORDER_API_URL=https://open.fliggy.com/order/api
FLIGGY_ORDER_API_KEY=${SECRET}
# 阿里云 AI 服务
ALIYUN_NLP_ENDPOINT=https://nlp.cn-shanghai.aliyuncs.com
ALIYUN_VOICE_ENDPOINT=https://voice.cn-shanghai.aliyuncs.com
ALIYUN_ASR_DIALECTS=sichuan,cantonese,shanghainese,northeastern
# 钉钉消息推送
DINGTALK_ACCESS_TOKEN=${SECRET}
DINGTALK_AGENT_ID=123456
# 紧急救助服务
EMERGENCYHotline_120=120
EMERGENCY_HOTLINE_400=400-xxx-xxxx
EMERGENCY_CONTACT_WEBHOOK=${SECRET}
# 高德地图 API(定位)
GAODE_MAP_KEY=${SECRET}
# 视频生成服务
VIDEO_GENERATION_ENDPOINT=https://video.aliyuncs.com
依赖检查清单
启动前需确认以下服务可用:
性能指标
SLA 要求
| 指标 | 目标值 | 测量方式 |
|---|
| 意图识别准确率 | ≥95% | 抽样评测 |
| 紧急意图识别率 | ≥99% | 单独监控 |
| 路由正确率 | ≥98% | 日志分析 |
| 平均响应时间 | <2 秒 | APM 监控 |
| 紧急响应时间 | <30 秒 | 单独监控 |
| 子技能调用成功率 | ≥99% | 健康检查 |
| 用户满意度 | ≥4.5 星 | 评价收集 |
| 老年用户满意度 | ≥4.8 星 | 单独统计 |
监控告警
关键指标:
- QPS 突增 > 200% → 告警
- 错误率 > 5% → 告警
- P99 延迟 > 5 秒 → 告警
- 子技能连续失败 > 10 次 → 告警
- 紧急事件发生 → 立即电话通知值班人员
- 健康异常上报 → 立即通知子女和地接
版本历史
| 版本 | 日期 | 变更内容 |
|---|
| v1.0 | 2026-04-01 | 初始版本,单一综合 SKILL |
| v2.0 | 2026-04-01 | 重构为混合式架构,新增路由分发能力 |
| v3.0 | 2026-04-02 | 父母视角重构:紧急救助优先/方言识别/大字体模式/健康监护 |
附录
A. 完整意图关键词列表(父母常用语)
紧急救助类:
救命、不舒服、头晕、胸闷、喘不过气、心慌
摔倒了、受伤了、流血了、扭到了、骨折了
迷路了、找不到路、不知道在哪、这是哪里
有人骗我、要转账、中奖了、交钱、骗子
行程查询类:
明天几点、今天去哪、导游电话、司机电话
航班时间、酒店地址、看看行程、听听安排
后天去哪里、什么时候回来、还有几天
服务协调类:
司机没来、联系导游、酒店空调坏了、房间太吵
下雨了、太冷了、太热了、走不动、太累了
想调整、改一下、取消、延期、换酒店
评价反馈类:
很好、非常满意、谢谢、辛苦了、表扬
很差、不满意、投诉、生气、骗人
一般般、还行、凑合、马马虎虎
旅行视频类:
看照片、做视频、纪念视频、旅行相册
分享给朋友、发朋友圈、发给子女、做成片
B. 常见问题 FAQ(父母版)
Q1: 我不会用智能手机,怎么办?
A: 没关系!您可以直接拨打热线电话 400-xxx-xxxx,按 1 说中文,我们的客服人员会帮您操作。
Q2: 我听不太懂普通话,能说方言吗?
A: 可以的!我们支持四川话、粤语、上海话、东北话等多种方言。您直接说方言就行,我能听懂。
Q3: 我在外面迷路了,怎么找你?
A: 您随时可以叫我"小飞",或者直接说"我迷路了"。我会获取您的位置,然后安排导游去接您。
Q4: 我身体不舒服,你能帮我吗?
A: 当然可以!您马上告诉我哪里不舒服,我会根据您的情况安排医疗援助,并通知您的家人。
Q5: 有人说要收钱,我该怎么办?
A: 千万不要转账! 马上告诉我,我会帮您核实。正规的旅行社不会要求您现场交钱。
Q6: 字太小看不清,怎么办?
A: 您可以对我说"字调大一点",我会把字体调到最大。或者让您的子女帮您设置。
Q7: 我想给子女打电话,怎么打?
A: 您直接说"给我女儿打电话"或"联系儿子",我会帮您拨通。
技能创建者: 汪小玲 (苏英)
所属部门: 飞猪-CTO 线 - 技术质量 - 服务质量
创建日期: 2026-04-01
最后更新: 2026-04-02(v3.0 父母视角重构)