Opublikowano: 9 czerwca 2026 r., ostatnia aktualizacja: 1 lipca 2026 r.
| Wyjaśnienie | Sieć | Rozszerzenia | Stan Chrome | Intencja |
|---|---|---|---|---|
| GitHub | Wyświetl | Intencja eksperymentu |
Za pomocą protokołu Web Model Context Protocol (WebMCP) możesz tworzyć i udostępniać narzędzia strukturalne agentom AI działającym w przeglądarce, w tym agentom obsługiwanym przez rozszerzenia. Agent używa dużego modelu językowego (LLM), reguł, pamięci i narzędzi do wykonywania działań w imieniu użytkownika.
Ponieważ duże modele językowe traktują cały tekst, instrukcje i dane użytkownika jako pojedynczą sekwencję tokenów, są podatne na pośrednie wstrzykiwanie promptów, czyli dodawanie przez atakującego złośliwych instrukcji. Nasz zespół przygotował ten dokument dotyczący bezpieczeństwa narzędzi, aby pomóc Ci chronić witrynę i użytkowników przed osobami o złych zamiarach.
Chociaż niektóre modele mają warstwy, które zapobiegają wstrzykiwaniu promptów, nie można zagwarantować bezpieczeństwa w dużym modelu językowym (LLM). Modele mają charakter probabilistyczny. Pamiętaj, że przeprowadzono już powtarzalne ataki polegające na wstrzykiwaniu promptów do systemów agentowych, które korzystają z najnowocześniejszych modeli LLM, a częstość występowania ataków w internecie rośnie.
Aby rozwiązać te problemy, przygotowaliśmy wstępne wskazówki dotyczące bezpieczeństwa dla osób tworzących narzędzia za pomocą WebMCP.
Używanie wskazówek dotyczących adnotacji
Podczas tworzenia narzędzi warto dodać kilka wskazówek:
- W razie potrzeby użyj
untrustedContentHint. Jeśli narzędzie zwraca treści generowane przez użytkowników lub dane pochodzące z zewnętrznych źródeł, rozważ dodanie do niegountrustedContentHint. To pole wyraźnie oznacza ładunek jako niezaufany, co pomaga chronić integralność witryny, a jednocześnie informuje agenta, że te dane wymagają większej uwagi. - Użyj
readOnlyHintw narzędziach, które nie zmieniają stanu. Dzięki temu agent może podejmować lepsze decyzje dotyczące tego, kiedy prosić o potwierdzenie użytkownika.
Udostępnianie narzędzi z zachowaniem ostrożności
Interfejs WebMCP API document.modelContext.registerTool udostępnia funkcje narzędzia tylko agentom. Domyślnie inne witryny ani ramki iframe z innych domen nie mogą obserwować Twoich narzędzi ani wchodzić z nimi w interakcje.
Możesz przyznać dostęp do narzędzia za pomocą opcji
exposedTo w
registerTool do tablicy konkretnych, bezpiecznych domen. Dzięki temu narzędzie będzie dostępne dla tych domen, gdy jest osadzone w Twojej witrynie, a Twoja witryna jest osadzona w tej domenie.
// https://partner.org
await document.modelContext.registerTool({
name: 'my_shared_tool',
description: 'Shared across origins',
// ...
}, {
exposedTo: ['https://trusted.com', 'https://example.com']
});
Udostepniaj narzędzia tylko domenom którym ufasz. Jest to szczególnie ważne, gdy narzędzia zarządzają danymi użytkownika lub w inny sposób wpływają na użytkownika.
- Narzędzie tylko do odczytu, np.
getFavoriteProducts, może ujawnić informacje o użytkowniku. Takie narzędzia należy udostępniać tylko witrynom, którym w inny sposób udostępniasz te dane. - Narzędzia z uprawnieniami do odczytu i zapisu wykonują działania w imieniu użytkownika. Te narzędzia powinny być udostępniane tylko domenom, które Twoim zdaniem są godne zaufania, gdy działają w imieniu użytkownika. Na przykład możesz udostępnić
postCommentdomenietrustedExample.com, ale nie chcesz udostępniać go domenieevilExample.com.
Ustawianie limitów znaków
Aby uniknąć ograniczeń agenta, pisz zwięzłe opisy narzędzi i dane wyjściowe. Aby uzyskać lepsze wyniki, zalecamy stosowanie tych limitów znaków:
- 500 znaków na opis narzędzia
- 150 znaków na opis parametru
- 30 znaków na nazwę narzędzia i nazwę parametru
- Limit 1,5 tys.znaków na pojedyncze dane wyjściowe narzędzia
Prawdopodobnie między agentami występują pewne różnice, dlatego warto dostosować limity znaków na podstawie opinii użytkowników.
Dalsze kroki
Stale prowadzimy badania i pracujemy nad stworzeniem bezpiecznej infrastruktury dla sieci agentowej. Na przykład trwa
dyskusja na temat zarządzania zgodą
między stronami, a projekt specyfikacji zawiera
requestUserInteraction()
aby asynchronicznie prosić o dane wejściowe użytkownika podczas wykonywania narzędzia.
Jak planujesz wdrożyć WebMCP w swojej aplikacji? Czy masz inne obawy, dotyczące bezpieczeństwa lub inne? Jeśli zarejestrujesz się w testowaniu origin WebMCP, chcemy poznać Twoje wrażenia:
- Podziel się opinią na temat kształtu interfejsu API, komentując istniejący problem lub otwierając nowy w wyjaśnieniu WebMCP na GitHub.
- Jeśli masz uwagi na temat implementacji Chrome, zgłoś błąd w Chromium.
- Dołącz do programu wczesnego dostępu aby wcześniej poznać nowe interfejsy API i uzyskać dostęp do naszej listy mailingowej.
- Sprawdź implementację Chrome w Stan Chrome.
Jeśli tworzysz agenta, zalecamy zapoznanie się z artykułem Bezpieczeństwo agenta w WebMCP.