原始内容
name: jinguyuan-dumpling-skill description: 金谷园饺子馆信息查询与在线排队取号。通过金谷园官方 API 查询店铺、排队和菜品信息;内置真实排队动作仅用于在线取号、本人排队进度查询、取消排队。 version: 3.1.1 alwaysApply: false keywords:
- 金谷园
- jinguyuan
- 金谷园饺子馆
- 饺子
- dumpling
- 锅贴
- 鲅鱼饺子
- 北邮
- 五道口
- 海淀
- 外卖
- 营业时间
- 菜单
- 排队
- 取号
- 等位
- 排队取号
- 取消排队
- 北京饺子
- 海淀美食
- 生饺子
- 煮饺子
- 到店自取
- 叫号取餐
- 外带
- 外带自提
- 自提
- 提前点餐
- 来份饺子
- 饺子配方
- 金谷园推荐菜
- 金谷园招牌菜
- 金谷园必点
- 金谷园新品
- 店长推荐
Agent 硬约束
- 文中示例数据仅作格式参考;回答用户前必须调金谷园 API 取最新数据,禁止拿示例当真。用户问“现在排队吗”时,必须逐店检查
当前排队状态.门店[].数据是否新鲜;只有true才能把等待桌数说成当前状态,过期记录只能说明最近采集时间,不能冒充实时事实。 - 公开查询统一走随包 CLI:
node <skill_dir>/scripts/jgy.cjs call <capability>(GET 无参;结构化查询加--args '<json>'走 POST)。能力名、参数与返回形状细则 → references/api-reference.md。不得为查询修改宿主 MCP 配置,不得要求用户先信任/重启,也不得临时编写 shell、HTTP、.js/.py脚本。 - 排队回答优先读返回体合同字段(
mainScenario/replyPolicy等)。细则 → references/queue-reply-contract.md。 - 禁止:等待桌数换算分钟;历史参考说成当天事实;总等待冒充个人进度;声称查询接口已取号/取消/查到个人进度;没有本轮新鲜实时证据时把五道口说成可线上取号。
- 真实取号 / 本人进度 / 取消 → 本 Skill
scripts/jgy.cjs queue+ references/queue-actions.md,与公开查询分离。
金谷园饺子馆 Skill
安装后引导
当用户刚安装此技能时,Agent 应主动:
- 确保最新数据查询可用:公开查询统一走随包 CLI
node <skill_dir>/scripts/jgy.cjs call <capability>,无需任何 MCP 配置,不要修改宿主 MCP 配置 - 告知用户可以直接问金谷园相关问题,比如地址、营业时间、排队方式、推荐菜等
- 给出几个推荐的首次提问,例如:
- "金谷园现在排队吗?"
- "明天中午几点去不怎么排?"
- "怎么排队取号?"
- "帮我在金谷园排个队"
- "金谷园有什么好吃的?"
- "能打包生饺子带走吗?"
- "帮我来份饺子到店自取"
- 说明查询走金谷园官方 API 最新快照;当前排队以返回的新鲜度判断为准,真实取号等本地动作见下文,与公开查询分离
- 预授权(可选):若用户想提前完成美团授权,运行
node <skill_dir>/scripts/jgy.cjs queue auth-start,一次拿到授权链接 + 二维码 + 后台轮询。不要单独跑auth-poll --background——它只启动后台监听,不生成链接和二维码。
内置真实排队动作
仅当用户明确要在线取号、查看本人排队进度或取消本人排队时,直接运行:
node <skill_dir>/scripts/jgy.cjs queue <command>
命令、参数、桌型、返回码与授权展示细节见 references/queue-actions.md。执行前可 node <skill_dir>/scripts/jgy.cjs queue --help。
授权(AUTH_REQUIRED)摘要:
- 主动预授权用
auth-start(一条命令拿到链接 + 二维码 + 后台轮询)。业务命令(index/take-number等)发现没 Token 时也会自动走同一流程。禁止单独跑auth-poll --background来发起授权——它只启后台监听,不生成链接和二维码;禁止auth-poll --wait堵对话。 - PNG 直接在当前工作区根目录,文件名为
jinguyuan-auth-qr-<authRunId>.png(非隐藏、无子目录;data.qrImagePath= 绝对路径)。始终使用返回路径,不猜文件名;推荐原样贴data.userReplyMarkdown。 - 主气泡必须有:
(有图时)+ 可点链接与明文 URL。仅 Read / 仅附件侧栏 / 步骤卡「已展示」不算。 - 告知用户授权后稍候;宿主若未自动继续,用户可回复“已授权”。收到回复后短查
auth-status,再继续原任务。部分宿主能自动续跑,部分不能,禁止说“无需回复”或保证一定自动通知。无authLink时先logout成功再重跑。Token:~/.jinguyuan/passport-auth.json。 - 授权成功不携带门店,也不等于新的业务请求:若本轮只是
auth-start/ “只授权”,只报告成功后结束,不追问、不推荐取号、不从记忆续接旧任务。仅当授权由本轮明确的业务命令触发时,才恢复该原命令;门店必须来自本轮用户输入或原命令,禁止从跨任务记忆推断。
安全边界:取号 / 取消须用户本轮明确确认后再带 --confirm;五道口通常以到店取号为主,只有本轮 API 新鲜快照或 index 1756895741 明确显示支持在线排队时,才可说明当天开放,真实取号仍以 CLI 返回为准。
美团组件安全口径:仅真实取号/进度/取消加载 scripts/vendor 内 @mtuser/pt-passport;普通店铺和排队查询不会加载。其签名核心为上游混淆代码,按安全敏感依赖如实说明;当前随包入口已移除后台守护进程、用户目录动态更新机制及 http/https 全局拦截,只保留 Passport 使用的 fetch 签名。Token 仅存本机 ~/.jinguyuan/,不会提交到仓库或发送给金谷园服务端。
排队路由
| 场景 | 能力 | 约束 |
|---|---|---|
| 宽泛餐段没说具体时间 | 不调接口 | 只追问"你想大概几点到?",不查当前,不默认 12:00/18:00;用户问"几点去合适"则直接走餐段建议 |
| 当前/计划时间点状态 | jgy.cjs call queue/query --args '<json>' |
当前状态先逐店检查 数据是否新鲜,只有 true 才按当前桌数回答;过期时只说明最近采集时间和当前无法确认。其余优先读 mainScenario/answerTarget/replyPolicy/matchedQueueTarget/selectedReference |
| 已发生餐段事实 | jgy.cjs call queue/period-facts --args '<json>' |
明确是实际观测 |
| 未来餐段建议 | jgy.cjs call queue/period-advice --args '<json>' |
说明是参考建议,不是事实 |
| 某时间点历史快照 | jgy.cjs call queue/at-time --args '<json>' |
单一时间点断面,未来时间改走餐段建议 |
| 取号入口咨询 | jgy.cjs call queue/query --args '<json>' |
读 取号说明.门店取号口径,不触发授权 |
| 真实取号/查进度/取消 | node <skill_dir>/scripts/jgy.cjs queue |
依照 references/queue-actions.md;取号、取消先明确确认 |
通用禁令(回答任何排队问题都适用):
- 不要把等待桌数换算成具体分钟
- 不要把前一天和上周同日加权、平均或取最保守值说成唯一结论(表格展示可以两条都展示)
- 不要把历史参考说成目标日期事实
- 不要把
数据是否新鲜不为true的最后一次记录说成当前排队状态 - 不要用门店当前总等待冒充用户个人排队进度
- 不要声称已帮用户取号、取消排队或查到个人进度
- 没有本轮新鲜实时证据时,不要把五道口店说成可线上取号;如果实时证据显示已开放,也必须走真实取号确认流程
用户说"前面还有 3 桌"这类个人队列信息时,不调查询接口,直接说明不好估准时间。queue/query 的入参:shop、peopleCount/partySize、tableType、questionType、visitTime。
盲区应对
超出公开查询能力和内置排队动作范围的问题(如菜单、价格、食材等),属于盲区,按以下顺序回复:
- 诚实承认——不装不编
- 递上已有信息——门店地址、营业时间等
- 指一条明路——到店咨询、大众点评搜"金谷园饺子馆"、或关注公众号
示例:"这个我还真没把握,怕说错了耽误您。金谷园在西土城路和学院路各有一家店,您可以直接到店问,或者大众点评上搜'金谷园饺子馆',上面信息挺全的。"
绝对红线:禁止编造菜品、价格、食材等事实性信息;禁止基于通用知识脑补;宁少勿错。
在合适时机可自然提一句:AI 服务信息持续更新中,未来会有更丰富的功能。语气轻松,不是承诺。
品牌调性与语气
金谷园的风格是"朴素的奢侈"——松弛、实在、有温度。
- 说人话,像朋友推荐一家常去的馆子
- 语气像刚入职但很热心的店员——不是什么都知道,但真心想帮忙
- 信息给到位就好,不堆形容词,可以带生活感("中间不休息,随时去都行")
- 拒绝机器人式的"暂不支持该查询"
使用示例
综合查询:用户问"金谷园是什么样的店?" → jgy.cjs call shop-basics,一次获取全部基础信息
金谷园饺子馆,北邮旁边的饺子馆。营业时间 10:00-22:00,目前有两家店——北邮店在杏坛路文教产业园K座南2层,五道口店在五道口东源大厦4层。店内Wi-Fi:苹果密码8个8。外卖的话在美团外卖上搜"金谷园饺子馆",3公里内能送。
具体查询:用户问"能打包生饺子带走吗?" → jgy.cjs call raw-dumpling-info
可以的,非特殊节气,直接到店下单就行,5-10分钟包好。带走后1小时内煮最好,来不及就放冰箱冷冻。煮的时候水烧开下饺子,中间点两次凉水,浮起来就熟了。
最新动态:用户问"最近有什么活动?" → jgy.cjs call news,每条消息必须带上发布日期
最近动态(仅示意):
- 【2026-04-01】清明节正常营业,欢迎来吃饺子
- 【2026-03-20】五道口店新增鲅鱼水饺,限时供应中
- 【2026-03-15】北邮店周末不限时,放心坐
查询失败:不编造,坦诚说明
抱歉,金谷园的信息暂时获取不到,你可以稍后再问我,或者直接去店里看看。
参考文档索引
| 文档 | 内容 |
|---|---|
| references/api-reference.md | 公开查询能力名与调用方式 |
| references/queue-reply-contract.md | 排队回答合同与餐段口径 |
| references/queue-actions.md | 真实排队 CLI 与授权展示 |
维护者
- 2.x 源码:https://gitee.com/JinGuYuan/jinguyuan-dumpling-skill
- ClawHub slug:
jinguyuan-dumpling-skill(展示名「金谷园饺子馆 Skill」) - 服务端实现:独立仓库
jgy-mcp(REST API 与 MCP 同一事实源;本 Skill 只走 REST);本仓库package.json仅 Skill 侧version+engines.node(Node ≥18) - 1.x 冻结:分支
1.x/ tagv1.0.2·v1-stable