← Back to Skills Marketplace
gaogao605

机票助手

by fenbeitong-trip · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
92
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install flight-assistant
Description
AI机票助手 - 实现国内航班搜索、舱位查询、预订下单、机票改期、机票退票。适用于用户询问航班、查询机票价格、提交机票订单、改期航班、退票时使用。
README (SKILL.md)

AI机票助手

当用户询问航班搜索、舱位查询、机票预订、机票改期或机票退票时,使用此 skill 调用AI机票服务。

运行环境要求

本 skill 通过 python3 执行 HTTP POST 请求调用AI机票服务。运行环境必须提供 python3

隐私与个人信息(PII)说明

预订功能会将用户提供的个人信息(乘客姓名、手机号、证件号等)通过 HTTP POST 发送至AI机票服务,以完成机票预订。使用本 skill 即表示用户知晓并同意上述 PII 被发送到外部服务。请勿在日志或回复中暴露用户个人信息。

可用工具

重要:下方示例中的参数均为占位,调用时需根据用户当前需求填入实际值(城市、日期、航班号、乘机人、联系方式等),勿直接照抄示例值。

适用场景

  • 按出发/到达城市、日期搜索航班列表
  • 查看指定航班的舱位价格详情
  • 用户确认后创建机票预订订单
  • 查询已创建订单的详细信息
  • 用户确认后改期或退票已创建订单的航班

鉴权流程(必须先完成)

重要:使用任何功能前,用户必须先完成鉴权流程。鉴权成功后获得的 apiKey 会自动保存在用户主目录的 ~/.fbt_auth.json 文件中,新会话会自动沿用。

鉴权步骤

  1. 发送验证码:用户提供手机号,系统发送验证码到手机
  2. 验证并获取 apiKey:用户输入验证码,验证成功后获得 apiKey
  3. 自动注入:后续所有 API 调用会自动携带 apiKey

鉴权命令

1. 发送验证码

python3 scripts/auth.py send \x3Cphone>

示例

python3 scripts/auth.py send 13800138000

2. 验证并获取 apiKey

python3 scripts/auth.py verify \x3Cphone> \x3Ccode>

示例

python3 scripts/auth.py verify 13800138000 123456

3. 查看鉴权状态

python3 scripts/auth.py status

鉴权检查规则

  • 在执行任何航班查询、预订、改期、退票操作前,必须先检查鉴权状态
  • 如果未鉴权或 apiKey 已过期,必须引导用户完成鉴权流程
  • 鉴权成功后,所有 API 调用会自动携带 apiKey,无需手动传递

1. 航班搜索 (searchFlight)

功能:查询国内航班列表

必填参数

  • start_code: 出发城市名称(如 北京、上海、广州)
  • end_code: 到达城市名称
  • date: 出发日期(格式 YYYY-MM-DD)

触发词:某地到某地航班、查机票、搜航班、机票价格

执行命令

python3 scripts/search_flights.py \x3Cstart_code> \x3Cend_code> \x3Cdate>

示例

python3 scripts/search_flights.py 北京 上海 2026-03-15

返回结果:航班列表(航班号、航空公司、起降时间、机型、机场、最低价等)

上下文检查规则

  • 如果用户在当前或之前的消息中已经提供了某个参数,则无需再次询问该参数
  • 只向用户询问尚未提供的参数
  • 如果所有参数都已提供,直接发起请求

展示要求:

  • 必须使用代码块包裹脚本输出的表格
  • 必须展示完整表格
  • 参考"输出格式要求"章节的标准格式

2. 舱位详情查询 (searchPrice)

功能:查询特定航班的详细价格信息

必填参数

  • start_code: 出发机场三字码(从 searchFlight 响应结果中获取)
  • end_code: 到达机场三字码(从 searchFlight 响应结果中获取)
  • date: 出发日期(格式 YYYY-MM-DD)
  • flight_no: 航班号

触发词:查看航班详情、这个航班的舱位价格

执行命令

python3 scripts/search_price.py \x3Cstart_code> \x3Cend_code> \x3Cdate> \x3Cflight_no>

示例

python3 scripts/search_price.py PEK PVG 2026-03-15 CA1501

返回结果:该航班的各舱位价格、折扣、退改签规则等详细信息,并将舱位信息保存到 /tmp/flight_seat_items.json 供下单使用

使用场景:用户先使用航班搜索查询航班列表,从返回的航班列表中选择某个航班后,使用此功能查询该航班的详细价格信息

展示要求:

  • 必须使用代码块包裹脚本输出的表格
  • 必须展示完整表格
  • 参考"输出格式要求"章节的标准格式

3. 退改规则和行李额查询 (searchGuestRule)

功能:查询指定舱位的详细退改签规则和行李额

必填参数

  • seat_index: 舱位编号(从舱位详情查询结果中选择,如 1、2、3)

触发词:退改规则、退票规则、改签规则、这个舱位的退改政策、行李额、客规

执行命令

python3 scripts/search_guest_rule.py \x3Cseat_index>

示例

python3 scripts/search_guest_rule.py 1

返回结果:该舱位的退票、改签、行李额等详细规则说明

重要说明

  • 此功能为可选流程,仅在用户明确询问退改规则时调用
  • seat_index 必须来自最近一次舱位详情查询的结果
  • 舱位信息从 /tmp/flight_seat_items.json 文件中读取
  • 如果文件不存在或舱位编号无效,会提示用户先执行舱位详情查询

4. 机票下单 (createOrder)

功能:创建机票订单

必填参数

  • seat_index: 舱位编号(从上一步舱位详情查询结果中选择,如 1、2、3)
  • passenger_name: 乘客姓名
  • passenger_phone: 乘客手机号
  • passenger_id: 乘客证件号

触发词:订这个、预订、下单

执行命令

python3 scripts/create_order.py \x3Cseat_index> \x3Cpassenger_name> \x3Cpassenger_phone> \x3Cpassenger_id>

示例

python3 scripts/create_order.py 1 "张三" "13800138000" "110101199001011234"

返回结果:订单号、支付链接、订单详情链接等

重要说明

  • seat_index 必须来自最近一次舱位详情查询的结果
  • 舱位信息从 /tmp/flight_seat_items.json 文件中读取
  • 如果文件不存在或舱位编号无效,会提示用户先执行舱位详情查询
  • 必须向用户索取乘客姓名、手机号和证件号,不可使用默认值或跳过

5. 订单详情查询 (orderDetail)

功能:查询已创建订单的详细信息

必填参数

  • order_id: 订单号(从下单接口返回的订单号中获取)

触发词:订单详情、查看订单、查询订单、订单状态

执行命令

python3 scripts/order_detail.py \x3Corder_id>

示例

python3 scripts/order_detail.py 69a677bee4b0252bd532e35c

返回结果:订单的详细信息,包括航班信息、乘客信息、支付状态等

重要说明

  • 订单号可以从下单接口的返回结果中获取
  • 此功能可用于查询订单的实时状态和详细信息

6. 取消订单 (cancelOrder)

功能:取消待支付状态的订单

必填参数

  • order_id: 订单号(从下单接口返回的订单号中获取)

触发词:取消订单、不要了、取消这个订单

执行命令

python3 scripts/cancel_order.py \x3Corder_id>

示例

python3 scripts/cancel_order.py 69a677bee4b0252bd532e35c

返回结果:取消成功或失败

重要说明

  • 此功能仅适用于待支付状态的订单
  • 订单号可以从下单接口的返回结果中获取
  • 已支付或已出票的订单无法通过此接口取消,需要使用退票功能

7. 改期航班搜索 (endorseSearchFlight)

功能:查询可改期的航班列表

必填参数

  • order_id: 订单号(从订单详情或下单接口返回的订单号中获取)
  • dep_date: 改期日期(格式 YYYY-MM-DD,需要向用户索取)

触发词:改期、改签、换航班、查改期航班

执行命令

python3 scripts/endorse_search_flight.py \x3Corder_id> \x3Cdep_date>

示例

python3 scripts/endorse_search_flight.py 69a677bee4b0252bd532e35c 2026-03-20

返回结果:可改期的航班列表(航班号、航空公司、起降时间、机场、最低价等)

重要说明

  • 订单号可以从订单详情接口获取
  • 改期日期需要向用户索取
  • 此接口会自动从订单详情中提取 flight_no(从 segmentInfo.flight_no 获取)和 ticket_ids(从 passengerList[0].productId 获取)
  • 返回的航班列表格式与航班搜索接口一致,方便用户选择

展示要求:

  • 必须使用代码块包裹脚本输出的表格
  • 必须展示完整表格
  • 参考"输出格式要求"章节的标准格式

8. 改期舱位详情查询 (endorseSearchPrice)

功能:查询指定改期航班的舱位价格详情(改期费、机票差价费等)

必填参数

  • order_id: 订单号(从订单详情或下单接口返回的订单号中获取)
  • dep_date: 改期日期(格式 YYYY-MM-DD,与改期航班搜索时使用的日期一致)
  • flight_no: 航班号(从改期航班搜索结果中选择)

触发词:查看改期价格、这个航班的改期费、改期舱位详情

执行命令

python3 scripts/endorse_search_price.py \x3Corder_id> \x3Cdep_date> \x3Cflight_no>

示例

python3 scripts/endorse_search_price.py 69a677bee4b0252bd532e35c 2026-03-20 HU7603

返回结果:该航班的各舱位改期费、机票差价费、预估总改期费等详细信息,并将舱位信息保存到 /tmp/endorse_seat_items.json 供改期下单使用

重要说明

  • 此接口必须在改期航班搜索之后调用
  • flight_no 必须来自改期航班搜索返回的航班列表,需要用户选择
  • 此接口会自动从订单详情中提取 ticket_ids(从 passengerList[0].productId 获取)
  • 展示的改期费用信息包括:改期费、机票差价费、预估总改期费
  • 舱位信息会保存到临时文件供后续改期下单使用

展示要求:

  • 必须使用代码块包裹脚本输出的表格
  • 必须展示完整表格
  • 参考"输出格式要求"章节的标准格式

9. 提交改期申请 (endorseApply)

功能:提交改期申请,创建改期订单

必填参数

  • seat_index: 舱位编号(从改期舱位详情查询结果中选择,如 1、2、3)
  • order_id: 原订单号(从订单详情或下单接口返回的订单号中获取)

触发词:确认改期、提交改期申请、改期下单

执行命令

python3 scripts/endorse_apply.py \x3Cseat_index> \x3Corder_id>

示例

python3 scripts/endorse_apply.py 1 69a677bee4b0252bd532e35c

返回结果:改期单订单号、支付链接、订单详情链接等

重要说明

  • seat_index 必须来自最近一次改期舱位详情查询的结果
  • 舱位信息从 /tmp/endorse_seat_items.json 文件中读取
  • 如果文件不存在或舱位编号无效,会提示用户先执行改期舱位详情查询
  • 改期申请成功后会返回新的改期单订单号,需要用户完成支付

10. 预估退票费查询 (refundFeeDetail)

功能:查询退票费用详情

必填参数

  • order_id: 订单号(从订单详情或下单接口返回的订单号中获取)

触发词:查询退票费、退票费用、预估退票费

执行命令

python3 scripts/refund_fee_detail.py \x3Corder_id>

示例

python3 scripts/refund_fee_detail.py 69a677bee4b0252bd532e35c

返回结果:预估退票费(单票)

重要说明

  • 此接口用于在退票前预估退票费用
  • 用户需要确认退票费用后才能提交退票申请
  • 返回的 refund_amount 需要在提交退票申请时使用

11. 提交退票申请 (refundApply)

功能:提交退票申请

必填参数

  • order_id: 订单号(从订单详情或下单接口返回的订单号中获取)
  • refund_amount: 预估退票费(从预估退票费查询接口返回的 refund_amount 获取)

触发词:确认退票、提交退票申请、退票

执行命令

python3 scripts/refund_apply.py \x3Corder_id> \x3Crefund_amount>

示例

python3 scripts/refund_apply.py 69a677bee4b0252bd532e35c 808

返回结果:退票申请结果、退票单号

重要说明

  • 此接口必须在预估退票费查询之后调用
  • refund_amount 必须来自预估退票费查询接口返回的 refund_amount
  • product_ids 会自动从订单详情中获取(从 passengerList 中提取 productId)
  • 退票申请提交后需要等待审核

完整流程示例

用户:3月15号北京到上海的航班

AI 执行

  1. 检查上下文,发现用户已提供出发城市(北京)、到达城市(上海)、日期(3月15号)
  2. 调用 search_flights.py 北京 上海 2026-03-15
  3. 展示航班列表

用户:看一下 CA1501 这个航班的舱位

AI 执行

  1. 从上一轮结果确认航班号 CA1501,连同城市和日期
  2. 调用 search_price.py PEK PVG 2026-03-15 CA1501
  3. 展示舱位列表(价格、退改签规则等)
  4. 提示用户可选择舱位编号进行预订

用户:第1个舱位的退改规则是什么?(可选步骤)

AI 执行

  1. 调用 search_guest_rule.py 1
  2. 展示该舱位的详细退改签规则

用户:订第1个,乘客张三 13800138000 110101199001011234

AI 执行

  1. 从用户输入提取:seat_index=1、passenger_name=张三、passenger_phone=13800138000、passenger_id=110101199001011234
  2. 调用 create_order.py 1 "张三" "13800138000" "110101199001011234"
  3. 展示订单号、支付链接等信息
  4. 提醒用户完成支付

用户:查看订单详情

AI 执行

  1. 从上一轮结果获取订单号(如:69a677bee4b0252bd532e35c)
  2. 如果用户没有提供手机号,向用户索要创建订单时使用的乘机人手机号
  3. 调用 order_detail.py 69a677bee4b0252bd532e35c 13800138000
  4. 展示订单的详细信息

用户:取消订单

AI 执行

  1. 从上一轮结果获取订单号和手机号
  2. 调用 cancel_order.py 69a677bee4b0252bd532e35c 13800138000
  3. 展示取消订单成功或失败的信息

用户:我想改期到3月20号

AI 执行

  1. 从上一轮订单详情中获取订单号和手机号
  2. 向用户确认改期日期(3月20号,格式化为 2026-03-20)
  3. 调用 endorse_search_flight.py 69a677bee4b0252bd532e35c 13800138000 2026-03-20
  4. 展示可改期的航班列表

用户:看一下 HU7603 这个航班的改期价格

AI 执行

  1. 从上一轮改期航班搜索结果中确认航班号 HU7603
  2. 调用 endorse_search_price.py 69a677bee4b0252bd532e35c 13800138000 2026-03-20 HU7603
  3. 展示该航班的改期舱位价格详情(改期费、机票差价费、预估总改期费等)
  4. 提示用户可选择舱位进行改期

用户:确认改期第1个舱位

AI 执行

  1. 从上一轮改期舱位详情查询结果中确认舱位编号 1
  2. 调用 endorse_apply.py 1 69a677bee4b0252bd532e35c 13800138000
  3. 展示改期单订单号、支付链接、订单详情链接等信息
  4. 提醒用户完成支付

用户:我要退票

AI 执行

  1. 从上一轮订单详情中获取订单号、手机号和票号
  2. 调用 refund_fee_detail.py 69a677bee4b0252bd532e35c 13800138000
  3. 展示退票费详情
  4. 必须强制用户确认退票费用,无论退票费是多少(包括¥0),都不得擅自提交退票申请

用户:确认退票

AI 执行

  1. 从上一轮退票费查询结果中获取退款金额
  2. 调用 refund_apply.py 69a677bee4b0252bd532e35c 525 13800138000
  3. 展示退票状态、退票单号等信息
  4. 提醒用户等待审核

输出格式要求

🚨 强制要求:

  1. 禁止用自然语言改写表格内容
  2. 所有表格必须用plaintext代码块包裹
  3. 不得省略或截断任何航班/舱位信息

航班列表展示

查询结果以表格形式平铺展示,每个航班一行,只显示最低价:

=================================================================================================
航班号    航空公司      出发时间    到达时间     出发机场    到达机场    最低价
=================================================================================================
HO2218   吉祥航空      08:45      10:55        大兴       虹桥       ¥470
MF8561   厦门航空      07:55      10:25        大兴       浦东       ¥490
=================================================================================================
共找到 X 个航班
=================================================================================================

舱位详情展示

展示各舱位价格、折扣等详细信息,并标注舱位编号供用户选择:

====================================================================================
编号   舱位      价格      折扣    机建费   燃油费   总票价       状态
====================================================================================
[1]   经济舱     ¥800     9.5     ¥50      ¥20    ¥870     余座充足
[2]   经济舱     ¥850     10      ¥50      ¥20    ¥920     余座充足
====================================================================================

退改规则展示

展示选定舱位的详细退改签规则和行李额:

====================================================================================================
舱位信息: 经济舱 | T舱 | 票面价 ¥800 
====================================================================================================
【退票规则】
----------------------------------------------------------------------------------------------------
  • 未使用的首个航班起飞前168小时(含)到∞小时(不含)退票时,余额再收20%退票费
----------------------------------------------------------------------------------------------------
【改期规则】
----------------------------------------------------------------------------------------------------
  • 起飞前168小时以上:变更费按订座舱位公布运价10%收取
----------------------------------------------------------------------------------------------------
【签转规则】
----------------------------------------------------------------------------------------------------
  不能签转
----------------------------------------------------------------------------------------------------
【行李额】
----------------------------------------------------------------------------------------------------
  • 免费托运行李额:20KG,单件尺寸上限:40*60*100CM
  • 免费手提行李额:5KG,单件尺寸上限:20*40*55CM
====================================================================================================

订单结果展示

展示订单号、支付链接、航班信息等关键信息:

✅ 订单创建成功!

航班信息:
- 航班号: CA1501
- 出发时间: 08:00
- 到达时间: 10:30
- 舱位: 经济舱

订单号: 69a677bee4b0252bd532e35c
支付截止时间: 23:59

💳 [立即支付](https://dwz.cn/TftO1qmp)

订单详情展示

展示订单的完整信息,包括航班信息、乘客信息、支付状态等:

====================================================================================
订单详情
====================================================================================

订单号: 69a677bee4b0252bd532e35c
订单状态: 待支付
创建时间: 2026-03-04 10:30:00
支付截止时间: 2026-03-04 23:59:59

航班信息:
- 航班号: CA1501
- 出发时间: 2026-03-15 08:00
- 到达时间: 2026-03-15 10:30
- 出发机场: 北京首都T3
- 到达机场: 上海虹桥T2
- 舱位: 经济舱

乘客信息:
- 姓名: 张三
- 证件类型: 身份证
- 证件号: 110101199001011234
- 联系电话: 13800138000
- 票号: 888-1234567890

价格信息:
- 票面价: ¥800
- 机建费: ¥50
- 燃油费: ¥20
- 总金额: ¥870

====================================================================================

改期航班搜索展示

展示可改期的航班列表,格式与航班搜索一致:

=========================================================================================
正在搜索改期航班...
原航班号: HU7601
改期日期: 2026-03-20

=========================================================================================
航班号    航空公司      出发时间    到达时间     出发机场    到达机场    最低价
=========================================================================================
HO2218   吉祥航空      08:45      10:55        大兴       虹桥       ¥470
MF8561   厦门航空      07:55      10:25        大兴       浦东       ¥490
=========================================================================================
共找到 2 个航班
=========================================================================================

改期舱位详情展示

展示指定改期航班的各舱位改期费用详情:

==================================================================================================================================
航班信息: HU7603 | 08:25-10:35 | 空客A330 | T2-T2
==================================================================================================================================
编号      舱位          改期费        机票差价费     预估总改期费    状态          
==================================================================================================================================
[1]     经济舱         ¥100         ¥50          ¥150         余座充足        
[2]     经济舱         ¥100         ¥100         ¥200         余座充足        
==================================================================================================================================

共找到 3 个舱位价格
==================================================================================================================================

改期申请结果展示

展示改期申请成功后的关键信息:

改期航班信息:
- 航班号: HU7603
- 出发时间: 08:25
- 到达时间: 10:35

✅ 改期申请成功!

改期单订单号: 69b21e1ce4b0b89fdebddbd4

💳 [立即支付](https://dwz.cn/TftO1qmp)

退票费详情展示

展示退票费用详情:

预估退票费(单票): ¥0
请确认是否同意退票费用,如同意,系统将自动提交退票申请

退票申请结果展示

展示退票申请结果:

================================================================================
✅ 退票申请成功,请等待审核!

退票单号: 69c12345e4b0c12fdeabcdef

温馨提示:
- 退票审核通常需要1-3个工作日
- 退款到账时间取决于银行处理速度
- 您可以随时查询订单状态了解退票进度
================================================================================

注意事项

  1. PII 安全:乘客姓名、手机号、证件号等仅在预订时发送至服务,勿在日志或回复中暴露
  2. 日期格式:所有日期均为 YYYY-MM-DD
  3. 下单前:必须先执行舱位详情查询,获取舱位信息后才能下单
  4. 强制索取信息:下单时必须向用户索取乘客姓名、手机号和证件号,不可使用默认值或跳过
  5. 数据准确性:展示结果时必须基于脚本输出的原始数据,不得修改、添加或删除任何数据
  6. 禁止幻想:不得添加任何脚本输出中不存在的航班信息、价格或推荐内容
  7. 强制确认退票:退票时必须强制用户确认退票费用,无论退票费是多少(包括¥0),都不得擅自提交退票申请
Usage Guidance
这是一个功能完整、以第三方 API 提供机票能力的 skill,但存在明显安全/透明度问题 you should consider before installing: - PII 与凭据流向:下单/鉴权流程会把乘客姓名、手机号、证件号和 apiKey 发送到外部 API(代码默认 https://app-gate.fenbeitong.com/...)。如果你不信任该后端,请不要提供真实证件信息或 apiKey。 - 证书验证被禁用:common.py 在发起 HTTPS 请求时使用 ssl._create_unverified_context()(跳过 TLS 证书验证),这使得网络请求容易被中间人拦截或篡改。要求作者移除该行为并使用默认证书验证。 - 鉴权持久化位置不一致:文档声称 apiKey 保存到用户主目录 (~/.fbt_auth.json),但实际保存到系统临时目录(如 /tmp/.fbt_auth.json)。这会影响持久性与权限(临时目录可能被其他用户访问或会在重启/清理时丢失)。要求作者统一文档与实现,或改为更安全的位置并加密/限制权限。 - 未声明但存在的 env 覆盖:代码可通过 FBT_API_URL 环境变量覆盖 API 地址,但 SKILL.md/skill.json 未列出。若你运行此 skill,请在受控网络环境中使用,并考虑将请求指向受信任的后端。 - 临时文件包含业务数据:舱位/改期相关 JSON 存放在临时目录,可能包含可识别信息或与订单关联的票号。安装前请确认这些文件的存放位置和访问权限,必要时在运行后删除。 具体建议: 1) 在公开使用前,要求作者修复:移除不安全的 SSL 忽略、在文档中声明 FBT_API_URL、并说明鉴权文件的正确存放位置与访问控制策略。 2) 若需测试,可使用假手机号/虚拟信息并在受控环境中验证网络通信(观察实际请求目标)。 3) 不要在共享或不受信任的机器上保存真实证件信息或 apiKey;如已保存,运行后立即删除临时鉴权与舱位文件。
Capability Analysis
Type: OpenClaw Skill Name: flight-assistant Version: 1.0.0 The skill is designed for flight booking and handles highly sensitive Personal Identifiable Information (PII), including passenger names, phone numbers, and national ID card numbers. A significant security vulnerability exists in `scripts/common.py`, where SSL certificate verification is explicitly disabled using `ssl._create_unverified_context()`, exposing sensitive data to Man-in-the-Middle (MITM) attacks during transmission to `app-gate.fenbeitong.com`. Additionally, authentication tokens are stored in a shared temporary directory without explicit restrictive file permissions, potentially leaking credentials to other local users. While these appear to be critical security flaws rather than intentional malice, the combination of PII handling and weakened transport security warrants a suspicious classification.
Capability Assessment
Purpose & Capability
Skill 名称/描述与代码功能一致:包含航班搜索、舱位价格、下单、改期、退票等脚本,且仅要求 python3。小不一致:SKILL.md 表示 apiKey 会保存在用户主目录 (~/.fbt_auth.json),但 common.py 实际将鉴权文件写入系统临时目录(tempfile.gettempdir(),例如 /tmp/.fbt_auth.json)。这一点会影响持久性与权限预期,应由作者说明为何选择临时目录。
Instruction Scope
SKILL.md 明确要求将乘客姓名、手机号、证件号等 PII 通过 HTTP POST 发送至“AI机票服务”,代码确实在 call_api() 中将 name/phone/idCard 等字段和 apiKey 一并发送到远端 API。问题/风险:SKILL.md 没有公开或列出实际 API 域名(代码默认 https://app-gate.fenbeitong.com/air_biz/skill/execute),且 common.py 在发起 HTTPS 请求时禁用了证书验证 (ssl._create_unverified_context()),这会增加中间人攻击与机密被窃取的风险。SKILL.md 也未声明可用的覆盖环境变量(FBT_API_URL)或解释证书绕过的理由。脚本会读写临时 JSON 文件 (/tmp/flight_seat_items.json 等) 以保存舱位信息——这与说明一致,但是另一个需注意的本地持久化点(包含业务/PII 关联信息)。
Install Mechanism
无安装规范(instruction-only),仅需系统提供 python3;代码文件随 skill 一并提供并由脚本直接运行,未从不可信 URL 下载或在安装阶段写入/执行远程代码,安装机制本身没有高风险行为。
Credentials
skill.json / SKILL.md 未声明任何必需的环境变量,但代码支持通过 FBT_API_URL 环境变量覆盖 API 终端地址(未在文档中提及)。此外,代码将 apiKey 写入临时文件并从该文件自动注入到所有请求(此持久化行为在文档中说明的位置与实际路径不一致)。虽然没有请求与任务不相关的外部凭据(例如 AWS、GitHub token 等),但未声明的 env 覆盖选项与对 apiKey 的不安全持久化降低了凭据使用的透明度。
Persistence & Privilege
该 skill 不要求常驻(always: false)也不修改其他 skills。它会在本地写入两个类型的文件:1) 鉴权信息文件(.fbt_auth.json,写入到系统临时目录而非用户主目录);2) 业务临时文件(/tmp/flight_seat_items.json, /tmp/endorse_seat_items.json)来保存舱位信息供后续脚本使用。写入本地磁盘是实现下单流程的合理需求,但因为这些文件可能包含识别信息或与订单关联的数据,用户应当注意它们的存放位置和访问权限。
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install flight-assistant
  3. After installation, invoke the skill by name or use /flight-assistant
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
flightAI 1.0.0 – 首发版:为国内航班提供全流程智能查询、预订与管理 - 支持国内航班搜索、舱位价格详情、订单创建、改期、退票等功能 - 提供详细的命令行用法与参数说明,确保按需提取与询问用户信息 - 增强隐私保护,明确个人信息处理与不可泄露原则 - 强制鉴权流程,自动管理 apiKey - 完整的用户交互流程规范,适配航班查询到售后全场景
Metadata
Slug flight-assistant
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is 机票助手?

AI机票助手 - 实现国内航班搜索、舱位查询、预订下单、机票改期、机票退票。适用于用户询问航班、查询机票价格、提交机票订单、改期航班、退票时使用。 It is an AI Agent Skill for Claude Code / OpenClaw, with 92 downloads so far.

How do I install 机票助手?

Run "/install flight-assistant" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is 机票助手 free?

Yes, 机票助手 is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does 机票助手 support?

机票助手 is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created 机票助手?

It is built and maintained by fenbeitong-trip (@gaogao605); the current version is v1.0.0.

💬 Comments