Przejdź do nawigacji

Procedury

Instrukcje do konkretnych zadań, które agent ładuje w razie potrzeby

Omówienie

Procedura zawiera instrukcje dotyczące jednego konkretnego zadania. Każda procedura ma wyzwalacz określający, kiedy ma zastosowanie, oraz treść opisującą, co należy zrobić. Gdy rozmowa pasuje do wyzwalacza, agent ładuje procedurę.

Używaj procedur, gdy twój agent musi obsługiwać wiele różnych zadań. Przykładem jest agent obsługi klienta, gdzie każda procedura obejmuje jeden typ zgłoszenia: zwroty środków, weryfikację tożsamości, odzyskiwanie konta lub rozwiązywanie problemów z połączeniem.

Karta Procedury w panelu
agenta

Typy procedur

Są dwa rodzaje procedur:

  • Procedury swobodne są pisane jako instrukcje w języku naturalnym, które agent interpretuje i dostosowuje do sytuacji.
  • Procedury strukturyzowane to uporządkowana lista typowanych kroków, które agent wykonuje zawsze tak samo.

Możesz używać obu rodzajów w tym samym agencie. Agent wybiera odpowiednią procedurę na podstawie jej wyzwalacza, niezależnie od typu.

Procedury mogą wywoływać się nawzajem. Procedura swobodna wywołuje inną procedurę przez odwołanie inline, a procedura strukturyzowana wywołuje inną procedurę strukturyzowaną za pomocą kroku Podprocedura. Częsty wzorzec to obsługa otwartych kwestii w procedurze swobodnej i przekazywanie części, które muszą być wykonywane zawsze tak samo, do procedury strukturyzowanej.

Agent może mieć procedury, workflow albo oba te elementy. Gdy ma oba, każda procedura jest dostępna z każdego miejsca workflow; procedury nie można ograniczyć do konkretnych węzłów workflow. Większość agentów opiera się na jednym z tych podejść, ale można je łączyć.

Kiedy używać procedur

Każdy agent ma prompt systemowy. Procedury i workflow to dwa sposoby na dodanie struktury, a agent może używać obu. Wybierz punkt startowy zależnie od tego, jak bardzo może różnić się rozmowa.

WymaganieUżyjDlaczego
Prosty agent do weryfikacji pomysłuTylko prompt systemowyNajszybsze do skonfigurowania i iteracji, ale jeden prompt staje się nieporęczny, gdy zakres agenta rośnie.
Zadanie, w którym agent może zmieniać słowa i kolejnośćProcedura swobodnaCała rozmowa pozostaje w kontekście jednego LLM-a, więc agent dostosowuje słowa i kolejność oraz radzi sobie z nieoczekiwanym obrotem rozmowy. Zużywa więcej okna kontekstu.
Zadanie, którego kroki muszą zawsze przebiegać tak samoProcedura strukturyzowanaKażdy krok wykonuje się w ustawionej kolejności, zawsze tak samo, a ty tworzysz ją jako krótką listę kroków.
Pełna kontrola nad złożonymi rozgałęzieniami i przypadkami brzegowymiWorkflowDziała jako graf subagentów, które sam projektujesz i łączysz, z pełną kontrolą nad rozgałęzieniami i modelem używanym na każdym kroku.

Procedury swobodne są domyślnym wyborem. Napiszesz je najszybciej, czyta się je jak dokument, więc mogą należeć do zespołów nietechnicznych, a agent może wrócić na właściwy tor, gdy rozmowa odbiegnie od scenariusza. Wybierz procedurę strukturyzowaną, gdy koszt pominięcia lub zmiany kolejności kroku jest wysoki, na przykład przy uwierzytelnianiu, eskalacji lub transakcji finansowej. Wybierz workflow, gdy potrzebujesz logiki kierowania lub kontroli modelu dla każdego kroku, której nie oferuje żaden typ procedury.

Zarządzanie procedurami

Panel to zalecany sposób tworzenia procedur. Użyj CLI lub API, aby zarządzać procedurami programowo albo zintegrować je z narzędziami wdrożeniowymi.

Otwórz agenta w panelu, a potem wybierz Procedury. Użyj +, aby utworzyć procedurę swobodną lub strukturyzowaną. W tym samym menu możesz grupować procedury w folderach. Zobacz Procedury swobodne oraz Procedury strukturyzowane, aby poznać wskazówki dotyczące tworzenia.

Wybieraj procedury dla każdej rozmowy

Domyślnie każda rozmowa może używać wszystkich procedur agenta, a agent ładuje procedurę dopiero wtedy, gdy rozmowa pasuje do jej wyzwalacza. Twoja aplikacja często wie więcej przed rozpoczęciem rozmowy: kim jest użytkownik, w jakim jest regionie lub czego dotyczyło jego zgłoszenie. Przekaż identyfikatory procedur w danych klienta inicjujących rozmowę, aby wykorzystać tę wiedzę. Ty decydujesz, których procedur agent może używać i których ma przestrzegać od pierwszej tury.

PoleDziałanieDlaczego warto
procedure_idsOgranicza rozmowę do tych procedur. Pusta tablica wyłącza wszystkie procedury agenta.Daj każdemu użytkownikowi tylko procedury, które go dotyczą, na przykład ukryj procedury konta przed użytkownikiem, który się nie zalogował. Użyj tego też, gdy procedury mają podobne wyzwalacze, których nie da się uniknąć, np. osobną procedurę zwrotu dla każdego regionu. Przekaż tylko region użytkownika, aby agent nie mógł zastosować procedury innego regionu.
start_procedure_idsUruchamia te procedury swobodne wraz z rozmową, więc agent stosuje je od pierwszej tury. Przyjmuje maksymalnie pięć identyfikatorów.Odpowiadaj szybciej, gdy znasz już zadanie użytkownika, np. z wyboru w menu IVR, strony zawierającej widżet lub danych CRM.

Procedura w start_procedure_ids jest już załadowana, gdy użytkownik mówi po raz pierwszy, więc agent pomija wywołanie LLM, które by ją załadowało. Każda aktywna procedura pozostaje w prompcie w każdej turze, niezależnie od tego, czy uruchomił ją agent, czy twoja aplikacja. Uruchomiona procedura, której rozmowa nigdy nie potrzebuje, nadal dodaje swoją treść do każdej tury, więc uruchamiaj tylko procedury, których rozmowa prawdopodobnie użyje.

1

Zezwól na wybór procedury

Nadpisanie Procedury jest domyślnie wyłączone. Włącz je w każdym agencie, który ma przyjmować identyfikatory procedur od klienta.

Otwórz agenta w panelu, wybierz kartę Bezpieczeństwo i włącz nadpisanie Procedury.

2

Przekaż identyfikatory przy rozpoczęciu rozmowy

Jeśli agent nie ma włączonego nadpisania Procedury lub identyfikator jest nieprawidłowy, rozmowa nie rozpocznie się.

Pobierz identyfikatory procedur z Listy procedur. Dodaj procedure_ids, start_procedure_ids lub oba pola do danych klienta inicjujących rozmowę:

Dane inicjujące rozmowę
{
"type": "conversation_initiation_client_data",
"procedure_ids": [
"agtprc_4101k8f3w2pqv6xs9mhdr0tz7n3b",
"agtprc_2301k8f3xq9zfa7tkrqs6m4bdn5e",
"agtprc_7801k8f3yt4mfzh2xbq9d0vcpw1r"
],
"start_procedure_ids": ["agtprc_4101k8f3w2pqv6xs9mhdr0tz7n3b"]
}

Agent rozpoczyna rozmowę z pierwszą procedurą już uruchomioną. Nadal może uruchomić pozostałe dwie, gdy rozmowa pasuje do ich wyzwalaczy.

SDK rozmów dla Pythona i JavaScript nie wysyłają procedure_ids ani start_procedure_ids. Aby użyć tych pól, samodzielnie wyślij komunikat inicjujący przez WebSocket.

Oba pola podlegają tym zasadom:

  • Każdy identyfikator w procedure_ids musi należeć do agenta. Jeśli wybrana procedura wywołuje podprocedury, uwzględnij również podprocedury.
  • Każdy identyfikator w start_procedure_ids musi być procedurą swobodną. Jeśli przekazujesz też procedure_ids, każdy identyfikator musi również znaleźć się na tej liście.
  • procedure_ids dotyczy tylko agenta, z którym rozpoczyna się rozmowa. Nie obowiązuje po przekazaniu agenta.
  • Uruchomione procedury wliczają się do pięciu aktywnych procedur opisanych w sekcji Ograniczenia. Historia rozmowy zapisuje każdą z nich jako wywołanie narzędzia start_procedure.

Ograniczenia

  • Treść procedury jest ograniczona do 50 000 znaków.
  • Agent zachowuje w kontekście pięć ostatnio uruchomionych procedur. Gdy w jednej rozmowie uruchomiono ich więcej, treść, narzędzia inline i dokumenty bazy wiedzy najstarszych procedur swobodnych wypadają z promptu. Dbaj o skupienie procedur i używaj podprocedur, aby jednocześnie było aktywnych niewiele z nich.
  • Po utworzeniu procedury nie można zmienić jej typu. Aby przejść między formą swobodną a strukturyzowaną, utwórz nową procedurę i zaktualizuj wszystkie odwołania do niej.
  • Procedury należą do jednego agenta. Nie można ich udostępniać między agentami ani przechowywać jako zasobów na poziomie workspace’u.
  • Duplikowanie agenta kopiuje jego procedury zamiast je udostępniać. Kopie otrzymują nowe identyfikatory procedur, więc odwołania w zduplikowanym agencie muszą używać tych nowych identyfikatorów.
  • Procedur nie można ograniczyć do konkretnych węzłów workflow. Gdy agent ma oba elementy, każda procedura jest dostępna z każdego węzła.
  • Procedury strukturyzowane nie mogą odwoływać się do dokumentów bazy wiedzy.