>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Python

Jak połączyć sieć neuronową z prawdziwą przeglądarką za pomocą Browser Harness

Browser Harness

Każdy, kto próbował automatyzować sieć za pomocą modeli językowych, zna ten ból. Agent radośnie zaczyna klikać przyciski, ale grzęźnie już na pierwszym niestandardowym polu tekstowym lub podstępnym captcha. Tradycyjne frameworki oferują sztywny zestaw narzędzi: kliknij, wpisz, przewiń. Jeśli wymagana akcja nie znajduje się w kodzie agenta, zadanie się załamuje.

Zespół browser-use zaproponował inne podejście w projekcie browser-harness. Zamiast próbować z góry przewidzieć wszystkie możliwe scenariusze na stronach internetowych, stworzyli wrapper łączący LLM z prawdziwą przeglądarką przez Chrome DevTools Protocol (CDP) i dający modelowi możliwość pisania brakujących funkcji w locie.

Jaka jest idea samouczącego się wrappera

Zwykły agent przeglądarkowy działa w izolacji. Dostaje izolowaną przeglądarkę headless bez zapisanych sesji, ciasteczek ani autoryzacji. W rezultacie połowa czasu idzie na próby logowania.

Browser Harness łączy się bezpośrednio z działającym Chrome przez port debugowania. Model natychmiast widzi otwarte karty, twoje profile i działające środowisko.

Najciekawsza część kryje się w mechanice obsługi kodu:

  1. Agent otrzymuje zadanie, na przykład pobranie ostatnich dwudziestu filmów z profilu w mediach społecznościowych lub wypełnienie złożonego formularza ze strefą upuszczania plików.
  2. Model sprawdza lokalny plik agent-workspace/agent_helpers.py. Jeśli nie ma odpowiedniej funkcji do pracy z elementem, agent sam pisze skrypt pomocniczy.
  3. Skrypt jest natychmiast wykonywany w kontekście strony. Jeśli działa pomyślnie, funkcja jest zapisywana w workspace.
  4. Przy wykonywaniu następnego podobnego zadania, agent nie wymyśla koła na nowo, tylko używa wcześniej napisanej funkcji pomocniczej.

Jednocześnie rdzeń samej biblioteki w folderze src/browser_harness/ pozostaje chroniony przed zmianami. Model rozszerza tylko własny lokalny workspace, więc ryzyko zepsucia logiki bazowej jest minimalne.

Pobierz moje ostatnie 20 filmów z X

Jak działa uruchomienie

Projekt jest ściśle zintegrowany ze środowiskami programistycznymi agentów, takimi jak Claude Code czy Codex. Aby rozpocząć, wystarczy przekazać asystentowi gotowy prompt instalacyjny:

Install or upgrade browser-harness to the latest stable version with uv using Python 3.12, register the skill from `browser-harness skill`, and connect it to my browser. Ask whether I want local browser recordings enabled; default to no and preserve my existing preference on upgrades. Follow https://github.com/browser-use/browser-harness/blob/main/install.md if setup or connection fails.

Po uruchomieniu polecenia otworzy się zakładka chrome://inspect/#remote-debugging. Tam musisz zaznaczyć opcję zdalnego debugowania, aby agent uzyskał dostęp do CDP WebSocket:

Konfiguracja zdalnego debugowania

Cały stos jest spięty przez trzy jasne pliki:

  • Instrukcja install.md obsługuje początkowe połączenie z przeglądarką przez port debugowania.
  • Plik SKILL.md opisuje wzorce interakcji ze stronami dla LLM.
  • Moduły w katalogu src/browser_harness/ utrzymują trwałe gniazdo i przekazują polecenia.

Co jest w środku i jakie technologie są używane

Pod maską projekt używa Pythona 3.12 i menedżera pakietów uv. Zarządzanie sesjami wykorzystuje bezpośrednie WebSocket do CDP, bez ciężkich wrapperów jak Selenium.

To podejście daje dwie praktyczne zalety:

  • Minimalne opóźnienia przy przesyłaniu zdarzeń wejściowych, przewijaniu i kliknięciach.
  • Pełny dostęp do DOM, żądań sieciowych i pamięci przeglądarki bez potrzeby konfigurowania dodatkowych mostów.

Jeśli musisz uruchamiać dziesiątki zadań równolegle, twórcy oferują infrastrukturę Browser Use Cloud z gotowymi proxy, ochroną przed wykrywaniem botów i rozwiązywaniem captcha. Ale do codziennych lokalnych uruchomień na własnej przeglądarce, to w zupełności wystarczy.

Praktyczne przypadki użycia

Gdzie takie narzędzie naprawdę oszczędza czas:

  • Zbieranie danych z prywatnych dashboardów, gdzie nie ma publicznego API i ustawione jest uwierzytelnianie dwuskładnikowe. Autoryzujesz się ręcznie raz, a rutynowy eksport raportów przekazujesz agentowi.
  • Masowe pobieranie plików multimedialnych. Agent otwiera stronę, przewija feed, znajduje potrzebne selektory odtwarzacza wideo i zapisuje pliki do lokalnego folderu.
  • Testowanie układów i scenariuszy użytkownika. Agent przechodzi przez ścieżkę użytkownika, sam pisze brakujące testy i przechowuje je w helpers.
  • Wypełnianie powtarzających się formularzy w korporacyjnych systemach CRM, gdy musisz przenieść partię danych z arkusza kalkulacyjnego.

Czy warto spróbować

Jeśli aktywnie używasz agentowych narzędzi CLI jak Claude Code i masz dość ręcznego kopiowania danych ze stron do terminala, projekt zdecydowanie warto wypróbować. Koncepcja, w której agent sam rozszerza swój zestaw narzędzi przez trwałe helpers, wygląda o wiele bardziej żywotnie niż bezgraniczne rozdymanie system promptu.

Z minusów warto zauważyć, że projekt wymaga ostrożności w kwestii bezpieczeństwa: dając LLM dostęp do głównej przeglądarki, udostępniasz wszystkie otwarte sesje. Więc do eksperymentów mądrzej jest stworzyć osobny profil Chrome bez podpiętych kart płatniczych i krytycznych usług. Zacznij od prostych scenariuszy parsowania, obserwuj jak agent generuje swoje pierwsze funkcje w agent_helpers.py, i oceń, jak dobrze ten format pasuje do twojego zwykłego stacka.

Powiązane projekty