Wyobraź sobie asystenta AI, który nie prosi o pozwolenie żadnej chmury, bo po prostu na stałe zamieszkał w Twojej przeglądarce. Gemma Gem bierze model Gemma 4 od Google, ładuje go przez WebGPU i pozwala na bezpośrednie interakcje z odwiedzanymi stronami – od zwykłego czytania po automatyczne klikanie w przyciski. Prywatność wchodzi tu na najwyższy poziom, ale czy to faktyczny przełom, czy tylko kolejna ciekawostka dla technologicznych zapaleńców?

TL;DR

  • Lokalne rozszerzenie do Chrome uruchamia modele Gemma 4 E2B/E4B bez udziału chmury
  • Zestaw narzędzi obejmuje czytanie treści, robienie screenshotów oraz manipulację elementami DOM
  • Wymagania techniczne to przeglądarka Chrome z obsługą WebGPU oraz od 500 MB do 1,5 GB miejsca
  • Zaawansowana architektura wykorzystuje offscreen document, service worker oraz content script
  • Użytkownik ma pełną kontrolę nad wyborem modelu, limitami iteracji i czyszczeniem kontekstu

Czym jest Gemma Gem i skąd się wziął?

Ian Kessler, deweloper znany z GitHuba, zaprezentował na łamach Hacker News intrygujące rozszerzenie do Chrome o nazwie Gemma Gem. To osobisty asystent AI, który po instalacji w przeglądarce wykorzystuje potencjał modelu Gemma 4 od Google DeepMind. Cały proces obliczeniowy odbywa się lokalnie za pośrednictwem WebGPU, czyli nowoczesnego interfejsu do obliczeń graficznych wewnątrz przeglądarki. Oznacza to brak konieczności posiadania kluczy API i absolutne zero danych wysyłanych na zewnętrzne serwery.

Projekt opiera się na świeżej rodzinie modeli Gemma 4, udostępnionej na licencji Apache 2.0, o czym wspominaliśmy już przy okazji tekstu o Gemma 4 pod Apache 2.0. Modele te zostały zaprojektowane z myślą o zadaniach agentycznych: sprawnym rozumowaniu, pisaniu kodu i multimodalności. Kessler sprytnie spakował je w formę rozszerzenia, dając algorytmom bezpośredni dostęp do manipulacji strukturą DOM stron internetowych. To swoista ironia losu – podczas gdy Google buduje chmurowe monstra, niezależny twórca zamyka ich model w trybie offline.

W praktyce wygląda to banalnie: otwierasz dowolną witrynę, klikasz ikonę klejnotu i prosisz o streszczenie treści lub wykonanie konkretnej akcji. Model ładuje się tylko raz i potrafi utrzymać kontekst o długości do 128 tysięcy tokenów, co pozwala na pracę z naprawdę obszernymi dokumentami.

Instalacja i pierwsze kroki w praktyce

Aby odpalić Gemma Gem na własnym sprzęcie, potrzebujesz Chrome’a ze wsparciem dla WebGPU – warto to zweryfikować wpisując w pasku adresu chrome://flags. Następnie pobierasz repozytorium z profilu kessler/gemma-gem, instalujesz zależności przez pnpm (klasyczne npm tu nie przejdzie, bo całość oparto na Vite), budujesz projekt i ładujesz rozpakowane rozszerzenie z folderu .output/chrome-mv3-dev/ w trybie deweloperskim.

Gdy już przebrniesz przez te techniczne meandry, ikona niebieskiego klejnotu pojawi się w prawym dolnym rogu każdej odwiedzanej strony. Po kliknięciu musisz chwilę poczekać na załadowanie wag modelu, co sygnalizuje pasek postępu na ikonie. Przy pierwszym uruchomieniu przeglądarka pobierze i zbuforuje około 500 MB dla wersji E2B lub 1,5 GB dla potężniejszej E4B. Proces jest prosty, choć konieczność użycia komendy pnpm build może być barierą dla mniej technicznych użytkowników.

Na ten moment nie znajdziesz tego narzędzia w oficjalnym sklepie Chrome Web Store – to czysta zabawa dla deweloperów i entuzjastów. Jeśli dysponujesz słabszym układem graficznym, wariant E2B będzie optymalnym wyborem. Posiadacze mocniejszego hardware’u powinni celować w E4B, który oferuje znacznie wyższą jakość generowanych odpowiedzi i lepsze zdolności analityczne.

Narzędzia agenta – co potrafi na stronach

Gemma Gem to coś więcej niż tylko kolejny gadatliwy czatbot. Rozszerzenie wyposażono w zestaw narzędzi umożliwiających realną interakcję z witrynami. Pętla agenta (agent loop) wewnątrz modelu samodzielnie decyduje, kiedy skorzystać z konkretnej funkcji – potrafi na przykład najpierw przeanalizować tekst, wykonać zrzut ekranu, a na końcu kliknąć w odpowiedni przycisk.

Oto lista kluczowych możliwości, które model realizuje za pomocą dedykowanych komponentów:

  • read_page_content: pobiera tekst lub kod HTML na podstawie selektorów CSS (przez content script).
  • take_screenshot: generuje plik PNG z widocznego obszaru strony (obsługiwane przez service worker).
  • click_element oraz type_text: wykonuje interakcje z polami input i przyciskami (przez content script).
  • scroll_page: płynnie przewija stronę o zadaną liczbę pikseli.
  • run_javascript: uruchamia dowolny kod JS z pełnym dostępem do struktury DOM.

Tak szeroki wachlarz uprawnień pozwala na realizację złożonych scenariuszy, takich jak automatyczne wypełnianie formularzy czy nawigacja po skomplikowanych interfejsach. Całość przypomina rozwiązanie Google Auto Browse, z tą różnicą, że tutaj wszystko dzieje się lokalnie i bez opóźnień wynikających z komunikacji z serwerem.

Wystarczy wydać polecenie „znajdź przycisk logowania i wpisz moje dane”, a model samodzielnie zidentyfikuje odpowiednie selektory i wykona zadanie bez Twojej pomocy.

Architektura – jak to technicznie działa?

Pod maską Gemma Gem kryją się trzy główne moduły, które komunikują się ze sobą za pomocą wewnętrznego systemu wiadomości. Kluczowym elementem jest tzw. offscreen document, który hostuje model Gemma 4 przy użyciu biblioteki @huggingface/transformers. To właśnie tutaj, dzięki WebGPU, odbywa się cała inferencja oraz kręci się główna pętla agenta wraz ze strumieniowaniem tokenów w czasie rzeczywistym.

Service worker pełni w tym układzie rolę inteligentnego routera: zarządza przepływem informacji, obsługuje generowanie zrzutów ekranu oraz egzekucję skryptów JavaScript. Z kolei content script odpowiada za wstrzykiwanie interfejsu czatu do Shadow DOM oraz udostępnianie narzędzi do manipulacji stroną. Całość została zbudowana na nowoczesnym frameworku WXT, który stanowi potężną nakładkę Vite dla rozszerzeń Chrome.

Architektura jest na tyle modułowa, że interfejsy ModelBackend i ToolExecutor można teoretycznie wyodrębnić jako niezależne biblioteki. Renderowanie tekstu w oknie czatu odbywa się przy pomocy biblioteki marked, a same modele wykorzystują kwantyzację q4f16 z repozytoriów Hugging Face, co pozwala zachować balans między rozmiarem a precyzją.

Modele, ustawienia i porównanie wariantów

Użytkownik ma do dyspozycji dwa warianty: Gemma 4 E2B oraz E4B. Oba są modelami typu instruction-tuned i oferują imponujące okno kontekstowe o rozmiarze 128k. Wersja E2B jest lżejsza i szybsza, natomiast E4B to waga ciężka dla tych, którzy wymagają od AI większej precyzji. Wyboru dokonuje się w ustawieniach dostępnych pod ikoną koła zębatego, a preferencje są zapisywane pomiędzy sesjami przeglądarki.

W panelu konfiguracyjnym znajdziemy również kilka innych przydatnych opcji:

  • Thinking: aktywuje natywny proces „myślenia” modelu przed udzieleniem odpowiedzi.
  • Max iterations: ustawia limit powtórzeń w pętli narzędzi, zapobiegając zawieszeniu się agenta.
  • Clear context: pozwala błyskawicznie zresetować historię rozmowy dla danej strony.
  • Disable on site: umożliwia stworzenie czarnej listy domen, na których AI ma nie być aktywne.
Model Rozmiar dysku Parametry efektywne Kontekst
Gemma 4 E2B ~500 MB 2.3B 128k tokenów
Gemma 4 E4B ~1.5 GB 4.5B 128k tokenów

Porównanie wariantów modeli Gemma 4 w Gemma Gem – kwantyzacja q4f16

Debugowanie narzędzia jest możliwe przez standardowe narzędzia Chrome (chrome://extensions), gdzie można podglądać logi service workera czy pliku offscreen.html. Wszystkie komunikaty deweloperskie są czytelnie oznaczone prefiksem [Gemma Gem], co ułatwia analizę pracy agenta w wersjach testowych.

Źródła:

GitHub kessler/gemma-gem, Hacker News item?id=47655367, Hugging Face onnx-community/gemma-4-E2B-it-ONNX i gemma-4-E4B-it-ONNX, Google DeepMind Gemma 4 docs

Najczęściej zadawane pytania