Token导航 LogoToken导航TokenDH.com
开发权限需确认clawhub未标认证来源可访问clear审计通过

12306-train-assistant12306 列车助理

Agent Skill

12306-train-assistant 用于补充开发相关能力,适合在 OpenClaw 中需要让 Agent 承接开发相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

35,703

周安装

1,518

GitHub Stars

8

下载量

12,508
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:12306-train-assistant(12306 列车助理)
来源仓库:https://github.com/myxtype/12306-train-assistant
安装命令:
openclaw skills install 12306-train-assistant
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install 12306-train-assistant

简介

12306查询与订票辅助技能,支持余票查询、经停站查询、中转乘、候补查询与提交/取消、登录状态检查、密码登录与二维码登录、下单与支付链接获取;当用户提到火车票、高铁票、经停站、中转、补候或12306查票时触发。

SKILL.md

name
12306-train-assistant
description
12306 查询与订票辅助技能,支持余票查询、经停站查询、中转换乘、候补查询与提交/取消、登录状态检查、密码登录与二维码登录、下单与支付链接获取;当用户提到火车票、高铁票、经停站、中转、候补或 12306 查票时触发。
icon
🚄

12306 CLI Skill 🚄

目标

用本仓库的 client.py 完成 12306 相关查询与下单辅助,优先覆盖:

  • 余票查询:left-ticket
  • 中转换乘:transfer-ticket
  • 中转下单:transfer-book
  • 经停站:route(支持 --train-code 自动解析)
  • 登录态检查:status
  • 二维码登录:qr-login-create
  • 候补管理:candidate-queue / candidate-orders / candidate-submit / candidate-cancel / candidate-pay
  • 支付信息:order-pay
  • 需要登录的操作:passengers / orders / order-no-complete / book / transfer-book / order-pay / candidate-submit / candidate-cancel / candidate-pay

触发信号

用户提到下列需求时触发本技能:

  • “查明天北京到上海余票”
  • “G1033 经停站”
  • “深圳到拉萨怎么中转”
  • “把第1个中转方案下单”
  • “候补排队状态怎么样”
  • “12306 登录状态”

执行原则

  1. 默认用 text 输出(便于用户阅读);仅在用户明确要求结构化数据时加 --json
  2. 解析相对日期(今天/明天/后天)为 YYYY-MM-DD 后再执行命令。
  3. 站名支持中文/拼音/三字码,直接传给命令即可。
  4. route 优先用 --train-code,减少用户提供 train_no 的负担。
  5. 失败时先给出可执行修复建议(缺参数、日期格式、站名不匹配、风控限制等)。
  6. book/transfer-book 成功后优先告知订单号,并提示下一步执行 order-pay 获取支付参数;若网页支付不可用,建议去 12306 App 的“待支付订单”继续支付。
  7. qr-login-create 会自动后台启动登录检查;扫码确认后统一用 status 判断是否已登录。

常用示例

示例 1:余票查询

python3 client.py left-ticket --date 2026-03-23 --from 北京南 --to 上海虹桥
python3 client.py left-ticket --date 2026-03-23 --from 北京 --to 上海 --limit 10 --json

示例 2:中转换乘

python3 client.py transfer-ticket --date 2026-03-23 --from 深圳 --to 拉萨 --limit 10
python3 client.py transfer-ticket --date 2026-03-23 --from 深圳 --to 拉萨 --middle 西安 --json

示例 2.1:中转下单

# 先预检(不最终提交)
python3 client.py transfer-book --date 2026-03-23 --from 成都 --to 广安 --plan-index 1 --seat second_class --passengers 张三 --dry-run

# 正式提交
python3 client.py transfer-book --date 2026-03-23 --from 成都 --to 广安 --plan-index 1 --seat second_class --passengers 张三

示例 3:经停站

# 推荐:直接用车次号,脚本自动解析 train_no
python3 client.py route --train-code C956 --date 2026-03-23 --from 南部 --to 南充北

# 已知 train_no 时可直查
python3 client.py route --train-no 760000C95604 --date 2026-03-23 --from NBE --to NCE

示例 4:登录与状态

python3 client.py status
python3 client.py login --username <账号> --password <密码>
python3 client.py login --username <账号> --id-last4 <证件后4位> --send-sms
python3 client.py login --username <账号> --id-last4 <证件后4位> --sms-code <6位验证码>

# 二维码登录流程
python3 client.py qr-login-create
python3 client.py status

示例 5:乘车人与订单

python3 client.py passengers --limit 50
python3 client.py orders --where G --page-size 20
python3 client.py orders --where H --start-date 2026-02-01 --end-date 2026-03-01
python3 client.py order-no-complete
python3 client.py order-no-complete --any --json

示例 6:订票(预检与提交)

# 只校验,不最终提交
python3 client.py book --date 2026-03-23 --from 北京南 --to 上海虹桥 --train-code G101 --seat second_class --passengers 张三 --dry-run

# 正式提交
python3 client.py book --date 2026-03-23 --from 北京南 --to 上海虹桥 --train-code G101 --seat second_class --passengers 张三

# 单人选座(D 会自动归一化为 1D)
python3 client.py book --date 2026-03-23 --from 北京南 --to 上海虹桥 --train-code G101 --seat second_class --passengers 张三 --choose-seats D

# 不下单,仅获取订单支付信息(普通/中转通用)
python3 client.py order-pay --pay-channel alipay

示例 7:候补查询

# 候补排队状态
python3 client.py candidate-queue

# 候补订单(进行中)
python3 client.py candidate-orders

# 候补订单(已处理)
python3 client.py candidate-orders --processed --start-date 2026-03-11 --end-date 2026-04-09 --limit 20

# 提交候补(建议目标席别余票为“无”时)
python3 client.py candidate-submit --date 2026-03-23 --from 北京南 --to 上海虹桥 --train-code G101 --seat second_class

# 取消候补
python3 client.py candidate-cancel --reserve-no <候补单号>

# 候补支付参数(自动读取 reserve_no)
python3 client.py candidate-pay

# 候补支付参数(指定 reserve_no)
python3 client.py candidate-pay --reserve-no <候补单号>

每个命令参数说明

全局参数(所有命令可用)

参数必填默认值说明
--timeout15请求超时时间(秒)
--json关闭以 JSON 输出结果

left-ticket 余票查询

参数必填默认值说明
--date出发日期,YYYY-MM-DD
--from出发站(中文/拼音/三字码)
--to到达站(中文/拼音/三字码)
--purposeADULT乘客类型
--endpointqueryG余票接口类型,queryGqueryZ
--limit20文本输出时最多展示行数

transfer-ticket 中转换乘

参数必填默认值说明
--date出发日期,YYYY-MM-DD
--from出发站
--to到达站
--middle指定换乘站,不传则自动推荐
--result-index0分页游标
--can-queryY是否继续查询更多方案(Y/N
--show-wz关闭显示无座方案
--purpose00中转接口乘客类型参数
--channelE中转接口渠道参数
--endpointqueryG中转接口类型,queryGqueryZ
--limit20文本输出时最多展示方案数

transfer-book 提交中转订单

参数必填默认值说明
--date出发日期,YYYY-MM-DD
--from出发站
--to到达站
--middle指定换乘站,不传则自动推荐
--plan-index1选择第几个中转方案(从 1 开始)
--result-index0中转查询分页游标
--can-queryY是否继续查询更多方案(Y/N
--show-wz关闭显示无座方案
--seat席别(如 second_class / O / 一等座
--passengers乘客姓名,多个用逗号分隔
--purpose00中转乘客类型编码
--channelE中转接口渠道参数
--endpointqueryG中转接口类型(queryG/queryZ
--max-wait-seconds30排队轮询最长等待秒数
--poll-interval1.5排队轮询间隔(秒)
--dry-run关闭只检查不提交最终确认

route 经停站查询

参数必填默认值说明
--train-code二选一车次号(如 C956G1033),会自动解析 train_no
--train-no二选一内部车次号(如 760000C95604
--date查询日期,YYYY-MM-DD
--from区间出发站
--to区间到达站
--endpointqueryG--train-code 模式下用于解析 train_no
--purposeADULT--train-code 模式下用于解析 train_no
--limit200文本输出时最多展示站点数

login 登录

参数必填默认值说明
--username12306 用户名/邮箱/手机号
--password交互输入或 KYFW_PASSWORD登录密码
--id-last4证件号后 4 位,短信验证场景需要
--sms-code6 位短信验证码
--send-sms关闭仅发送短信验证码,不执行完整登录

status 登录状态检查

无专属参数,仅使用全局参数。

qr-login-create 生成二维码登录图片(自动后台检查,不阻塞)

参数必填默认值说明
--appidotn二维码登录 appid

passengers 乘车人查询

参数必填默认值说明
--limit200文本输出最多展示人数

orders 订单查询

参数必填默认值说明
--whereGG 未出行/近期,H 历史订单
--start-date自动计算查询起始日期,YYYY-MM-DD
--end-date今天(--where H 时为昨天)查询结束日期,YYYY-MM-DD;历史订单场景必须早于今天
--page-index0页码
--page-size8每页条数
--query-type1查询类型:1 按订票日期,2 按乘车日期
--train-name按订单号/车次/姓名筛选(对应接口字段 sequeue_train_name

order-no-complete 查询 1 条未完成订单

参数必填默认值说明
--any关闭默认仅返回可支付订单(pay_flag=Y);开启后返回第一条未完成订单

candidate-queue 候补排队状态

无专属参数,仅使用全局参数。

candidate-orders 候补订单查询

参数必填默认值说明
--processed关闭查询已处理候补订单;默认查询进行中
--page-no0页码
--start-date今天查询起始日期,YYYY-MM-DD
--end-date起始日期+29天查询结束日期,YYYY-MM-DD
--limit20文本输出最多展示条数

candidate-submit 提交候补订单

参数必填默认值说明
--date出发日期,YYYY-MM-DD
--from出发站
--to到达站
--train-code目标车次(如 G101
--seat席别(如 second_class / O / 一等座
--passengers乘客姓名,多个用逗号分隔;不传时默认选首位乘车人
--purposeADULT乘客类型
--endpointqueryG余票接口类型
--force关闭即使余票不是“无”也尝试提交候补
--max-wait-seconds30候补排队轮询最长等待秒数
--poll-interval1.0候补排队轮询间隔秒数

说明:当前实现会继续执行候补确认与排队查询;若超时会返回“仍在排队中”,可继续用 candidate-orders/candidate-queue 查看。

candidate-cancel 取消候补订单

参数必填默认值说明
--reserve-no候补单号(reserve_no)

candidate-pay 候补支付参数获取

参数必填默认值说明
--reserve-no自动读取候补单号;不传则尝试从 candidate-queue 自动读取
--pay-channel支付渠道:alipay / wechat / unionpay

order-pay 订单支付参数(不下单,普通/中转通用)

参数必填默认值说明
--pay-channel支付渠道:alipay / wechat / unionpay

book 订票

参数必填默认值说明
--date出发日期,YYYY-MM-DD
--from出发站
--to到达站
--train-code目标车次(如 G101
--seat席别(如 second_class / O / 一等座
--passengers乘客姓名,多个用逗号分隔
--purposeADULT乘客类型
--endpointqueryG余票接口类型
--choose-seats选座(如 1D;单人可传 D
--max-wait-seconds30排队轮询最长等待秒数
--poll-interval1.5排队轮询间隔(秒)
--dry-run关闭只检查不提交最终确认

参数提取规则

  • 出发站:--from
  • 到达站:--to
  • 日期:--date(格式 YYYY-MM-DD
  • 经停场景:用户给车次号(如 G1033C956)时用 --train-code
  • 经停场景:用户给内部号(如 760000C95604)时用 --train-no
  • 查询区间优先用用户提供的 from/to

输出策略

  • 默认输出文本结果并概括关键信息。
  • 若用户说“返回 JSON / 机器可读”,添加 --json 并返回结构化摘要。
  • book/transfer-book 成功时应突出 order_id,并提示用户执行 order-pay 获取支付参数。

示例工作流

示例 A:余票

用户:“查明天北京到上海余票”

python3 client.py left-ticket --date <明天日期> --from 北京 --to 上海

示例 B:经停站

用户:“C956 经停哪些站”

如果用户未给日期或区间,先补齐最小参数(日期、from、to);拿到后执行:

python3 client.py route --train-code C956 --date <日期> --from <出发站> --to <到达站>

示例 C:中转

用户:“深圳到拉萨怎么中转”

python3 client.py transfer-ticket --date <日期> --from 深圳 --to 拉萨 --limit 10

示例 C.1:中转下单

用户:“把第1个中转方案给我下单,二等座,乘客张三”

python3 client.py transfer-book --date <日期> --from <出发站> --to <到达站> --plan-index 1 --seat second_class --passengers 张三

# 下单成功后,单独获取支付参数/二维码
python3 client.py order-pay --pay-channel alipay

示例 D:候补

用户:“帮我看看候补订单有没有兑现”

python3 client.py candidate-orders --processed --start-date <起始日期> --end-date <结束日期> --limit 20

限制与注意

  1. 中转结果来自 12306 推荐,不保证覆盖所有可行组合。
  2. 可能触发风控(如 error.html),需提示用户稍后重试或降低频率。
  3. 订票链路依赖登录态与乘车人信息,建议先 status/passengers
  4. 相对日期必须换算成绝对日期再执行命令。
  5. 支付阶段统一走 order-pay;脚本会尝试返回支付二维码/链接;也要主动提示用户去 12306 App 的“待支付订单”支付。

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

98.77%
按下载量换算12,354

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

权限需确认

当前来源未能明确判断权限范围,默认进入异常复核队列。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills