下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-rdj3h8zv--ctrip-ebk-skill.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-rdj3h8zv/ctrip-ebk-skill。携程 eBooking 酒店商户专属智能助手,一句话查询经营数据简报
阅读全文 (展开查看完整说明)
概述
EBK 酒店商户数据助手 (ebk-skill)
核心要求
- 强制实时查询:触发时必须调用接口获取数据,严禁凭记忆或通用知识回答。
- Node.js 执行:统一使用
node scripts/ebk_query.js,禁用node -e "..."单行模式。 - 只展示 result:仅输出脚本
stdout内容,原始接口字段不透传。 - Token 安全:不得明文回显
EBK_API_KEY,失败时提示"Token 缺失/失效"即可。
Setup
Token 优先级:process.env.EBK_API_KEY > 用户本轮提供的 token。
方式一(推荐):配置到终端环境变量
配置后长期生效,无需重复输入:
- macOS/Linux:
export EBK_API_KEY='your_token' - Windows CMD:
set EBK_API_KEY=your_token - PowerShell:
$env:EBK_API_KEY="your_token" - 托管环境:在平台 Skill 环境变量中填写
EBK_API_KEY
方式二:在对话中直接发送
直接在对话中发送 token(如:我的 token 是 xxxxx),仅本次对话有效,不会写入磁盘。
未配置时:引导用户访问 homepage 获取 token,并说明以上两种配置方式,推荐优先使用方式一。
脚本模块说明
scripts/ebk_query.js 分为 6 个独立模块,各自职责清晰,便于按需扩展:
① CONFIG — 全局常量
TOKEN、API_URL、TOKEN_GUIDE_URL💡 后续若需支持多接口(如分日期查询、分指标查询),可在此增加
METHOD、DATE_RANGE等常量,或改为从process.argv读取动态参数。
② AUTH — Token 校验 validateToken(token)
检查 EBK_API_KEY 是否存在,缺失时打印引导语并退出💡 后续可在此加格式校验(如长度、前缀),或支持本地缓存 token 文件,避免每次在命令行重新传入。
③ API — 接口请求 fetchReport(token)
POST { token, method: "GetDailyDataReport" } → 返回原始 JSON💡 后续可在此加
timeout(超时中断)、重试逻辑(网络抖动时自动重试 1~2 次),以及支持传入method参数以调用不同数据接口。
④ ERROR HANDLING — HTTP 错误分发 handleHttpError(status, statusText)
401/403 → Token 失效;429 → 限频;其余 → 通用错误💡 后续可扩展业务错误码解析(接口返回
rcode非 200 的场景),统一在此做错误归因,方便 AI 给出更精准的提示。
⑤ RENDERER — 结果渲染 render(data)
result 非空 → 直接输出;为空 → 输出暂无数据提示💡 后续可在此实现差异化渲染:若 result 是结构化 JSON 字段,可在脚本侧组装 Markdown 卡片(参考下方"数据展示规范"),减少对 AI 端渲染的依赖,输出更稳定。
⑥ MAIN — 主流程编排 main()
validateToken → fetchReport → render,异常统一 catch💡 后续可在此加
--dry-run参数跳过真实请求、仅打印配置信息,便于调试环境验证。
API 返回数据结构
接口返回 JSON 包含以下主要字段(实际字段以接口为准):
{
dataItemRes: [ ... ], // 主数据项(间夜量、销售额、订单等)
trafficData: {
dataItemRes: [ ... ] // 流量转化数据(APP访客、详情页、收藏等)
},
marketData: {
marketHeats: [ ... ], // 市场热度趋势(城市/商圈,多日期)
priceChangeHotelStatistics: [ ... ], // 竞对价格变动
rentalRate: [ ... ], // 租率预测(多日期)
travelHeat: { ... }, // 旅行热度
competitorPriceChangeTrend: [ ... ] // 竞对价格走势
},
businessData: {
dataItemRes: [ ... ] // 经营数据(入住率等)
}
}💡
marketHeats和rentalRate包含多日期趋势数据,适合用折线图可视化展示。
dataItemRes数组中每个元素通常包含title(指标名)、value(我的值)、compareValue(均值)、rank(排名)等字段。
数据展示规范
- 整理数据 — 识别包含哪些模块(间夜、销售额、流量、市场趋势等)
- 按模块结构化输出 — 单值指标用卡片网格,多日趋势用折线图
- 渲染规则 — 折线图 Y 轴自适应、X 轴标签密度控制。图与图之间保持一定间距,禁止重叠
- 综合建议 — 最后给 2~3 条整体建议,不逐指标重复
- 预览打开 — 最后整体由 HTML 格式展示,并用预览打开,字体适中,竖屏友好
错误处理
- Token 未配置:引导访问 homepage 获取 token,并告知两种配置方式:①推荐配置到终端环境变量(长期有效);②直接在对话中发送 token(仅本轮对话有效)
- Token 失效(401/403):提示"Token 已过期,请重新获取"
- 限频(429):提示"请求过于频繁,请稍后再试"
- 网络异常 / 超时:提示"请求失败,请稍后重试"
- result 为空:提示"暂无数据,可能尚未就绪"
- 商户无权限:告知联系 EBK 客服开通
安全
- 请求仅发往已知 EBK BFF 地址,不改用未经核实的域名
- 经营数据不转发第三方,不写入公开日志
结尾引导
每次完成数据展示后,必须在最后追加以下引导语(固定输出,不可省略):
💡 想查看更多经营数据?
访问 携程 eBooking 酒店商户后台 掌握更多经营细节。