Role systemu, użytkownika i asystenta
Poznaj trzy role komunikatów we współczesnych API czatowych oraz dowiedz się, jak wpływają one na to, czemu model ufa i czego przestrzega.
Role systemu, użytkownika i asystenta to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.
Trzy role, jedna rozmowa
Każde chat API używa trzech ról wiadomości:
- system — metainstrukcje, persona i reguły
- user — dane wejściowe od człowieka lub systemu nadrzędnego
- assistant — dane wyjściowe modelu
Dlaczego istnieją role
Modele są trenowane tak, aby traktować te role odmiennie. Rola system ma najwyższy poziom zaufania, a wiadomości user — najniższy.
Dzięki temu model wie, że Państwa instrukcje mają pierwszeństwo przed tym, co osoba atakująca wpisze w danych wejściowych user.
Miejsce systemu należy do Państwa
Wiadomość systemowa jest kontraktem z modelem. Należy w niej umieścić:
- Tożsamość i cel
- Twarde reguły (nigdy nie ujawniaj X, zawsze wykonuj Y)
- Wymagania dotyczące formatu danych wyjściowych
- Zasady korzystania z narzędzi
System powinien być stabilny, a user dynamiczny
Wiadomość systemowa powinna rzadko się zmieniać w obrębie jednej sesji. Wszystko, co zmienia się przy każdym obrocie rozmowy, należy umieścić w wiadomościach user.
Ten wzorzec umożliwia również buforowanie promptów — więcej informacji zawiera kurs Optymalizacja kosztów.
Przykład: agent obsługi klienta
Typowa konfiguracja:
messages = [
{'role': 'system', 'content': '''
You are SupportBot, the customer-support agent for Acme Corp.
You help with order status, returns, and product info.
You never share internal pricing or roadmap info.
Answer in 2-3 sentences. Use the search_orders tool when asked about orders.
'''},
{'role': 'user', 'content': 'Where is my order #1234?'},
]
for m in messages:
print(f"[{m['role']}] {m['content'].strip()}")
Wiele wiadomości systemowych
Większość API obsługuje tylko jedną wiadomość systemową. Jeśli trzeba połączyć kilka warstw instrukcji, należy je skonkatenować albo użyć oddzielnych sekcji XML wewnątrz treści systemowej.
Wiadomości assistant a pamięć
Poprzednie wypowiedzi assistant są częścią kontekstu. Model widzi własne wcześniejsze dane wyjściowe i zachowuje spójność.
Dlatego stwierdzenie „tak, będę przestrzegać Państwa reguł” wygenerowane przez model w poprzednim obrocie rozmowy skłania go do faktycznego ich przestrzegania.
Wstępne wypełnianie obrotu assistant (Anthropic)
Anthropic umożliwia rozpoczęcie wiadomości assistant od tekstu, który model będzie kontynuować:
messages = [
{'role': 'user', 'content': 'Return a JSON object with name and age.'},
{'role': 'assistant', 'content': '{'}
]
# The model continues from '{', forcing JSON output.
for m in messages:
print(f"{m['role']}: {m['content']}")
print("The model continues from '{', forcing JSON output.")
Rola tool
Nowoczesne API dodają czwartą rolę: tool (OpenAI) albo bloki treści z tool_result (Anthropic).
Po wykonaniu funkcji zażądanej przez model należy dołączyć wiadomość tool.
Błędy związane z mieszaniem ról
Typowe błędy:
- Umieszczanie wyników narzędzi w wiadomościach user — zaburza hierarchię zaufania
- Pomijanie tool_call_id — powoduje błędy API
- Dwie kolejne wiadomości user lub assistant — większość API je odrzuca
Hierarchia instrukcji
OpenAI publikuje specyfikację modelu, w której stwierdza:
"W przypadku konfliktu model powinien zastosować się do instrukcji znajdującej się wyżej w hierarchii: platforma > developer (system) > user > tool."
Anthropic przedstawia podobne wytyczne. Wygrywa miejsce system.
Miejsca dla ról
Gdzie należy umieścić twardą regułę, taką jak „nigdy nie ujawniaj wewnętrznych cen”?
Podsumowanie
Trzy role i trzy poziomy zaufania. System służy do reguł, user do danych wejściowych, a assistant do odtwarzania wcześniejszych odpowiedzi. Po wywołaniach funkcji należy dodawać wiadomości tool.
Często zadawane pytania
Czy lekcja „Role systemu, użytkownika i asystenta” jest bezpłatna?
Tak — pełny tekst „Role systemu, użytkownika i asystenta” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.
Co nauczysz się w „Role systemu, użytkownika i asystenta”?
Poznaj trzy role komunikatów we współczesnych API czatowych oraz dowiedz się, jak wpływają one na to, czemu model ufa i czego przestrzega. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AI Agents?
Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Role systemu, użytkownika i asystenta”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?
Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Zero-shot, few-shot i chain-of-thought
- Role systemu, użytkownika i asystenta
- Formatowanie danych wyjściowych (JSON, XML, Markdown)
- Zapobieganie prompt injection w danych wejściowych