# Stagehand observe act 缓存教程：验证筛选动作后再复用

## 本轮实际范围

已真实校验原创库存列表、动作约束、缓存版本与改版拒绝负例；未运行 Stagehand 模型观察或浏览器 act。

## 起步

```bash
python3 verify.py
```

## 1. 打开自己的六商品列表

运行 server.py，在本地页面确认 6 个商品、其中 3 个有货。“仅看有货”按钮有稳定 ID；不连接真实商城或用户订单。

```bash
python3 server.py
```

## 2. 配置 v3 本地浏览器和模型

查看 package.example.json 安装示例，用 Stagehand v3、env:LOCAL 与明确模型。model.baseURL 是兼容 /v1 地址；本地不使用 model:auto 或 Browserbase Model Gateway。

## 3. 先 observe 后验证动作

agent.mjs 调用 observe 查找库存筛选，要求恰好一个 click 动作，selector 必须等于自己页面的目标按钮。校验不通过就停止，不点击备选按钮。

## 4. 执行并观察三条结果

对验证后的 Action 调用 act，页面有货列表应为 P01/P03/P05。模型观察与真实浏览器操作尚未在本站执行；人工 action-reference.json 不是模型输出。

```bash
node agent.mjs
```

## 5. 保留本地缓存的范围

将原页面版本、动作与预期 ID 存入本地 JSON 缓存。serverCache 仅对 BROWSERBASE 生效，本题文件缓存是自己实现，不冒充官方云缓存。

## 6. 用改版页面触发失效

页面 ?version=2 改变按钮 ID。缓存版本与页面不一致必须停止复用并重新 observe；不要只靠旧 xpath 猜测新按钮。

```bash
python3 verify.py
```

## 7. 分别记录模型和缓存重放

保存第一次真实观察输出、重放结果和失效记录。记录请求计数才可比较调用；本文没有编造加速倍数或 token 节省。

## 官方来源

https://docs.stagehand.dev/v3/basics/observe

## 提醒

参考文档、卡片、JSON和图片都明确标注人工或离线范围；没有实际调用的模型不提供假成功结果。占位配置不是可用凭据。
