机票查询与价格监控技能。支持单程/往返查询、价格阈值提醒、定时监控、手机推送通知(Bark/Server酱/PushDeer)。触发词示例:查一下北京到三亚的机票、帮我看看上海飞成都下周六往返票、监控杭州到西安3月26日机票低于500提醒我、查看所有机票监控任务。
Flight Monitor Skill
功能概述
Flight Monitor Skill是一项面向实际任务的技能,主要用于查询国内外实时机票价格,设置低价提醒,支持定时监控;无需浏览器自动化,无需 API 密钥;
核心要点
- Quick Start;
- 设置价格监控与推送;
- 管理监控任务;
使用与执行
配置手机推送;Core Workflow;Step 1 — Parse User Intent;Extract these parameters from the user’s messa。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
结果检查与注意事项
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
Flight Monitor 技能
查询国内外实时机票价格,设置低价提醒,支持定时监控。无需浏览器自动化,无需 API 密钥。
快速开始
单程查询
查一下北京到三亚 3 月 25 日的机票价格 Check flights from BJS to SYX on 2026-03-25 查询杭州到西安 3 月 26 日,低于 500 元的机票
往返查询
帮我看看上海飞成都,4 月 1 日去 4 月 5 日回 上海到成都下周六往返票
设置价格监控与推送
监控赣州到哈尔滨 4 月 10 日,每天查一次,低于 700 提醒我 Monitor BJS to SYX on 2026-03-25, daily, alert if under ¥1500
管理监控任务
查看我所有的机票监控任务 暂停北京到三亚的监控 删除杭州到西安的监控任务
配置手机推送
设置推送 Bark Key: xxxxx
核心工作流
步骤 1 — 解析用户意图
从用户消息中提取以下参数:
| 参数 | 是否必需 | 示例 |
|---|---|---|
| 出发城市 dep | 是 | 北京 / BJS |
| 到达城市 arr | 是 | 三亚 / SYX |
| 出发日期 date | 是 | 2026-04-10 |
| 返程日期 return_date | 仅往返行程需要 | 2026-04-15 |
| 最高价 max_price | 否 | 700 |
| 监控频率 freq | 仅用于监控任务 | daily / 6h |
城市名称 → IATA 代码的映射由脚本自动处理。
若城市未被识别,请查阅 references/city_codes.md。
步骤 2 — 查询航班数据
⚠️ 关键日期规则:始终使用用户指定的确切出行日期,绝不可替换为当前日期。
步骤 2a — 运行 search_flights.py(必须首先执行)
python scripts/search_flights.py --from--to --date python scripts/search_flights.py --from KOW --to HRB --date 2026-04-10 --max-price 700 python scripts/search_flights.py --from SHA --to CTU --date 2026-04-01 --return-date 2026-04-05
该脚本按顺序尝试三个数据源,并返回以下其中一种结果:
结果 source |
含义 | 后续操作 |
|---|---|---|
ctrip |
已直接获取完整航班列表 — 完成 | 将 flights 列表格式化为表格。跳过所有网页搜索。 |
zbape |
仅返回最低价摘要(无时刻信息) | 展示价格摘要 + 预订链接。跳过所有网页搜索。 |
fallback |
所有 API 均不可用 | 仅执行 恰好一次 web_search,使用脚本输出中的 search_query 字段值。然后停止。禁止抓取任何 URL。 |
步骤 2b — 回退网页搜索(仅当 source == "fallback" 时)
使用脚本输出中 search_query 字段的**精确查询字符串**:
web_search("")
从搜索摘要中解析:航空公司名称、航班号、出发时间、到达时间、价格。 无论结果质量如何,本次搜索后立即停止。 使用摘要中包含的所有可用数据。
硬性规则 — 不允许例外
- 严禁调用
web_fetch(携程/去哪儿/Skyscanner 等主流 OTA 均为 JS 渲染;抓取将浪费算力且返回空或无用内容)。 - 每段行程(去程/返程)最多仅允许 1 次
web_search。 - 禁止尝试多个搜索引擎,也禁止在首次搜索返回部分数据时重新构造查询语句。
- 若一次搜索后数据仍不完整,请如实呈现已有信息,并注明局限性。
步骤 3 — 记录价格历史
查询完成后,始终记录结果以支持趋势追踪:
python scripts/price_history.py append --from KOW --to HRB --date 2026-04-10 --price--flight " " --threshold 700 # 查看某条航线的历史记录 python scripts/price_history.py show --from KOW --to HRB --date 2026-04-10 # 列出所有有历史记录的航线 python scripts/price_history.py list
历史记录文件路径:~/.workbuddy/flight-monitor/{DEP}-{ARR}-{DATE}.json
步骤 4 — 检查低价提醒并发送通知
记录价格后,检查是否达到或低于设定阈值:
python scripts/price_history.py show --from KOW --to HRB --date 2026-04-10
若输出中包含“低价提醒”(即价格 ≤ 阈值):
python scripts/notify.py --title "机票低价提醒 KOW→HRB" --body "赣州→哈尔滨 2026-04-10 最低价 ¥,低于阈值¥700!推荐航班 " --url "https://flights.ctrip.com/itinerary/oneway/kow-hrb?depdate=2026-04-10"
notify.py 将自动使用已配置的任一推送服务。
若尚未配置推送服务,则会打印配置指引。
步骤 5 — 设置监控任务(当用户请求周期性检查时)
# 添加每日监控并启用低价提醒 python scripts/monitor_manager.py add --from KOW --to HRB --date 2026-04-10 --freq daily --threshold 700 # 每 6 小时一次 python scripts/monitor_manager.py add --from HGH --to SIA --date 2026-03-26 --freq 6h # 列出全部监控任务 python scripts/monitor_manager.py list # 暂停某项监控 python scripts/monitor_manager.py pause --id flight-KOW-HRB-2026-04-10 # 删除某项监控 python scripts/monitor_manager.py remove --id flight-KOW-HRB-2026-04-10 # 查看详情 / 手动触发提示(不执行任何 shell 命令) python scripts/monitor_manager.py run --id flight-KOW-HRB-2026-04-10
监控任务以 TOML 格式保存于 ~/.workbuddy/automations/ 目录下。
安全说明:
monitor_manager.py**不导入**os模块,且**不含任何**os.system()或subprocess调用。- 所有
--id参数在访问文件系统前均通过严格白名单正则表达式校验(flight-[A-Z]+-[A-Z]+-YYYY-MM-DD),防止路径遍历攻击。 run子命令仅打印安全提示 — 绝不执行外部命令。
推送通知配置
支持三种免费推送服务。请选择其一进行配置:
选项 A — Bark(仅限 iOS,iPhone 用户推荐)
- 从 App Store 安装 Bark 应用
- 打开应用 → 复制设备密钥(Device Key)
- 配置命令:
python scripts/notify.py --setup bark --key
选项 B — Server酱(微信通知,Android 与 iOS 均支持)
- 访问 https://sct.ftqq.com/ 并使用 GitHub 登录
- 复制您的 SendKey
- 配置命令:
python scripts/notify.py --setup serverchan --key
选项 C — PushDeer(开源方案,Android 与 iOS 均支持)
- 安装 PushDeer 应用,或使用网页版 https://www.pushdeer.com/
- 创建设备并复制推送密钥(Push Key)
- 配置命令:
python scripts/notify.py --setup pushdeer --key
配置信息将保存至 ~/.workbuddy/flight-monitor/notify_config.json。
监控频率选项
| 输入 | 调度策略 | 中文标签 |
|---|---|---|
hourly / 1h |
每 1 小时一次 | 每1小时 |
2h |
每 2 小时一次 | 每2小时 |
3h |
每 3 小时一次 | 每3小时 |
6h |
每 6 小时一次 | 每6小时 |
12h / twice-daily |
每 12 小时一次 | 每12小时 |
daily / morning |
每日北京时间 09:00 执行 | 每天9:00 |
按提前预订天数推荐的频率:
| 提前天数 | 推荐频率 |
|---|---|
| 1 个月及以上 | daily |
| 2 周 | 12h |
| 1 周 | 6h |
| 3 天 | 3h |
输出格式
查询结果(面向用户展示)
始终以如下表格格式呈现结果。对于中转航班,“中转”列必须明确列出中转城市及等待时长(例如:“转上海 1h20m”)。
## 机票查询:赣州(KOW) → 哈尔滨(HRB) **出行日期:** 2026-04-10(⚠️ 以下均为该日期价格) **价格筛选:** ≤ ¥700 | 航班 | 价格(含税) | 出发 | 到达 | 全程时长 | 中转(城市 + 等待时间) | |------|-----------|------|------|----------|------------------------| | 祥鹏 8L9549 | ¥620 | 09:35 | 13:30 | 3h55m | 直飞 | | 东航 MU2993+MU5619 | ¥650 | 20:10 | 00:35+1 | 7h25m | 转上海虹桥 1h50m | 最低价:¥620 [立即预订 →](https://flights.ctrip.com/itinerary/oneway/kow-hrb?depdate=2026-04-10)
各列定义:
全程时长:从出发至最终抵达的总耗时(含中转等待时间)中转(城市 + 等待时间):中转航班需列出中转城市及等待时长;直飞航班填写“直飞”
低价提醒(推送至手机)
🔔 机票低价提醒! 赣州(KOW) → 哈尔滨(HRB) | 出行日期:2026-04-10 当前最低价:¥620(低于阈值 ¥700) 推荐航班:祥鹏 8L9549 09:35 → 13:30(直飞) 立即预订:https://flights.ctrip.com/...
注意事项
- ⚠️ 日期规范:始终查询用户指定的确切出行日期,该日期并非当前日期。
- 查询流程:始终以
search_flights.py为起点;仅当脚本返回source: fallback时才回退至web_search;每段行程(去程/返程)最多执行 1 次搜索。 - 严禁使用 web_fetch:所有主流在线旅行社(OTA)网站(如携程、去哪儿、Skyscanner)均采用 JavaScript 渲染;抓取将返回空白或无效内容,且浪费 token。
- 数据源优先级:Ctrip AJAX API(最丰富,无需密钥)→ zbape.com(需密钥,仅提供最低价)→ 单次网页搜索回退。
- zbape 密钥(可选):运行
python scripts/search_flights.py --setup-zbape一次即可启用。当 Ctrip API 遭遇限流时,可补充提供按日期粒度的最低价信息。 - 推送通知:配置一次后,每次监控周期中只要价格跌破阈值,系统将自动触发提醒。
- 城市代码:完整城市名 ↔ IATA 代码对照表请参阅
references/city_codes.md。
文件概览
flight-monitor/
├── SKILL.md ← 本文档
├── scripts/
│ ├── search_flights.py ← 主要脚本:多源航班查询(Ctrip API → zbape → 回退)
│ ├── query_flights.py ← 遗留脚本:搜索查询生成器 + 预订链接
│ ├── price_history.py ← 追加/读取/触发价格历史记录
│ ├── monitor_manager.py ← 增删改查定时监控任务
│ └── notify.py ← 移动端推送通知(Bark/Server酱/PushDeer)
└── references/
└── city_codes.md ← 完整城市名 → IATA 代码对照表
可选:zbape API 密钥(当 Ctrip API 失效时补充提供按日期粒度的最低价)
python scripts/search_flights.py --setup-zbape# 免费密钥申请地址:https://api.zbape.com/doc/54
热门AI工具
相关专题
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.8万人学习
共6课时 | 54.7万人学习
最新文章