12306购票搜索
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-rn88lg3j/12306-ticket-purchase。
技能介绍
要解决什么问题
在对话里查火车票,模型若自行「猜」余票或车站编码,结果既不可信也违反 12306 的数据形态。本技能把查询交给 小笨羊科技 提供的后端 API,Agent 只负责理解意图、选工具、凑齐 station_code 与日期等参数,再把 result["raw"] 整理给用户。
核心能力与工作方式
技能基于 Model Context Protocol (MCP),对外是一组 scripts.tools 函数,典型链路如下:
- 密钥:首次若
.env无XBY_APIKEY,须用 AskUserQuestion 向用户索取,再调用scripts.config.set_api_key持久化;密钥在 xiaobenyang.com 获取。 - 车站编码:用户说城市名时用
get_station_code_of_citys;说具体站名用get_station_code_by_names;查一城多站用get_stations_code_in_city。余票接口 禁止 直接传中文地名。 - 日期:相对说法(「明天」「下周三」)先调
get_current_date(上海时区yyyy-MM-dd),再算目标日。 - 查票:直达余票
get_tickets(可按 G/D/Z 等筛选、时段、排序、条数限制,格式text/csv/json);中转get_interline_tickets(默认最多前十条);某车次经停get_train_route_stations。
模型是路由层:缺参数就追问,参数齐则用 关键字参数 调工具,成功与否看 success 与 message,展示以 raw 为准。
边界与注意点
- 无 API 密钥时不得查询或编造数据,这是 SKILL 里的硬约束。
- 中转查询目前只支持返回有限条数(文档写明前十条)。
get_station_by_telecode多用于调试或已知 telecode 的补全,日常对话较少直接用到。
使用场景
- 出差前在对话里给出日期与出发/到达城市或站名,查直达余票并按高铁、动车类型或出发时段筛选。
- 直达席别紧张时,用中转接口查联程方案,对比文档限制内的前若干条换乘组合与余票。
- 用户指定车次号与乘车日后,查询该列车经停站、到站与发车时间,便于安排中途接站或换乘。
- 用户用「明天」「下周三」等相对日期提问时,先对齐上海时区日期,再解析站码并调用余票或经停接口。
适合人员
- 在企微/Slack 等渠道帮同事查票、需把中文地名转成站码再查余票的行政或差旅协调人。
- 正在把国内铁路余票与经停查询接进客服或行程 Agent,并需强制 API 密钥流程的集成开发者。
- 习惯用自然语言问「北京南到上海虹桥明天高铁」,希望 Agent 按 SKILL 路由而非编造票价的个人或家庭出行协助者。
- 需要在中转方案与直达票之间做对比、并限制返回条数展示给终端用户的出行规划类 Bot 维护者。