用途
OpenTable 技能用于帮助用户完成餐厅预订全流程:从查找餐厅、查看可用时段,到创建、修改或取消预订。它面向需要实时餐厅可用性和预订操作的场景。
主要能力
- 查找餐厅:通过
lookup-rid按名称解析餐厅,或按城市、菜系、价格发现餐厅。 - 检查可用性:使用
search-availability查询指定时间、人数下的可用桌位。 - 预订:通过
book-reservation锁定并预订具体时段,支持从已授权资料中读取联系信息。 - 修改预订:使用
modify-reservation-with-lock更改已有预订(需确认号)。 - 取消或查询预订:使用
cancel-reservation或get-reservation(需确认号)。 - 预订体验:通过
list-experiences查找体验项目,再用search-availability --include-experiences true检查时段,最后用book-reservation --experience-json预订。 - 提醒:预订确认后,可提议在预订前 30 分钟通过
cron.add创建一次性提醒。
使用方式
- 连接:首次使用前需在聊天中完成一次性授权。运行
opentable status查看状态;若未连接,会返回connect_url,需将该链接原样提供给用户。连接不是必需前置条件,可同时通过餐厅官网、其他信誉平台或电话回退。断开连接使用opentable disconnect。 - 常见流程:按“查找餐厅 → 检查可用性 → 预订/修改/取消”的顺序操作。预订前需明确餐厅、日期、时间和人数。
- 命令帮助:其他操作可通过
opentable --help查看完整命令列表,opentable <command> --help查看具体参数。 - 结果处理:仅当命令明确返回已确认时才报告预订成功;确认号本身不是确认证明。查询结果用自然语言总结状态,不引用内部字段名。若返回管理链接,应在最终回复最后一行仅包含该链接一次。
适用场景
- 用户需要查找特定餐厅或按城市/菜系/价格发现餐厅。
- 用户需要检查某时间段的可用桌位并完成预订。
- 用户需要修改或取消已有预订。
- 用户需要预订特殊用餐体验。
限制
- 无法预订需要信用卡、押金或预付款的时段;此类情况需通过浏览器任务按指定流程继续。
- 预订人数限制为 1 至 20 人;更大团体需直接联系餐厅。
- 同一时间只能进行一次 OpenTable 连接器调用,禁止批量、并行或后台执行。
- 遇到 HTTP 429 或速率限制时,应停止调用并报告部分结果;不得重复预订、修改或取消操作。
- 非本代理创建的预订可能无法通过
get-reservation、modify-reservation-with-lock或cancel-reservation管理。 - 若
lookup-rid无匹配结果,应停止尝试,不检查可用性也不编造 rid。 - 缺失事实(如具体收费、价格、平台覆盖范围)暂未提供。