Większość działań z zakresu inżynierii poleceń koncentruje się na dokładności i kompletności instrukcji. Największe korzyści we wdrożeniach produkcyjnych przynosi potraktowanie samego dialogu jako głównego problemu projektowego.
Określenie intencji w formie wyzwalacza i działania uczy model, jak podejmować decyzje, zamiast narzucać mu sztywny skrypt, którego nie może elastycznie dostosować. Położenie treści w poleceniu samo w sobie jest instrukcją. Najpierw umieszczamy tożsamość, w środku niuanse zachowania, a na końcu twarde ograniczenia. Wszystko, co naprawdę kluczowe, powinno trafiać w oba miejsca.
Pisanie polecenia w docelowym stylu zamiast opisywania go to jedna ze zmian przynoszących największe korzyści.
Najbardziej spójni agenci to ci, których polecenia traktują różne momenty rozmowy jako odrębne interakcje, z których każda ma odpowiednią formę, a jednocześnie zachowują ten sam rozpoznawalny, spójny styl w całej rozmowie.
W niektórych przypadkach oddzielenie agentów odpowiedzialnych za rozumowanie od agentów prowadzących rozmowę zapewnia bardziej spójne, osadzone w faktach odpowiedzi i zapobiega przenikaniu wewnętrznego rozumowania do komunikatów kierowanych do użytkownika.
Wcześniej przedstawiliśmy nowy paradygmat tworzenia poleceń, oparty na wiedzy z dziedzin językoznawstwa i psychologii poznawczej. Pisaliśmy o znaczeniu stworzenia jasnej, dobrze wyznaczonej przestrzeni problemowej, w której może działać nasz agent, oraz o tym, że przestrzeń ta powinna uwzględniać nadrzędne zadanie AI komunikującej się z klientami: prowadzenie dialogu.
Teraz omówimy praktyczne zmiany w naszych poleceniach, które wynikają z prób zastosowania tych zasad w środowisku produkcyjnym.
Po setkach iteracji poleceń w działających systemach komunikujących się z klientami stwierdziliśmy, że największych korzyści nie przynosi dodawanie instrukcji, mnożenie przykładów ani przestrzeganie typowych zasad inżynierii poleceń. Źródłem tych korzyści okazało się uznanie dialogu za sedno problemu.
Ciągłe eksperymenty i testy pozwoliły wyłonić kilka skutecznych technik. Zmienialiśmy polecenie i obserwowaliśmy, w których miejscach rozmowa przebiega pomyślnie, a w których pojawiają się problemy. Następnie ustalaliśmy, czy źródłem niepowodzenia była jakość wytycznych, struktura polecenia czy użyty język. W rezultacie powstało kilka powtarzalnych wzorców, które zmieniają sposób interpretowania przez agenta swojej roli w rozmowie, wybierania kolejnego działania oraz utrzymywania spójnego stylu w zmieniających się kontekstach.
Poniższe podejście nie jest uniwersalną metodą ani stwierdzeniem, że problem tworzenia poleceń został już „rozwiązany”. To pięć wzorców, które sprawdziły się w środowisku produkcyjnym, gdy celem była nie tylko poprawność funkcjonalna, lecz także lepszy dialog: odpowiedzi na tyle spójne, naturalne i konsekwentne, by mogły reprezentować markę.
Systemy agentowe można konstruować na wiele sposobów, ale koordynowane procesy pracy z udziałem wielu agentów wciąż pozostają popularne. Zwłaszcza w takich systemach najbardziej konsekwentną poprawę przyniosło oddzielenie agentów odpowiedzialnych za rozumowanie od agentów prowadzących rozmowę.
Koordynowanie intencji, klasyfikowanie, pozyskiwanie wiedzy i korzystanie z narzędzi to operacje realizowane na zapleczu. Odpowiedzi kierowane do klientów należą do warstwy komunikacyjnej. Gdy ten sam agent wykonuje oba zadania w jednej turze, wewnętrzne rozumowanie i logika mogą przenikać do odpowiedzi. W rezultacie stają się one nadmiernie asekuracyjne, pełne zastrzeżeń albo podporządkowane logice procesu zamiast potrzebom użytkownika.


To jedno ograniczenie przynosi zaskakująco wiele korzyści. Osadza odpowiedzi w rzeczywistym przebiegu rozmowy, zapobiega resetowaniu kontekstu i daje efekt zbliżony do tego, co nazywamy „przekazywaniem tego, co nowe”. Agent dodaje tylko najmniejszą porcję nowych informacji, która naprawdę pomaga użytkownikowi pójść naprzód.
Znaczenie ma również wybór rodzaju odpowiedzi. Odkryliśmy, że polecenie agentowi prowadzącemu rozmowę, aby przed napisaniem czegokolwiek wybrał rodzaj reakcji — odpowiedź, doprecyzowanie, przekierowanie lub wstrzymanie — skutecznie ogranicza najczęstszy błąd konwersacyjny: nie kiepski styl, lecz udzielenie całkowicie niewłaściwej odpowiedzi.
Warto zauważyć, że w odpowiednich warunkach najnowsze pionierskie modele zaczynają podważać założenia tego wzorca. Mimo to z różnych powodów wielu twórców nadal korzysta z mniejszych lub starszych modeli. W takich przypadkach zdecydowanie zalecamy rozdzielenie zadań zaplecza od zadań warstwy komunikacyjnej.
W modelach bez funkcji rozumowania kilka przykładów sprawdza się, ponieważ są konkretne, działają szybko i modele dobrze na nie reagują. Problemem jest nadmierne dopasowanie. Gdy model otrzyma przykład, przywiązuje się do jego słów, rytmu i formy, a następnie stale tworzy bardzo podobne odpowiedzi, nawet jeśli sytuacja uległa zmianie.
W ten sposób niechcący powstaje skrypt, z którego model nie potrafi uciec.
Trwalszą alternatywą są intencje wdrożeniowe lub heurystyki. Zamiast pokazywać modelowi, co ma powiedzieć w określonych sytuacjach*,* określamy ogólniejszą parę: wyzwalacz i działanie — jeśli wydarzy się X, zrób Y.
Najważniejsza różnica polega na tym, że zamiast stopniowo zawężać X i Y kolejnymi przykładami, przez co stają się coraz sztywniejsze, wyznaczamy każdemu z nich wyraźne granice za pomocą instrukcji tak precyzyjnej, że przykłady przestają być potrzebne. Dzięki temu agent reaguje na rzeczywistą zmienność rozmowy, zamiast dopasowywać wypowiedzi do szablonu.
W praktyce mniej przypomina to przykłady, a bardziej gotowe do wykonania reguły:
Jeśli brakuje kluczowej informacji, zadaj jedno pytanie doprecyzowujące.
Jeśli odpowiedź nie ma oparcia w dostępnych danych, powiedz o tym wprost i zaproponuj najlepszy możliwy następny krok.
Jeśli żądanie narusza regułę bezpieczeństwa, krótko odmów i bez zbędnych formalności przekieruj rozmowę.
Nie jest to efektowne, ale działa znacznie bardziej niezawodne niż biblioteka przykładowych odpowiedzi, ponieważ uczy model podejmować decyzje, a nie powtarzać gotowe treści.
Miejsce danej treści w poleceniu wpływa na wagę, jaką nadaje jej model. Ten wzorzec konsekwentnie obserwujemy w różnych modelach i wdrożeniach. Początek i koniec polecenia przyciągają nieproporcjonalnie dużo uwagi. W środku znajdują się niuanse, dokładnie tam, gdzie jest ich miejsce.
Mając to na uwadze, odpowiednio konstruujemy nasze polecenia. Rola agenta i jego obraz samego siebie trafiają na początek, aby przede wszystkim określić jego tożsamość. Środkowa część zawiera szczegóły dotyczące zachowania: prawdopodobny przebieg rozmowy, heurystyki kierujące odpowiedziami oraz zakres sytuacji, z którymi agent musi sobie poradzić. Twarde ograniczenia i zasady niepodlegające negocjacji umieszczamy na końcu, dzięki czemu pozostają „na pierwszym planie”.
Wszystko, co naprawdę kluczowe, umieszczamy w obu miejscach. Konkretna reguła dotycząca danych wyjściowych, na przykład jednoznaczna instrukcja w sprawie interpunkcji lub formatowania, może łatwo umknąć modelowi, jeśli pojawia się tylko raz w środku rozbudowanego polecenia. Powtórzona na końcu jest przestrzegana.
W kontekście efektu świeżości warto zauważyć, że jeśli stosujemy ustrukturyzowane dane wyjściowe, w praktyce stanowią one ostatnią instrukcję w poleceniu. Pola opisu w ustrukturyzowanych danych wyjściowych wpływają na jakość odpowiedzi i tworzą silniejszy kontrakt dotyczący wyników niż pozostała część polecenia.


Przekonaliśmy się, że kilku przykładów nie warto używać również do określania tonu wypowiedzi. Rezygnacja z nich była jedną z najbardziej znaczących zmian w naszych agentach komunikujących się z klientami.
Zamiast tego piszemy całe polecenie w docelowym stylu. Nie opisujemy tego stylu ani nie podajemy zestawu przybliżających go przymiotników, lecz stosujemy go bezpośrednio — w pełnych zdaniach, od pierwszego do ostatniego wiersza. Samo polecenie staje się demonstracją. Nazywamy to „antyskryptowością”: kierujemy model tak, by naśladował otrzymane dane wejściowe, a jednocześnie pozwalamy mu korzystać z szerszego zasobu słów i zwrotów utrzymanych w stylistyce samego polecenia.
W ten sposób uzyskujemy różnorodność przy zachowaniu spójnego stylu wypowiedzi. To część naszej strategii, dzięki której dialog staje się sednem zadania każdego agenta bez rozbudowywania bezpośrednich instrukcji, których liczbę staramy się ograniczać.
Jeśli będziemy podawać konkretne przykłady dotyczące tonu wypowiedzi, będą one pokazywać „czego nie robić”. Na przykład: „Nigdy nie używaj pauz. Żadnych klisz. Żadnego przytaczania całych zasad. Nie rozwlekaj odpowiedzi, jeśli jedno zdanie wystarczy”. Negatywne ograniczenia są jednocześnie bardziej precyzyjne i mniej restrykcyjne niż pozytywne wytyczne, ponieważ wskazują konkretne błędy, w które model najczęściej może popadać.
Znaczenie ma również formatowanie, bo ono także nadaje odpowiedzi ton. Polecenie pełne wypunktowań, nagłówków i instrukcji w nawiasach skłania model do udzielania bardziej uporządkowanych, bezosobowych odpowiedzi. Jeśli dane wyjściowe mają przypominać rozmowę, wejście nie powinno wyglądać jak skrótowa specyfikacja.
Określanie tonu w poleceniach zwykle sprowadza się do opisu osobowości. Podaje się zestaw przymiotników opisujących, jak powinien brzmieć agent. Ciepło. Profesjonalnie. Przyjaźnie, ale zwięźle. Nie są to błędne określenia, ale o tym, jak wypowiedź jest odbierana w rozmowie, naprawdę decyduje rejestr: sposób, w jaki ta sama postać zachowuje się w różnych sytuacjach społecznych.
Komunikat wyświetlany podczas przetwarzania zapytania nie powinien brzmieć jak ostateczna odpowiedź. Odpowiedź wynikająca z zastosowania zabezpieczeń wymaga innego tonu niż niezobowiązująca rozmowa. Sfrustrowanemu klientowi nie należy odpowiadać z takim samym poziomem lekkości czy humoru jak osobie, która po prostu swobodnie przegląda ofertę.


Na tym polega różnica między językiem marki a projektowaniem konwersacji. Język marki często opisuje osobowość jej postaci, natomiast projektowanie konwersacji określa, jak ta osobowość zachowuje się w zmieniających się sytuacjach. Właściwe podejście oznacza, że nie jesteśmy tylko autorami tekstów pracującymi nad danymi wyjściowymi AI. Projektujemy sposób, w jaki dany styl wypowiedzi prowadzi użytkownika przez rozmowę.
Jak widać, żaden z tych wzorców nie jest skomplikowany technicznie. I między innymi o to chodzi. Architektura systemu agentowego jest ważna, ale osiągnięcie wysokiej jakości konwersacji wymaga poświęcenia znacznej ilości czasu na projektowanie i dopracowywanie poleceń.
Luki między czysto funkcjonalną a prawdziwie konwersacyjną AI nie wypełni sam projekt techniczny. Potrzebne jest lepsze zrozumienie roli języka i uwagi w dialogu międzyludzkim oraz uczynienie dialogu sednem problemów rozwiązywanych przez agentów.
Zespoły tworzące produkty AI, inżynierowie i projektanci doświadczeń powinni przykładać do projektowania konwersacji w AI dla klientów równie dużą wagę jak do doskonałości technicznej. Dla osób uczestniczących w tych rozmowach nie ma żadnego modelu, współpracy wielu agentów ani wywołań narzędzi — jest tylko interakcja, która albo wydaje się właściwa, albo nie. Interakcja, która buduje lub podważa zaufanie.
Ostatecznie nikt nie doświadcza architektury. Doświadcza rozmowy.
To rozmowa jest produktem.