餐饮需求研究

研究 Resy 和 OpenTable 上的餐厅列表,生成带日期的餐厅候选清单,并比较特定时段的空位情况,无需预订。

crawlora-org
2026年10月16日
0 收藏
235 下载

安装与下载

1 ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install dining-demand-research

2 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/
工作区 {'/skills/'}

优先级:工作区 › 全局 › 内置

3 提示词安装

将此提示词复制到 Openclaw 即可自动安装。

请帮我使用 Clawhub 安装 skill-dining-demand-research。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

更倾向于下载?

获取包含原生技能文件的ZIP压缩包。

下载技能 (.zip)

基本信息

名称 餐饮需求研究
Slug dining-demand-research
创建者 crawlora-org
创建时间 2026-10-16 06:08:42
更新时间 2026-10-16 06:08:42
收藏数 0
使用量 235
浏览量 2

安装指南

  1. ClawHub CLI 从源直接安装技能的最快方式。
    npx clawhub@latest install dining-demand-research
  2. 手动安装 将技能文件夹复制到以下位置之一
    全局模式
    ~/.openclaw/skills/
    工作区
    /skills/
    优先级:工作区 > 本地 > 内置
  3. 提示词安装 将此提示词复制到 OpenClaw 即可自动安装。
    请帮我使用 Clawhub 安装 dining-demand-research。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
    更倾向于下载?
    获取包含原生技能文件的ZIP压缩包。
    下载技能 (.zip)

什么是

餐饮需求研究可帮助 AI 代理发现餐厅,并比较 Resy 和 OpenTable 上公开显示的资料、菜单、评论和可预订情况。它会生成带日期且注明来源的快照,供你评估特定本地日期、时间和用餐人数的场所。
作为 Openclaw Skills 研究工作流,它是只读的:不会创建、保留、更改或取消预订,不会购买活动门票,也不保证观察到的时段仍然有空位。它会区分普通预订时段与 Resy 售票餐饮活动,并明确区分发现信息与特定时段的空位情况。

应用场景

根据地点、菜系、价格或无障碍需求建立餐厅候选清单。
比较指定本地日期、时间和用餐人数下 Resy 与 OpenTable 的空位情况。
查看餐厅资料、菜单或评论,为用餐决策提供参考。
将 Resy 售票餐饮活动与普通预订空位分开查看。
创建带日期的快照,记录信息来源以及空位信息的获取时间。
找出没有符合条件的已显示时段的场所,但不将其视为已售罄、歇业或需求旺盛的证据。

工作原理

确认所需地点、用餐人数、本地用餐日期和时间,以及任何菜系、价格或无障碍需求。
谨慎确认场所身份,优先使用各平台专属 ID;否则核实名称、地址或街区。分别保留 Resy 和 OpenTable 的 ID。
使用平台的搜索接口查找候选项。对于 Resy,可使用地点、菜系和活动接口优化发现结果;OpenTable 搜索需要搜索词和坐标。
获取平台专属的餐厅详情,并在有帮助时获取 Resy 空位信息或 OpenTable 菜单和评论。将菜单和评论视为发现数据,而非空位证明。
将所需时间转换为餐厅已核实的本地时区。每次空位查询都记录所请求的本地日期、时间、时区、用餐人数、平台、来源和 retrieved_at。
对于 Resy 活动,通过活动接口查看其门票套餐,并将门票空位和价格与餐厅预订时段分开报告。
提供比较结果,包括已核实的场所身份、发现详情、观察到的时段或明确说明没有符合条件的时段、来源 URL 和快照时间戳。只比较用餐人数和本地时间均相同的结果。

配置指南

此技能介绍平台 API 工作流;所提供的说明未指定安装命令、套件、凭证或环境变量设置。请在能够发出所述 GET 请求的代理环境中使用,并遵循该环境的平台访问要求。
收集所需地点、用餐人数、本地日期和时间,以及相关偏好。
查询空位前,先确认餐厅所在的本地时区。Resy 使用 YYYY-MM-DD 日期;OpenTable 使用 RFC3339-minute 格式的本地 date_time 值。
仅调用相关平台接口,并分别保留各平台的 ID 和来源 URL。
每次空位请求后立即记录 retrieved_at。将响应视为观察结果,而非库存保留。

技能中的接口路径示例;请提供平台专属参数。

GET /resy/locations?q=&country=
GET /resy/search?latitude=&longitude=&term=&date=&party_size=
GET /opentable/search?term=&latitude=&longitude=&date_time=&party_size=

数据架构

此技能规定的是比较结果,而非生成的文件格式。每个场所应包含以下字段:
字段 含义
场所名称 餐厅或活动场所名称
平台和平台 ID Resy 或 OpenTable 及其平台专属标识符;不同平台的 ID 绝不可混用
已核实的地址/街区 用于确认场所身份的已核实地点
菜系和价格指标 发现属性;价格等级不等于菜单总价
所请求的本地日期/时间和时区 原始请求时间,以场所已核实的本地时区表示
用餐人数 实际要求的用餐人数;仅比较人数相同的结果
观察到的时段 返回的空位信息,或明确说明未观察到符合条件的时段
来源 URL 如有返回则提供规范 URL,并与对应平台关联
retrieved_at 每次空位查询立即记录的时间戳
数据类型 将资料/发现信息与特定时段的空位快照分别标明
对于 Resy 活动结果,应将活动空位、门票等级价格、包含内容和活动当天说明作为活动数据报告,并与常规预订时段分开。实际返回价格时,应保留币种和菜单价格范围;不得推断税费、手续费、订金、最低消费或预订总费用。

高级特性

使用 Resy 和 OpenTable 的平台专属发现及详情接口,包括 Resy 地点、菜系、活动、搜索、餐厅和空位接口,以及 OpenTable 搜索、餐厅、菜单和评论接口。
支持特定时段的空位查询,并将每个结果记录为带时间戳的快照,而非预订保留。
优先通过平台 ID 确认有歧义的场所,其次通过已核实的名称和街道地址或街区确认。
处理平台专属时间格式,并要求转换为餐厅所在的本地时区。
将 Resy 售票、固定价格的餐饮活动及其门票套餐空位,与普通餐厅预订分开处理。
谨慎解读结果:用餐人数很重要;没有显示时段并不能证明已售罄或歇业;价格等级不等于菜单总价;发现数据不能证明有空位。
所提供的技能未说明 hooks、多代理编排或自动预订;其工作流仅限于只读研究。


name: dining-demand-research description: Research public Resy and OpenTable restaurant discovery, profiles, and time-specific availability snapshots. Use for dining shortlists or reservation-demand comparisons, not booking or ordering.

Dining demand research

Research public restaurant discovery and the availability currently displayed by Resy and OpenTable. Produce a dated snapshot and a shortlist; these surfaces do not create, hold, modify, or cancel reservations, purchase event tickets, or guarantee a table remains available.

Resolve the restaurant and request context

Establish the requested place, party size, local dining date/time, and any cuisine, price, or accessibility preferences. Resolve ambiguous venues by provider ID first, then name plus street address/neighborhood; never mix a Resy restaurant_id with an OpenTable restaurant_id.
For Resy, discover a city with GET /resy/locations (q, country), then use returned location codes/IDs for GET /resy/cuisines (location) and GET /resy/events (location, optional date, limit, offset). Search venues with GET /resy/search (latitude, longitude, optional term, date, party_size, size); date adds current slots to the results.
For OpenTable, use GET /opentable/search with required term, latitude, and longitude, plus optional date_time, party_size, and size. Use a returned ID with GET /opentable/restaurant (restaurant_id, optional date_time, party_size) to refresh that venue's profile and slots.
Fetch provider-specific detail when it improves the decision: GET /resy/restaurant or GET /resy/availability (restaurant_id, date, optional party_size); GET /opentable/restaurant/menus or GET /opentable/restaurant/reviews (restaurant_id, optional page, size). Menu and review data support discovery; they do not prove a table is available.
Time, availability, and pricing
Resy dates are YYYY-MM-DD; OpenTable date_time is RFC3339-minute local format. Normalize the requested moment to the restaurant's verified local time zone before the call, retain the original local date/time and zone in the output, and do not label an offset-free local time as UTC.
Capture retrieved_at immediately for every availability call, alongside source, provider ID, requested date/time, party size, and canonical URL when returned. Treat returned slots as an observed snapshot: they can change between calls and do not hold inventory.
Party size defaults to 2 on availability/search/detail calls when omitted. Request the user's actual party size; a result for one party size cannot be generalized to another. Search result limits default to 10 for Resy and OpenTable; Resy's event list also defaults to 10, while OpenTable reviews default to page 1 with 20 reviews. Do not imply undocumented maximums.
A venue price tier/band is an affordability signal, not a menu total. Use actual menu prices only where returned, preserve currency and scope, and do not infer taxes, fees, deposits, minimums, or reservation cost.

Keep regular reservations distinct from events

Resy GET /resy/events lists ticketed, fixed-price/fixed-capacity dining events, not ordinary reservation slots. For one event, call GET /resy/event with the event result's event_url_slug, restaurant_url_slug, and the same location (optional party_size) to inspect ticket packages and their live availability. Report event availability, tier price, inclusions, and event-day instructions separately from restaurant reservation availability. This is read-only research, never a ticket purchase.

Deliverable and bounds

Return a comparison with venue name, provider and provider ID, verified address/neighborhood, cuisine, price signal, requested local date/time/zone, party size, observed slots or explicit lack of slots, source URL, and retrieved_at. State which facts are discovery/profile data versus a time-specific availability snapshot. Compare only like-for-like party sizes and local times; a missing slot is not proof of a sellout, closure, or lack of demand. Keep sources separate unless venue identity is independently verified.

Mundane

长任务依赖与验收规划器