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ę.

Konkretnie: agent AI obsługujący asystenta biznesowego mógłby wejść na czujowski.pl, wywołać narzędzie 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:

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.

Słaby opis: „Pobiera usługi."

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:

  1. Registered WebMCP Tools - czy strona rejestruje narzędzia przez document.modelContext
  2. WebMCP Schema Validity - czy JSON Schema narzędzi jest poprawny
  3. llms.txt - czy plik istnieje i jest dostępny pod /llms.txt
  4. Accessibility for Agents - czy DOM ma sensowne nazwy (aria-label, alt, semantyczny HTML)
  5. 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:

Jak wdrożyć WebMCP na własnej stronie - krok po kroku

  1. 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.
  2. 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.
  3. Zaimplementuj narzędzia w JavaScript - wewnątrz bloku if (!('modelContext' in document)) return który chroni przed błędami w zwykłych przeglądarkach.
  4. Sprawdź poprawność JSON Schema - parametry narzędzi muszą być opisane zgodnie ze specyfikacją JSON Schema Draft 7. Validator online: jsonschema.dev.
  5. Przetestuj w Chrome Canary - włącz flagę chrome://flags/#enable-web-mcp i uruchom Lighthouse z kategorią „Agentic Browsing".
Ważne dla stron statycznych: narzędzia WebMCP powinny zwracać tylko dane - nie wykonywać akcji zapisu. Na stronie statycznej to naturalne ograniczenie (nie ma backendu). Na stronach dynamicznych z formularzami rozważ Permissions Policy z 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:

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.