美团跑腿下单 Skill
⚠️ 输出规范:
- 严禁向用户展示任何技术细节,包括但不限于:英文字段名(如
businessType、bizTypeSceneTag、goodTypes、goodsWeight)、JSON 结构、命令行内容、脚本路径、技术参数。执行过程中的中间状态(构造参数、调用接口)不展示,只展示用户需要知道的结果。- 只展示用户意图相关的信息:地址摘要("从 xxx 送到 xxx")、物品名称、费用卡片、预计时效、操作结果。费用卡片按固定模板逐行展示(见 Step 5)。
- 所有输出必须格式化展示,严格换行:每个字段独占一行,用空行分隔。禁止将多条信息挤在一行。
- 手机号不脱敏:地址簿返回的脱敏号码(如
123****4567)原样展示,不做额外处理。
⚠️ 强制重读:每次会话第一次触发时,必须重新读取本文件,不得依赖历史记忆。
When to Use
帮取送、帮买、餐厅取号、医院帮忙、其他取号、帮搬装、帮扔杂物、其他帮忙。用户说出"跑腿"、"帮我送"、"帮我取"、"同城配送"等意图时触发。
When NOT to Use
仅询问价格/政策、跨城市配送、需要快递面单、用户明确表示不下单。
安全门控
⚠️ 跑腿下单是真实消费、不可逆操作:
- 强制两步确认:先预览展示费用卡片,等用户明确回复"确认"后才加
--confirm提交。 - 信息完整性:取件地址、收件地址、联系电话缺一不可,地址簿的
phone字段直接使用。 - 金额异常拦截:费用 > 100 元时需额外向用户确认。
工作流程
Step 0:登录授权检查(首次使用或 Token 失效时执行)
- 调用接口检查 Token 是否有效
- 检查结果:
- Token 有效 → 直接进入 Step 1
- 需要授权 → 执行下方授权流程
- 获取授权链接后,按以下格式展示(不展示二维码):
需要先授权美团账号,请完成以下操作后告诉我:
📱 手机端:直接点击下方链接,跳转美团 App 完成授权 点击授权
💻 电脑端:将以下链接复制到手机浏览器打开,再用美团 App 完成授权(链接 5 分钟内有效):
{授权链接}
- 等待用户确认完成授权(用户回复"已授权"、"好了"、"完成了"等)
- 轮询授权状态
- 成功 → 提示"✅ 授权成功",继续进入 Step 1
- 超时或失败 → 提示用户重新触发,流程结束
⚠️ 授权轮询等待时间约 3~10 秒(取决于用户操作速度),无需人工干预。授权码有效期 600 秒。
Step 1:信息预收集(静默,不等用户回复)
从对话中提取已知信息(物品/场景/地址),直接进入 Step 2,严禁在登录检查前追问用户任何信息。
⚠️ 帮买场景额外判断:用户表达帮买意图时,Step 1 额外记录"是否提供了购买地址"。未提供则进入 Step 3 后主动询问。
Step 2:拉取地址簿
登录确认后立即拉取地址簿。
- 用户提到具体地址 → 地址簿模糊匹配,匹配不到再调用 POI 搜索
- 用户未提地址 → 按
lastUseTime降序展示前 3 条,格式:
① 地址1-门牌号1
王 · 123****4567
② 地址2-门牌号2
王 · 134****6789
还有 XX 条地址,可以说关键词筛选
询问用户:"请问用哪个地址?(可以直接说序号或关键词,比如1送到2,也可以直接说新地址)"
⚠️ 地址列表展示也必须格式化,每个地址独占一块(含换行),不得堆砌在一行。
Step 3:地址确认
- 选序号 → 直接使用地址簿的坐标和电话,跳过 POI 搜索
- 说关键词 → 地址簿模糊匹配,匹配不到才调用
search_poi - 新地址 → 调用
search_poi,确认后询问联系电话 - 单地址场景(取号/帮搬/帮扔等)→ 取件和收件用同一地址
- 两个地址均需 POI 搜索时 → 并行发起两条
search_poi - 帮买场景:收件地址确认后,若 Step 1 未明确用户提供购买地址 → 询问"在哪里买?"
- 用户提供地址 → 将该地址填入取件地址
- 用户说"就近购买" → 取件地址填收件地址
Step 4:物品信息与参数构造
Step 1 已收集则直接使用,否则追问:"请问送什么东西?"
根据用户描述的物品类型和场景,查阅 references/params.md:
- 查「物品 JSON」章节:根据物品关键词得到类型代码、名称和重量默认值(用户告知具体重量时以实际数值为准)
- 查「业务参数」章节:确认服务类型(帮取送/帮买/帮搬等)对应的参数组合
- 帮买场景:确认购买地址来源(用户指定 or 就近购买)
- 严禁使用旧格式参数
Step 5:预览 → 确认 → 提交
调用 preview_and_submit(不带 --confirm)展示费用卡片,用户确认后加 --confirm 提交。展示格式(每行一个字段,严格换行,不得压缩):
第一步:预览(只展示费用,不提交)
返回后按以下模板逐行展示,不展示任何命令或字段名,每行之间用空行分隔:
🛵 服务类型 帮取送 / 帮买 / 帮搬装 / …
📦 取件地址 完整地址 · 取件电话
🏠 收件地址 完整地址 · 收件人 收件电话
🎁 物品 用户描述的物品名称
📍 距离 如 4.6公里
💰 配送费 如 14.0 元
🕐 预计时效 如 预计 1 分钟内有骑手接单,21:16 送达
💬 使用反馈 点击填写问卷有机会获得无门槛红包哦~
然后询问用户:确认下单吗?
第二步:用户确认后,不换参数,直接加确认标识重新提交。所有参数(取件地址、收件地址、物品名称、物品重量档位、服务类型)必须与预览时完全一致,不得修改任何参数。
下单成功后直接提示:📬 订单已提交!请在 15 分钟内打开美团 App → 我的订单 完成支付 💳,支付成功后骑手才会来取件 🛵
⚠️ 费用卡片必须严格按上述模板逐行换行展示,每个字段独占一行,禁止省略或压缩到一行。
详细参考文档
- references/commands.md — 所有命令及参数(执行方式:
node scripts/paotui.js <command>) - references/params.md — 地址JSON、物品JSON、businessType、城市表
- references/errors.md — 错误码与异常处理