thelaw.co.il דאשבורד פרויקט הגירה
browser-use / סיפור הגילוי

איך גילינו שיש לנו סוכן דפדפן

case study של סשן עבודה אחד — מ"בטח אין גישה" ועד "Example Domain". 9 צעדים, שגיאה אחת, ורגע אחד של "שניה, ניסינו את זה אתמול".

תאריך: 9 במאי 2026
משך: ~45 דקות
9.5.2026 — סשן thelaw

המסגרת: מחקר מתחרים בפרויקט thelaw

היינו צריכים לנתח אתרי מתחרים עבור אלון לב — ביקרנו ב-yerusha.org.il ובאתרי פטור ממס. הכלי הרגיל (WebFetch) מוגבל: הוא לא מריץ JavaScript, לא רואה תמונות, ולא יכול לסמלץ ניווט. נדב ציין שהוא ראה מפתח browser-use ב-Cloudflare KV. מכאן התחיל הסיפור.

1
נקודת פתיחה
גילוי: "יש לך מפתח browser-use ב-KV"
בשלב שוחח על כלי מחקר, נדב ציין שהוא רואה מפתח בשם BROWSER_USE_API_KEY ב-Cloudflare KV של ספארק. עד לאותו רגע לא הייתה לי מודעות לכך — הנחיות הזיכרון הישנות ציינו שצריך OPENAI_API_KEY שאין לי. נדב תיקן את ההנחה.
2
כישלון ראשון
ניסיון SSH לשרת nvision — נכשל
הניסיון הראשון לשלוף את המפתח: SSH לספארק ולקרוא את /root/.spark_master_key. הניח שהטוקן הגלובלי ישמש לכל הקריאות ל-KV.
ssh spark "cat /root/.spark_master_key"
# → Authentication error: Permission denied (publickey)
הסיבה האמיתית: אין מפתח SSH מורשה. הטוקן שב-nvision גם חסר KV scope — בעיה כפולה.
3
חידוש זיכרון
נדב: "אתמול פתרנו את זה"
נדב הזכיר שב-8.5.2026 (יום קודם) כבר עברנו תהליך דומה. דרך borg/recall מצאתי שפתרון קיים: הקרדנציאלים נשמרו לוקלית על המחשב של נדב ולא על שרת ספארק.
4
פתרון
הקרדנציאלים היו כאן כל הזמן
הקובץ ~/.secrets/cloudflare-kv.env קיים לוקלית ומכיל את כל הדרוש: CF_API_TOKEN עם KV scope, CF_ACCOUNT_ID. שלפנו את המפתח ישירות:
source ~/.secrets/cloudflare-kv.env
BU_KEY=$(curl -sS -H "Authorization: Bearer $CF_API_TOKEN" \
  "https://api.cloudflare.com/client/v4/accounts/$CF_ACCOUNT_ID/storage/kv/namespaces/215100443225476ab32bea1e6411ac69/values/BROWSER_USE_API_KEY")
echo "${BU_KEY:0:12}..."
# → bu_X4zK9go...
5
אימות
Smoke test — עובד
שלחנו task פשוט: לנווט ל-example.com ולהחזיר את ה-H1. אחרי ~20 שניות polling — תוצאה.
curl -sS -X POST https://api.browser-use.com/api/v3/sessions \
  -H "X-Browser-Use-API-Key: $BU_KEY" -H "Content-Type: application/json" \
  -d '{"task":"Navigate to https://example.com and return the H1 text"}'
# → {"id":"ses_abc123","status":"running","liveUrl":"..."}
✅ Status: finished
Output: "Example Domain"
Steps: 3 | Cost: ~$0.01
6
תיעוד
כתיבת CLAUDE.md גלובלי
כדי שכל סשן עתידי בכל פרויקט יידע על היכולת, כתבנו ~/.claude/CLAUDE.md עם שתי הזרימות המלאות: (א) גישה ל-CF/KV, (ב) שימוש ב-BU API. הקובץ כולל מה לא לעשות (SSH, spark_secrets.get_secret), ו-helper functions.
7
שימוש ראשון
ניתוח מתחרים — שני sessions מקביל
שגרנו שני sessions במקביל: אחד על yerusha.org.il (ירושה/צוואות) ואחד על embargp-law.co.il (פטור ממס). כל session קיבל הוראות ניתוח מפורטות — UX, hero, trust signals, CTAs, הזדמנויות. התוצאות נשמרו ב-research/competitor-analysis/.
8
הרחבה — בתהליך
10 מתחרים + 30 השראות UI/UX
נדב ביקש להרחיב: 10 מתחרים בתחומי אלון (ליטיגציה, מקרקעין, גבייה, פטור ממס, מסחרי) ו-30 השראות UX מתחומים אחרים. שני subagents הורצו — חלק מהקבצים כבר נמצאים ב-research/, חלק עדיין מגיעים.
9
בנייה — הושלם
דמו מחשבון פטור ממס + 6 מהלכים עתידיים
תובנה מרכזית מהניתוח: אף מתחרה לא מציע מחשבון פטור ממס אינטראקטיבי — זו הזדמנות בידול. dashboard/calculator-demo.html נבנה ומוכן. במקביל תוכננו 6 מהלכים נוספים עם BU: SERP intelligence, Chatbot mystery test, Voice of Customer, Pre-launch QA, Lighthouse benchmark, Empathy simulation.
10
מכשול — תגלית
Browser-use Cloud: מגבלת 10 משימות/חודש
אחרי שהרצנו 10 sessions לניתוח מתחרים + השראות, ה-Cloud החזיר שגיאה:
{"detail":"Free plan limit reached. You have used all 10 tasks on the free plan..."}
שדרוג Cloud: $29/חודש. ההחלטה: עוברים ל-OSS (browser-use/browser-use מ-GitHub) שרץ לוקלית עם Playwright — חינמי לחלוטין, ללא מגבלות.
11
פתרון — Harness OSS
התקנת OSS Harness, תאימות GLM-5.1, smoke test עבר
התקנה: browser-use 0.12.6 + Playwright 1.59.0 + Chromium (~179MB). LLM provider: Z.AI עם מודל glm-5.1 — תומך ב-vision (screenshots בכל step), זול יותר מ-glm-5, אומת 2026-05-09.
$PY = "C:\Users\nadav\tools\python-3.13\python.exe" & $PY -m pip install browser-use playwright & $PY -m playwright install chromium # Chromium: 179MB | browser-use 0.12.6 | playwright 1.59.0
✅ Smoke test — glm-5.1 + Playwright
Task: "Go to https://example.com and return the H1 heading."
Result: "Example Domain"
Status: PASS (5 steps, ZAI_API_KEY)
לקח עיקרי מהסשן הזה

כשקיים קובץ זיכרון גלובלי (~/.claude/CLAUDE.md) עם הסבר מפורט על יכולות קיימות — אין צורך לגלות מחדש בכל סשן. המקרה הזה הוכיח: 45 דקות של גישוש היו יכולות להיות 2 דקות, אם הזיכרון הגלובלי היה כתוב מראש. הקובץ נכתב בסיום הסשן כדי שזה לא יחזור.