- Goal: Demonstrate how Stagehand's caching feature dramatically reduces cost and latency by reusing previously computed actions instead of calling the LLM every time.
- Shows side-by-side comparison of workflows with and without caching enabled.
- Demonstrates massive cost savings for repeated workflows (99.9% reduction in LLM calls).
- Docs โ https://docs.stagehand.dev/v2/best-practices/caching#caching-actions
- caching: Stagehand can cache action results based on instruction text and page context, eliminating redundant LLM calls Docs โ https://docs.stagehand.dev/v2/best-practices/caching#caching-actions
- act: execute actions on web pages using natural language instructions Docs โ https://docs.stagehand.dev/v2/basics/act
- observe: observe page elements and generate actions that can be cached and reused Docs โ https://docs.stagehand.dev/v2/basics/observe
- uv venv venv
- source venv/bin/activate # On Windows: venv\Scripts\activate
- uvx install stagehand python-dotenv aiofiles
- cp .env.example .env
- Add your Browserbase API key to .env
- python main.py (run twice to see cache benefits!)
- First run: Executes workflow without cache, then with cache enabled (populates cache)
- Subsequent runs: Uses cached actions for instant execution with zero LLM calls
- Displays timing comparison, cost savings, and cache statistics
- Shows cache location and file structure
Cache Key Generation:
- Based on instruction text (used as cache key)
- Actions are observed once and cached
- Automatically computed
When Cache is Used:
- โ Same instruction text
- โ
Cache file exists (
cache.json) - โ Different instruction text
- โ Cache file cleared or missing
Cache Storage:
- Location:
cache.jsonin the same directory asmain.py - Format: JSON file containing cached actions
- Persistent across runs
Example Scenario: 1,000 customers ร 10 portals = 10,000 payment flows
Without caching:
- 10,000 workflows ร 5 actions = 50,000 LLM calls
- Cost: ~$500-2,500
- Latency: 2-3s per action ร 5 = 10-15s per payment
With caching:
- First payment per portal: 5 LLM calls (populate cache)
- Next 999 payments: 0 LLM calls (use cache)
- Total: 10 portals ร 5 actions = 50 LLM calls
- Cost: ~$0.50-2.50 (99.9% savings!)
- Latency: <100ms per action ร 5 = <0.5s per payment
Key Insight: Payment portals rarely change โ Cache actions once โ Reuse for thousands of payments โ Massive cost + latency reduction
- Missing credentials: verify .env contains BROWSERBASE_API_KEY
- Cache not working: ensure cache.json is writable and check that instruction text matches exactly
- First run slower: expected behavior - cache is populated on first run, subsequent runs will be instant
- ModuleNotFoundError: ensure virtual environment is activated and dependencies are installed via
uvx install - Import errors: activate your virtual environment if you created one
- Find more information on your Browserbase dashboard -> https://www.browserbase.com/sign-in
โข Payment processing: Cache form-filling actions for payment portals that don't change frequently, processing thousands of payments with minimal LLM calls. โข Data entry automation: Reuse actions for repetitive data entry tasks across similar forms or interfaces. โข Testing workflows: Cache test actions to speed up regression testing and reduce API costs during development.
- โ Enable caching in production for repeated workflows
- โ One cache per portal/interface type
- โ Invalidate cache when page structure changes significantly
- โ Monitor cache hit rate to optimize cache effectiveness
- โ Warm cache with test runs before production deployment
โข Customize cache file location: Modify CACHE_FILE path to organize caches by workflow type or environment. โข Add cache invalidation: Implement logic to clear cache when page structure changes or after a certain time period. โข Monitor cache performance: Track cache hit rates and cost savings to measure effectiveness.
-
Run this script again:
python main.pyโ Second run will be MUCH faster (cache hits) -
Clear cache and run again:
rm cache.json && python main.pyโ Back to first-run behavior -
Check cache contents:
cat cache.jsonโ See cached action data
๐ Stagehand Docs: https://docs.stagehand.dev/v3/first-steps/introduction ๐ฎ Browserbase: https://www.browserbase.com ๐ก Try it out: https://www.browserbase.com/playground ๐ง Templates: https://www.browserbase.com/templates ๐ง Need help? support@browserbase.com ๐ฌ Discord: http://stagehand.dev/discord