---
title: "Strona gotowa na agentów AI: co zbudowaliśmy i co się liczy — Dardo"
description: "Czego potrzebuje strona gotowa na agentów AI, na przykładzie dardo.studio: kopie markdown, llms.txt, reguły dla crawlerów AI, serwer MCP, karta A2A i co pominąć"
url: "https://dardo.studio/pl/blog/strona-gotowa-na-agentow-ai/"
language: "pl"
translations: {"en":"https://dardo.studio/en/blog/agent-ready-website/","es":"https://dardo.studio/es/blog/sitio-web-preparado-para-agentes-de-ia/","fr":"https://dardo.studio/fr/blog/site-web-pret-pour-agents-ia/","de":"https://dardo.studio/de/blog/agentenfaehige-website/","it":"https://dardo.studio/it/blog/sito-web-pronto-per-agenti-ai/","pt":"https://dardo.studio/pt/blog/site-pronto-para-agentes/","nl":"https://dardo.studio/nl/blog/agent-ready-website/","sv":"https://dardo.studio/sv/blogg/agentredo-webbplats/","uk":"https://dardo.studio/uk/blog/agent-ready-website/","ru":"https://dardo.studio/ru/blog/agent-ready-website/","ar":"https://dardo.studio/ar/blog/agent-ready-website/","hi":"https://dardo.studio/hi/blog/agent-ready-website/","th":"https://dardo.studio/th/blog/agent-ready-website/","ja":"https://dardo.studio/ja/blog/agent-ready-website/","ko":"https://dardo.studio/ko/blog/agent-ready-website/","zh-Hans":"https://dardo.studio/zh-Hans/blog/agent-ready-website/","zh-Hant":"https://dardo.studio/zh-Hant/blog/agent-ready-website/"}
updated: "2026-10-10T09:02:41.143Z"
---

[Blog](https://dardo.studio/pl/blog/)

# Czego potrzebuje strona gotowa na agentów AI: notatki z budowy dardo.studio

Sprawiliśmy, że agenci AI mogą czytać dardo.studio i z niego korzystać, warstwa po warstwie. Oto co robi każda z nich, kto dziś dokumentuje jej użycie i które zbudowalibyśmy ponownie.

Autor: [Nicolás Cerón](https://dardo.studio/pl/studio/) ·10 października 2026

![Mały robot na kółkach jedzie wzdłuż karmazynowej linii prowadzącej przez nocną galerię muzeum w stronę oświetlonej rzeźby.](https://dardo.studio/_astro/01M4GYDFZJP0ZV0S7JSNMWYADG_ZoH0qp.webp)

## Krótka odpowiedź

Strona gotowa na agentów AI robi trzy rzeczy. Agenci AI mogą do niej dotrzeć. Mogą ją czytać bez przedzierania się przez menu, banery i skrypty. A tam, gdzie ma to sens, mogą wywoływać kilka zadeklarowanych narzędzi zamiast zgadywać, który przycisk nacisnąć.

Wszystkie trzy elementy wdrożyliśmy w dardo.studio na początku października 2026 roku. Oto co uruchomiliśmy i w jakim stopniu główne platformy AI dokumentują korzystanie z tego, według sprawdzenia na działającej stronie z 8 października 2026 roku.

Wnioski są mniej ekscytujące niż w większości list kontrolnych „AI-ready”. Największe znaczenie mają najstarsze warstwy: dostęp dla robotów i czysty, semantyczny HTML. Kopie w markdownie i llms.txt to tanie udogodnienia. MCP, A2A i WebMCP to prawdziwe protokoły z działającymi klientami, ale żadna z dokumentacji robotów, które cytujemy, od OpenAI, Anthropic, Perplexity czy Google, nie opisuje tego, by ich asystenci sami znajdowali narzędzia strony.

## Zacznij od dostępu: robots.txt i warstwa brzegowa

Nasz plik [robots.txt](https://dardo.studio/robots.txt) powtarza jedną grupę reguł dla agenta domyślnego (`*`) oraz dla każdego wymienionego z nazwy robota wyszukiwarek AI i narzędzia pobierającego strony na żądanie użytkownika:

```
User-agent: OAI-SearchBot
Allow: /
Disallow: /api/
Content-Signal: search=yes, ai-input=yes
```

Te same reguły obowiązują ChatGPT-User, PerplexityBot, Perplexity-User, Claude-SearchBot, Claude-User i Bingbot. Zamknięty jest tylko `/api/`.

### Roboty wyszukiwarek i roboty do trenowania to osobne rzeczy

Najwwięksi gracze dokumentują dziś osobne tokeny dla wyszukiwania i dla trenowania:

- **OpenAI.** OAI-SearchBot pokazuje strony w wyszukiwarce ChatGPT. Strony, które go blokują, nie trafiają do odpowiedzi wyszukiwarki ChatGPT, choć nadal mogą pojawiać się jako zwykłe linki nawigacyjne. GPTBot zbiera dane treningowe. ([roboty OpenAI](https://developers.openai.com/api/docs/bots))
- **Anthropic.** Claude-SearchBot indeksuje na potrzeby wyszukiwania, ClaudeBot zbiera dane treningowe, a Claude-User pobiera strony, gdy ktoś o coś pyta Claude’a. ([roboty Anthropic](https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler))
- **Perplexity.** PerplexityBot wyświetla strony i linkuje do nich w wynikach Perplexity i nie służy do trenowania modeli bazowych. ([roboty Perplexity](https://docs.perplexity.ai/docs/resources/perplexity-crawlers))
- **Google.** Google-Extended to token kontrolny dla trenowania Gemini i dla uziemiania odpowiedzi w innych produktach Google. Nie wpływa na uwzględnianie ani pozycję w Wyszukiwarce Google. ([typowe roboty Google](https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers))

Narzędzia pobierające strony na żądanie użytkownika działają inaczej. OpenAI zastrzega, że robots.txt może nie obowiązywać ChatGPT-User, bo te żądania wywołuje człowiek. Perplexity-User i [narzędzia Google uruchamiane przez użytkownika](https://developers.google.com/crawling/docs/crawlers-fetchers/google-user-triggered-fetchers) zazwyczaj go ignorują. Takie narzędzia działają w imieniu jednej osoby w czasie rzeczywistym; tam, gdzie blokada działa, przeważnie uniemożliwia asystentowi tej osoby przeczytanie Twojej strony.

Nasz plik nie wymienia robotów do trenowania, więc podlegają one regule `*` i mają dostęp. To decyzja biznesowa, a dostawcy opisują ją jako osobną kontrolę: zablokowanie GPTBot lub ClaudeBot to nie to samo, co rezygnacja z ich indeksów wyszukiwania.

### Content Signals: jedna linijka, żadnych zobowiązań

Linijka `Content-Signal` pochodzi z [Content Signals Policy](https://blog.cloudflare.com/content-signals-policy/) Cloudflare, która wymienia trzy zastosowania: `search`, `ai-input` (przekazywanie treści modelowi w momencie odpowiedzi) i `ai-train`. Pomijamy `ai-train`, co według tej polityki ani nie zezwala na takie użycie, ani go nie ogranicza. Cloudflare podkreśla, że sygnały wyrażają preferencje, niczego nie blokują i mogą być ignorowane. Żadna z cytowanych tu stron o robotach ich nie wspomina. Kosztuje to jedną linijkę; na razie niczego się nie spodziewaj.

### Sprawdzaj warstwę brzegową, nie tylko plik

robots.txt określa politykę, ale o wszystkim decyduje Twój CDN. Podczas testu 2 października Browser Integrity Check Cloudflare odpowiadał kodem 403 na domyślnego klienta HTTP Pythona (`Python-urllib`) i na `libwww-perl`, mimo że robots.txt pozwalał na wszystko. Skrypty pisane przez agentów programistycznych często używają biblioteki standardowej Pythona bez zmian.

Dodaliśmy regułę konfiguracji Cloudflare, która wyłącza z blokady żądania GET i HEAD dla treści publicznych; `/api/` nadal zwraca 403. Ten sam przegląd wykazał, że nasze pliki `.txt` nie miały ustawionego kodowania, przez co niektórzy klienci czytali „Bogotá” jako „BogotÃ¡”. Wystarczył jeden nagłówek: `charset=utf-8`.

Testuj prawdziwymi żądaniami pod każdym user agentem. To pokazuje, że nic nie blokuje danej nazwy, ale nie dowodzi, że odwiedził nas prawdziwy robot.

## Prosty, semantyczny HTML: warstwa, od której zależy każdy agent

[Przewodnik Google po optymalizacji pod AI](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide) opisuje agentów przeglądarkowych, którzy analizują zrzuty ekranu, badają DOM i interpretują drzewo dostępności. Odsyła właścicieli stron do [wskazówek web.dev dotyczących stron przyjaznych agentom](https://web.dev/articles/ai-agent-site-ux), które w większości sprowadzają się do [pracy nad dostępnością](https://dardo.studio/pl/uslugi/dostepnosc-stron-internetowych/): używaj `<button>` i `<a>` zamiast ostylowanych `<div>`ów, powiąż każdą etykietę z jej polem i dopilnuj, by układ nie przesuwał się pod zrzutem ekranu.

Na dardo.studio każda strona ma jeden element `<main>` i opisane landmarki `<nav>`. Przełączniki menu i motywu to prawdziwe przyciski, które informują o swoim stanie przez `aria-expanded` i `aria-pressed`, a zamknięte menu są `inert`. Każde pole formularza kontaktowego znajduje się wewnątrz swojego elementu `<label>`, co nadaje mu dostępną nazwę. web.dev zaleca atrybut `for`; objęcie pola etykietą działa tak samo.

To już dziś pomaga użytkownikom czytników ekranu, a to wystarczający powód.

## Czysta kopia w markdownie każdej strony

Agenci płacą za każdy przeczytany token, a wyrenderowana strona niesie ze sobą nawigację, baner cookies, skrypty i grafiki dekoracyjne. Przed tą pracą żądanie naszych stron z nagłówkiem `Accept: text/markdown` zwracało to wszystko jako HTML.

Teraz etap budowania zapisuje plik `index.md` obok każdej indeksowalnej strony. Zaczyna się od front matter (tytuł, opis, kanoniczny adres URL, język, wersja w drugim języku i data aktualizacji), a potem zawiera treść z elementu `<main>` bez skryptów, przycisków, obrazów dekoracyjnych i spisu treści na stronie. Odpowiedzi z FAQ zostają. Formularze zamieniają się w listę pól i opcji, dzięki czemu agent może powiedzieć użytkownikowi, o co pyta nasz formularz kontaktowy, bez jego uruchamiania.

Kopię można pobrać na trzy sposoby:

- Wyślij nagłówek `Accept: text/markdown` na zwykły adres URL. Takie odpowiedzi zawierają `Vary: Accept`, więc pamięci podręczne przechowują obie wersje osobno.
- Poproś o plik: `/en/services/seo/index.md`.
- Dodaj `.md` do ścieżki strony (`/en/services/seo.md`). Dla adresów kończących się ukośnikiem [propozycja llms.txt](https://llmstxt.org/) używa `index.md`, czyli formy powyżej.

Każda strona HTML wskazuje też swoją kopię za pomocą `<link rel="alternate" type="text/markdown">`.

### Wskazujemy wyszukiwarkom z powrotem wersję HTML

Z poradnika Google wynika, że może on skanować i indeksować wiele typów plików poza HTML, bez traktowania ich w szczególny sposób. Kopia w markdownie mogłaby konkurować z własną stroną, dlatego każda odpowiedź markdown wskazuje stronę HTML jako kanoniczną:

```
$ curl -sI https://dardo.studio/en/services/seo/index.md
content-type: text/markdown; charset=utf-8
link: <https://dardo.studio/en/services/seo/>; rel="canonical", ...
```

Kto czyta te kopie? Cloudflare stworzył [Markdown for Agents](https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/), aby konwertować HTML na brzegu sieci dla żądań preferujących markdown, co sugeruje, że agenci o niego proszą. Nie podaje jednak, którzy klienci wysyłają ten nagłówek, a my również nie mamy zweryfikowanej listy. Jeśli korzystasz z funkcji Cloudflare, doda ona `Content-Signal: ai-train=yes, search=yes, ai-input=yes`, chyba że Twój serwer źródłowy ustawia własny. Nasze kopie generujemy podczas budowania, aby dokładnie odpowiadały stronie.

## llms.txt: przydatny indeks bez wpływu na wyszukiwanie

llms.txt to [propozycja Jeremy'ego Howarda](https://llmstxt.org/), opublikowana po raz pierwszy we wrześniu 2024 r. i wciąż otwarta na uwagi społeczności: plik markdown pod adresem `/llms.txt` z nazwą witryny, krótkim streszczeniem i listami linków, które mogą się przydać agentowi.

Nasz, pod adresami [/llms.txt](https://dardo.studio/llms.txt) i [/es/llms.txt](https://dardo.studio/es/llms.txt), jest generowany z tych samych danych co strony, więc nie może się z nimi rozjechać. Podaje fakty o studiu (Bogotá, założone w 2026 r., zespół trzech osób, sposób wyceny projektów, drogi kontaktu), wymienia usługi i realizacje oraz wyjaśnia, jak pobrać kopie w markdownie. `llms-full.txt` zawiera pełny tekst stron studia, usług, realizacji i kontaktu.

Jedna linijka wskazuje firmy o podobnych nazwach, które nie są nami. Gdy sprawdzaliśmy 2 października, to one prowadziły w wynikach wyszukiwania dla „dardo studio”. Ta linijka może być najprzydatniejsza w całym pliku.

Stan rzeczy, wprost:

- **Google** twierdzi, że llms.txt nie jest potrzebny, by pojawiać się w Wyszukiwarce ani funkcjach AI, że Wyszukiwarka go ignoruje, a posiadanie go ani nie pomaga, ani nie szkodzi.
- **OpenAI, Anthropic i Perplexity** nie podają w dokumentacji swoich robotów, że ich boty czytają pliki llms.txt innych witryn. Własne serwisy z dokumentacją OpenAI, Anthropic i Perplexity publikują taki plik, z myślą o agentach czytających ich dokumentację.

Warto go mieć, jeśli jest generowany i dokładny. Pomaga agentom programistycznym i narzędziom, które go szukają. Nie jest dźwignią widoczności.

## Narzędzia, które agenci mogą wywoływać: MCP, A2A i katalog API

Opublikowaliśmy dwa narzędzia tylko do odczytu:

- `**list_services**` zwraca nasze opublikowane usługi, ich zakres, rezultaty i adresy źródłowe po angielsku lub hiszpańsku, filtrowane opcjonalnym słowem kluczowym.
- `**get_project_brief**` zwraca pytania, na które warto odpowiedzieć przed kontaktem z nami, oraz zlokalizowany link kontaktowy dla danej usługi.

Jedna implementacja stoi za kilkoma punktami wejścia:

| Punkt wejścia      | Adres w dardo.studio                              | Standard i status                                                                                                                                                                                             |
| ------------------ | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Serwer MCP         | /mcp, karta pod /.well-known/mcp/server-card.json | [MCP](https://modelcontextprotocol.io/specification/2025-11-25/basic/transports) Streamable HTTP; karta serwera to [wstępna propozycja](https://modelcontextprotocol.io/community/working-groups/server-card) |
| Agent A2A          | /a2a, karta pod /.well-known/agent-card.json      | [A2A 1.0](https://a2a-protocol.org/latest/specification/), JSON-RPC                                                                                                                                           |
| Punkt końcowy JSON | /agent/services.json, opisany w OpenAPI           | Zwykły HTTP                                                                                                                                                                                                   |
| Katalog API        | /.well-known/api-catalog                          | [RFC 9727](https://www.rfc-editor.org/rfc/rfc9727.html), ścieżka standaryzacji IETF                                                                                                                           |

Każda odpowiedź HTML i markdown wysyła nagłówek `Link` wskazujący katalog, indeks umiejętności agentów i obie karty, więc z każdej strony można dojść do reszty.

### Zasady projektowe, które byśmy powtórzyli

- **Tylko do odczytu i publiczne.** Narzędzia MCP deklarują `readOnlyHint: true` i czytają ten sam opublikowany katalog co HTML, bez bazy danych w tle. `get_project_brief` niczego nie wysyła, nie rezerwuje ani nie wycenia; człowiek przegląda i wysyła.
- **Ograniczone dane wejściowe.** Treść żądań jest ograniczona do 8 KiB, sprawdzamy nagłówki `Origin` z przeglądarki (wymaga tego specyfikacja MCP), a wywołania mają własny limit szybkości.
- **Bez stanu.** Agent A2A odpowiada natychmiast, nie przechowuje zadań, ma wyłączone strumieniowanie i nie pobiera plików ani adresów URL, które mu wysłano.
- **Jasne zasady.** [/auth.md](https://dardo.studio/auth.md) mówi, że nie są potrzebne żadne dane uwierzytelniające oraz że odczyt danych publicznych nie upoważnia do wysłania wiadomości ani dokonania płatności.

Coś też pominęliśmy. Skanery gotowości sprawdzają protokoły handlowe i wykrywanie OAuth. Niczego nie sprzedajemy przez kasę i nie chronimy żadnych zasobów, więc publikowanie tego opisywałoby możliwości, które nie istnieją.

Kto dziś korzysta z tych narzędzi: klienci MCP, które ktoś połączył z `/mcp`, oraz klienci A2A, którym podano naszą kartę. Dla studia wartość jest skromna: precyzyjna odpowiedź na pytanie „czym zajmuje się Dardo i co warto im wysłać?”. Dla witryny z danymi na żywo, o które ludzie pytają, takimi jak stan magazynowy, dostępność czy dokumentacja produktu, argumenty są mocniejsze. Agenci, którzy zapisują dane, potrzebują uwierzytelniania i etapów weryfikacji; to już praca z zakresu [automatyzacji AI](https://dardo.studio/pl/uslugi/automatyzacja-ai/).

## WebMCP: te same narzędzia w przeglądarce

[WebMCP](https://webmachinelearning.github.io/webmcp/) pozwala stronie rejestrować narzędzia, które może wywoływać agent AI w przeglądarce. To Draft Community Group Report grupy W3C Web Machine Learning Community Group i zastrzega, że nie jest standardem W3C. Według web.dev jest aktywnie rozwijany, może się zmienić i można go wypróbować w Chrome w ramach origin trial.

Nasze strony rejestrują te same dwa narzędzia przez `document.modelContext` (lub `navigator.modelContext` w starszych wersjach zapoznawczych). Bez tego API przeglądarka nie uruchamia niczego dodatkowego. Ponieważ narzędzia już istniały, zajęło to około 40 linijek. Traktuj to jako eksperyment.

## Każda warstwa i czy warto się nią zajmować

| Warstwa                                           | Co to jest                                                                       | Kto z tego dziś korzysta                                                          | Czy warto?                                                      |
| ------------------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| Semantyczny HTML i opisane formularze             | Prawdziwe przyciski, linki, landmarki i etykiety                                 | Przeglądarki, technologie asystujące i agenci przeglądarkowi                      | Tak. Zacznij od tego                                            |
| robots.txt dla wyszukiwarek i agentów użytkownika | Reguły dla poszczególnych crawlerów, które oddzielają wyszukiwanie od trenowania | OpenAI, Anthropic, Perplexity i Google opisują swoje tokeny w dokumentacji        | Tak. Potem przetestuj na poziomie CDN                           |
| Content Signals                                   | Preferencje search, ai-input, ai-train w robots.txt                              | Żadna z firm AI, które sprawdziliśmy, nie opisuje ich przestrzegania              | Jedna linijka. Niczego nie oczekuj                              |
| Kopie w markdownie z nagłówkami canonical         | Czysta wersja tekstowa każdej strony                                             | Agenci, którzy żądają markdownu; brak opublikowanej listy, którzy to              | Tak, z nagłówkiem canonical                                     |
| llms.txt i llms-full.txt                          | Wyselekcjonowany indeks i pełny tekst dla agentów                                | Google Search go ignoruje; żadna dokumentacja crawlerów nie twierdzi, że go czyta | Zostaw, jeśli jest generowany. To nie jest dźwignia widoczności |
| Serwer MCP (tylko do odczytu)                     | Zadeklarowane narzędzia, które agenci mogą wywoływać                             | Klienci MCP, które ktoś podłącza                                                  | Tylko jeśli są dane lub akcje warte wywołania                   |
| Karta agenta A2A                                  | Maszynowo czytelny opis agenta                                                   | Klienci A2A, którym ją wskazano                                                   | Spekulacyjne dla większości stron                               |
| Katalog API (RFC 9727)                            | Jedna standardowa lista Twoich publicznych API                                   | Narzędzia, które jej szukają                                                      | Tanie, jeśli już masz API                                       |
| WebMCP                                            | Narzędzia rejestrowane przez stronę w przeglądarce                               | Chrome, w ramach origin trial                                                     | Eksperyment                                                     |

## Co zbudowalibyśmy ponownie

Po kolei: semantyczny HTML, przetestowany dostęp dla crawlerów, kopie w markdownie z nagłówkami canonical, generowany llms.txt, a narzędzia tylko wtedy, gdy jest coś wartego wywołania. Potem mierz. Logi serwera pokazują, którzy agenci pobierają kopie markdown lub wywołują `/mcp`. Pobranie to nie cytowanie, a nic z tego nie gwarantuje, że [system AI wspomni o Tobie](https://dardo.studio/pl/blog/widocznosc-w-odpowiedziach-ai/).

Gotowość na agentów to część naszej pracy nad [optymalizacją pod wyszukiwanie AI](https://dardo.studio/pl/uslugi/optymalizacja-pod-wyszukiwanie-ai/), obok treści i pomiarów, które decydują, czy odpowiedzi AI Cię cytują. Aby wdrożyć to na swojej stronie, [opowiedz nam o projekcie](https://dardo.studio/pl/kontakt/).

[Nicolás Cerón](https://dardo.studio/pl/studio/)

Nicolás Cerón jest założycielem Dardo, studia brandingu, projektowania i tworzenia stron internetowych z siedzibą w Bogocie w Kolumbii.

## Odkrywaj dalej.

- [Usługa · **Optymalizacja pod wyszukiwanie AI (GEO): bądź cytowany przez ChatGPT i Google AI**](https://dardo.studio/pl/uslugi/optymalizacja-pod-wyszukiwanie-ai/)

- [Twój projekt · **Zacznijmy rozmowę**](https://dardo.studio/pl/kontakt/)
