Google właśnie dodało do Lighthouse nową kategorię - „Agentic Browsing". Ocenia ona nie jak szybka jest Twoja strona, ale jak dobrze radzi sobie z nią agent AI. W centrum tej zmiany jest standard W3C o nazwie WebMCP. Wdrożyłem go na czujowski.pl - i opisuję jak to zrobiłem krok po kroku.
Czym jest agentic browsing i dlaczego to zmienia zasady gry
Przez ostatnie dwie dekady strony internetowe projektowaliśmy pod ludzi. Później - pod boty indeksujące (SEO). Teraz nadchodzi trzecia era: projektowanie pod agentów AI, którzy nie tylko czytają Twoją stronę, ale na niej działają.
Agent AI to program który działa autonomicznie: może kliknąć przycisk, wypełnić formularz, zebrać dane o usługach, zapisać spotkanie. Dotychczas robił to metodą brute-force - parsował HTML, szukał elementów, strzelał w CSS selektory. Był kruchy i nieprzewidywalny.
WebMCP zmienia to fundamentalnie. Zamiast zgadywać co jest na stronie, agent może zapytać wprost: „jakie narzędzia tu masz?" - i otrzymać ustrukturyzowaną odpowiedź. Tak jak API, tyle że wbudowane w przeglądarkę.
get_services, dostać JSON z listą usług i cenami, a następnie wywołać book_consultation i podać klientowi gotowy link do rezerwacji - bez jednego kliknięcia przez człowieka.
Czym różni się WebMCP od llms.txt?
Mam już na czujowski.pl pliki llms.txt i llms-full.txt - które opisują stronę dla botów AI zbierających dane do modeli językowych. Ale to jest statyczna dokumentacja - jak wizytówka: „oto czym jesteśmy, oto nasze usługi".
WebMCP to aktywny interfejs. Różnica jest jak między broszurą a recepcjonistką, która odpowiada na pytania w czasie rzeczywistym.
| Cecha | llms.txt | WebMCP |
|---|---|---|
| Typ | Plik statyczny | Aktywny interfejs JS |
| Cel | Opisać stronę dla AI | Udostępnić akcje dla agentów |
| Filtrowanie | Brak | Agent może filtrować po kategorii |
| Wynik | Tekst / markdown | Ustrukturyzowany JSON |
| Ryzyko | Minimalne | Minimalne (tylko odczyt na stronie statycznej) |
Optymalna strona powinna mieć oba - llms.txt dla botów indeksujących, WebMCP dla agentów działających.
Jak działa WebMCP technicznie
Standard W3C definiuje jeden kluczowy obiekt w przeglądarce: document.modelContext. Jeśli istnieje - przeglądarka (lub agent) wspiera WebMCP. Jeśli nie - nic się nie dzieje, strona działa normalnie.
Na tym obiekcie wywołujesz registerTool() z trzema elementami:
- name - unikalny identyfikator narzędzia (np.
get_services) - description - opis w języku naturalnym - to jest najważniejsze, bo agent decyduje czy wywołać narzędzie na jego podstawie
- inputSchema - JSON Schema opisujący parametry (opcjonalne)
- execute() - funkcja która zwraca dane w formacie MCP
Minimalne, działające narzędzie wygląda tak:
// Zabezpieczenie - kod nie uruchomi się w zwykłej przeglądarce if (!('modelContext' in document)) return; document.modelContext.registerTool({ name: 'get_contact', description: 'Zwraca dane kontaktowe firmy: e-mail, telefon i link do rezerwacji.', inputSchema: { type: 'object', properties: {} }, async execute() { return { content: [{ type: 'text', text: JSON.stringify({ email: 'kontakt@czujowski.pl', phone: '+48 452 422 086', booking: 'https://cal.com/przemyslaw-czujowski-sasnsv/30min' }, null, 2) }] }; } });
Co wdrożyłem na czujowski.pl - 5 narzędzi
Zarejestrowałem pięć narzędzi które pokrywają wszystko czego agent AI może potrzebować odwiedzając stronę konsultanta:
| Narzędzie | Co zwraca | Parametry |
|---|---|---|
get_services |
Lista usług z cenami, opisami i URL-ami | Opcjonalnie: kategoria (web, seo, ai, ads…) |
get_contact |
E-mail, telefon, NIP, link Cal.com | Brak |
get_articles |
Lista artykułów z datami i tagami tematycznymi | Opcjonalnie: słowo kluczowe (SEO, AI, WordPress…) |
book_consultation |
Link do rezerwacji + opis procesu | Brak |
get_about |
Profil: doświadczenie, certyfikaty, specjalizacje | Brak |
Dlaczego akurat te pięć? Bo to typowe pytania które zadaje agent pomagający użytkownikowi wybrać usługodawcę: „co oferuje?", „ile kosztuje?", „jak się skontaktować?", „co piszą na blogu?", „kim jest?". Zamiast parsować HTML - dostaje gotowy JSON w milisekundy.
Kluczowy detal - opisy narzędzi
Najważniejszy element każdego narzędzia to pole description. Agent AI decyduje które narzędzia wywołać wyłącznie na podstawie ich opisów - bez czytania kodu. Słabe opisy = narzędzia których nikt nie użyje.
Dobry opis: „Zwraca listę usług oferowanych przez Przemysława Czujowskiego - konsultanta IT i marketingu z Wrocławia. Zawiera nazwy, opisy, ceny orientacyjne i URL-e stron usługowych. Opcjonalnie filtruje po kategorii: web, seo, ai, ecommerce, ads, medical."
Dobry opis odpowiada na pytania: kto to oferuje? co dokładnie jest w odpowiedzi? kiedy warto wywołać to narzędzie?
Jak to sprawdzić - Lighthouse Agentic Browsing
Google dodało nową kategorię do Lighthouse dostępną w Chrome Canary. Ocenia ona:
- Registered WebMCP Tools - czy strona rejestruje narzędzia przez
document.modelContext - WebMCP Schema Validity - czy JSON Schema narzędzi jest poprawny
- llms.txt - czy plik istnieje i jest dostępny pod
/llms.txt - Accessibility for Agents - czy DOM ma sensowne nazwy (aria-label, alt, semantyczny HTML)
- Layout Stability (CLS) - czy strona nie „skacze" gdy agent próbuje coś kliknąć
Wynik nie jest skalą 0-100 jak tradycyjny Lighthouse - to lista zdał/nie zdał dla każdego audytu. Cel to mieć wszystko zielone.
Dlaczego warto być pionierem - argument SEO
Pamiętasz kiedy pojawiło się GEO (Generative Engine Optimization)? Pierwsze strony które wdrożyły llms.txt, schema FAQPage i pisały w formacie cytowanym przez AI - dziś mają wyraźną przewagę widoczności w ChatGPT, Perplexity i Gemini.
WebMCP jest teraz w tym samym punkcie co GEO 12 miesięcy temu. Standard jest eksperymentalny - ale Chrome, Apple i Mozilla aktywnie pracują nad implementacją. Kiedy trafi do stable release, strony które mają już zarejestrowane narzędzia będą natychmiast gotowe.
Kto dziś ma llms.txt - jutro będzie cytowany przez AI. Kto dziś ma WebMCP - pojutrze będzie wywoływany przez agentów AI. Reszta będzie parsowana jak zwykły HTML.
Na czujowski.pl spełniam wszystkie cztery kryteria Lighthouse Agentic Browsing:
- ✓ WebMCP - 5 narzędzi zarejestrowanych w
script.js - ✓ llms.txt - dostępny pod
/llms.txti/llms-full.txt - ✓ Dostępność DOM - semantyczny HTML, aria-hidden na dekoracyjnych SVG, alt na obrazach
- ✓ Stabilność layoutu - statyczny HTML, CLS bliskie zera
Jak wdrożyć WebMCP na własnej stronie - krok po kroku
-
Określ jakie narzędzia mają sens dla Twojej strony. Sklep:
search_products,get_product,get_shipping_info. Gabinet lekarski:get_specializations,get_schedule,book_appointment. Konsultant:get_services,get_contact,book_consultation. - Napisz opisy w języku naturalnym - tak jakbyś tłumaczył nowe narzędzie asystentowi który nigdy nie widział Twojej strony. Im dokładniejszy opis, tym trafniej agent zdecyduje kiedy wywołać narzędzie.
-
Zaimplementuj narzędzia w JavaScript - wewnątrz bloku
if (!('modelContext' in document)) returnktóry chroni przed błędami w zwykłych przeglądarkach. - Sprawdź poprawność JSON Schema - parametry narzędzi muszą być opisane zgodnie ze specyfikacją JSON Schema Draft 7. Validator online: jsonschema.dev.
-
Przetestuj w Chrome Canary - włącz flagę
chrome://flags/#enable-web-mcpi uruchom Lighthouse z kategorią „Agentic Browsing".
allow="tools" do kontroli dostępu.
Co jeszcze Lighthouse sprawdza - accessibility for agents
Poza WebMCP, Lighthouse Agentic Browsing sprawdza czy agent może w ogóle zorientować się co jest na stronie. To te same zasady co w WCAG - ale z perspektywy maszyny, nie człowieka niedowidzącego.
Konkretne wymagania:
- Przyciski muszą mieć czytelne etykiety -
<button>Wyślij wiadomość</button>OK,<button><svg/></button>bezaria-label- nie OK - Obrazy muszą mieć alt - dekoracyjne:
alt="", znaczące:alt="opis treści" - Formularze muszą mieć label -
<label for="email">Adres e-mail</label> - Ikony SVG - dekoracyjne:
aria-hidden="true", informacyjne:role="img" aria-label="..."
Na czujowski.pl wszystkie SVG ikony w nawigacji i treści mają aria-hidden="true". Formularze mają widoczne etykiety lub placeholder z aria-label. To jednocześnie dobre praktyki dostępności dla ludzi - i dobra podstawa dla agentów.
WebMCP jest dziś tam gdzie Schema.org było w 2012 roku - eksperymentalny, ale kierunek jest jasny. Strony które wdrożą go teraz, gdy jeszcze mało kto o nim słyszał, będą miały naturalną przewagę gdy standard trafi do produkcji. Jeśli chcesz wdrożyć WebMCP lub pełny audyt GEO na swojej stronie - napisz do mnie.