跳转到主要内容
在 Stagehand 中缓存操作对于执行成本高昂的操作或当底层 DOM 结构预计不会改变时非常有用。

使用 observe 预览操作

observe 允许您在执行操作前预览它。如果您对操作预览满意,可以直接在 page.act 中运行而无需额外的 LLM 调用。

简单缓存

让我们在这个示例中使用基于文件的简单缓存。我们将编写能够读写 JSON 文件的 getter 和 setter 函数:

带缓存执行

让我们编写一个函数来检查缓存、获取操作并执行它。如果操作失败,我们将尝试”自我修复”,即直接通过 page.act 重试。
您现在可以使用 actWithCache 来运行带缓存的操作:

高级缓存

上述示例很简单,但您可能希望基于页面内容来缓存操作。此外,如果有重复的提示,您应该使用更唯一的键。 我们希望将缓存逻辑留给您自己实现,但为您提供实现自定义缓存策略所需的所有工具。 您可以直接从 Playwright 的 page 对象访问 DOM 和无障碍树。以下是访问页面内容的示例:
您也可以利用无障碍访问树、DOM 或其他信息来生成更具唯一性的键值。参照上述示例的类似逻辑,您可以自由实现这一功能。