Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help


产品价格监控器

用于监控特定的可购买商品,并在其综合总价或库存状态发生变化时发出警报。该工具可针对不同规格版本、税费、货币类型、库存情况、取消规则以及重复警报等问题进行专门处理。初始化操作会在前台执行一次;后续的定期检查则通过 cronjob 定时触发(price-watch 自动化模板负责实现这一功能)。

适用场景

  • “当这款笔记本电脑价格降至1,000美元以下时通知我。”
  • “监控这些航班,一旦票价低于500美元即发出提醒。”
  • “当这家酒店有可退款的客房时告知我。”
  • “追踪票务/商品信息的可用性。”
  • 对于已设置的价格监控任务,系统会按定时计划触发检查(步骤4-6)。

不适用场景

不适合用于一次性查询“当前价格是多少”的需求(此类情况可直接使用 web_search/web_extract 工具)。

操作流程 — 初始化设置(前台,执行一次)

1. 明确指定目标商品

需记录商品的来源网址/供应商信息、产品编号或列表ID(如有)、不同规格版本、数量、购买地点、日期范围、购买人数/客人数量、会员登录要求、商品状态、销售商信息以及可接受的替代商品。只有当两种不同规格无法混淆时,步骤才算完成。

2. 设定警报条件

需指定货币类型、含税价与不含税价、最高价格阈值、库存可用性规则、运费信息、是否可退款、舱位/房间/票务等级、冷却时间以及通知接收方式。只有当通过示例测试后能得出确定的警报结果时,步骤才算完成。

3. 确定初始基准值,随后设置定时任务

请使用 web_extract 或 browser_navigate 功能获取限定的实时价格信息,并记录数据获取时间、商品原价、各类费用及税金、库存状况以及相关购买条款。在确保前端数据获取功能正常运行之后,方可安排任务执行。接下来,需将监控合约(包括商品信息、具体条件以及基准观测值)写入 ~/.hermes/price-watches/<watch-slug>.json 文件中的状态文件中,随后创建相应的任务。

cronjob(action="create",
        schedule="every 6h",
        prompt="Load the product-price-monitor skill and run the tick for the watch contract at ~/.hermes/price-watches/<watch-slug>.json.",
        deliver=<user's destination>)

请选择一个既符合速率限制又遵守网站服务条款的更新频率。当观测数据与基准值完全匹配且任务存在时,即视为处理完成。

流程 —— 检查(每次定时执行)

4. 获取并标准化数据

重新获取原始数据。仅使用带有时间戳的汇率转换货币,同时保留原始货币单位。需区分基础价格、强制费用、运费/税费、总价以及商品是否有货状态。忽略那些波动较大的页面元数据。如果获取失败,则表示状态未知:应报告或跳过处理,绝不能用错误页面覆盖上一次有效的观测结果。当当前观测数据与基准值相当或被明确标记为失败时,即视为处理完成。

5. 比较并过滤重复项

在达到阈值、出现符合条件的有货状态、价格显著下降或按需恢复时发出警报。将最后一次有效的观测结果及最后一次警报的指纹信息存储到状态文件中。对于相同的优惠信息,再次触发时不得再发送警报,必须遵守冷却时间要求。当根据存储的状态可以确定是否需要警报时,即视为处理完成。

6. 发送通知或保持沉默

当满足特定条件时,警报内容应包括:具体的商品/型号、观测到的总价格及原始货币单位、有货状态与服务条款、阈值值、数据获取时间戳、来源链接以及重要的不确定性因素。绝不能声称已预留库存。如果没有任何符合条件的情况,则保持沉默——除非用户要求定期发送“仍在监控中”的提示,否则不得发出此类消息。当状态文件反映了本次执行的结果时,即视为处理完成。

常见问题与陷阱

  • 对基础票价与全包价格阈值进行比对。
  • 对商品尺寸、卖家、舱位、日期或房间条款错误的情况发出警报。
  • 用错误页面覆盖之前记录的正确状态值。
  • 过度频繁地发起查询,从而导致被封禁或违反网站使用条款。
  • 在任何一次前端数据获取成功之前就安排任务执行。

验证标准

  • 监控合约会锁定相关商品,避免两种不同配置的商品被混淆。
  • 在创建任何任务之前,至少已有一次前端数据获取成功。
  • 警报的生成结果能根据状态文件以确定性方式重现,且不会出现重复警报。
  • 失败的查询永远不会替代之前记录的正确状态。
  • 警报中需包含全包价格、货币类型、时间戳以及来源链接。