Aktualizowanie stanu

Pozwól agentowi aktualizować zmienne dynamiczne w trakcie rozmowy za pomocą wyrażeń.

Omówienie

Narzędzie Aktualizuj stan pozwala agentowi ustawić co najmniej jedną zmienną dynamiczną w trakcie rozmowy. Podobnie jak inne narzędzia systemowe, zmienia tylko wewnętrzny stan rozmowy — nigdy nie wywołuje zewnętrznego API ani funkcji po stronie klienta.

Użyj go, aby zapisywać informacje w trakcie rozmowy, na przykład oznaczyć, że rozmowę należy eskalować, zachować wartość podaną przez użytkownika lub obliczyć wartość na podstawie innych zmiennych dynamicznych.

Funkcje

  • Wiele aktualizacji w jednym wywołaniu: Jedno wywołanie narzędzia może przypisać naraz do 10 zmiennych dynamicznych.
  • Wartości oparte na wyrażeniach: Każda wartość jest wynikiem wyrażenia, które może łączyć stałe, istniejące zmienne dynamiczne, wartości wyodrębnione przez LLM z rozmowy oraz operatory.
  • Wyodrębnianie przez LLM tylko wtedy, gdy jest potrzebne: Narzędzie prosi LLM o wyodrębnienie parametrów tylko dla aktualizacji, które tego wymagają. Aktualizacje zbudowane wyłącznie ze stałych i/lub istniejących zmiennych dynamicznych nie dodają parametrów do wywołania funkcji.
  • Natychmiastowa dostępność: Po uruchomieniu narzędzia zaktualizowane zmienne dynamiczne są dostępne w dalszej części rozmowy — późniejsze prompty, wywołania innych narzędzi i nadpisania mogą się do nich odwoływać, tak jak do każdej innej zmiennej dynamicznej.

Jak to działa

Każda aktualizacja stanu przypisuje wynik wyrażenia do zmiennej dynamicznej:

variable_name = expression

Wyrażenie może należeć do jednego z poniższych typów, a wyrażenia można zagnieżdżać, aby tworzyć bardziej złożoną logikę:

TypOpis
StałaStały ciąg znaków, liczba, wartość logiczna lub null.
Zmienna dynamicznaBieżąca wartość innej zmiennej dynamicznej.
Wartość wyodrębniona przez LLMWartość wywnioskowana przez LLM z rozmowy, zgodna z określonym typem (ciąg znaków, liczba lub wartość logiczna).
Operator logicznyand, or lub wyrażenie warunkowe (if / then / else) łączące inne wyrażenia.
Operator porównania=, ≠, >, <, ≥, ≤, porównujące dwa wyrażenia.
Operator arytmetyczny+, -, ×, ÷, łączące dwa wyrażenia liczbowe (lub, w przypadku +, tekstowe).

Na przykład poniższa aktualizacja stanu ustawia should_escalate na true, jeśli LLM uzna, że użytkownik jest sfrustrowany, lub jeśli zmienna dynamiczna retry_count jest już większa niż 3:

should_escalate = (llm: "User sounds frustrated with the conversation") OR (retry_count > 3)

Jeśli aktualizacji stanu nie da się obliczyć — na przykład przez dzielenie przez zero — wywołanie narzędzia zwraca błąd i żadna z aktualizacji w tym wywołaniu nie zostaje zastosowana.

Konfiguracja

1

Krok 1: Dodaj narzędzie

Przejdź do strony konfiguracji agenta. W sekcji Narzędzia kliknij Dodaj narzędzie i wybierz Aktualizuj stan.

2

Krok 2: Zdefiniuj aktualizacje stanu

Dla każdej aktualizacji stanu podaj:

  • Nazwa zmiennej: Zmienna dynamiczna, do której chcesz przypisać wartość.
  • Wyrażenie: Wartość do przypisania, zbudowana z opisanych wyżej typów wartości i operatorów. Wartości można zagnieżdżać, aby tworzyć bardziej złożone wyrażenia.

Dla jednego narzędzia możesz zdefiniować do 10 aktualizacji stanu.

3

Krok 3: Skonfiguruj opis (opcjonalnie)

Możesz podać własny opis, aby wskazać LLM, kiedy ma wywołać narzędzie. Jeśli pozostawisz to pole puste, użyty zostanie domyślny opis zoptymalizowany dla tego narzędzia.

Przykłady użycia

  • Flagi eskalacji: Ustaw zmienną dynamiczną (na przykład should_escalate), którą sprawdza system niższego poziomu lub reguła biznesowa, jak pokazano w przewodniku integracji z Genesys.
  • Zapisywanie wyodrębnionych informacji: Zapisz wartość podaną przez użytkownika (numer zamówienia, preferencję, wybrany dział) jako zmienną dynamiczną do użycia później w rozmowie.
  • Wartości pochodne: Oblicz wartość na podstawie innych zmiennych dynamicznych, na przykład zwiększ licznik lub połącz dwie zmienne w jedną.

Cel: Pozwala agentowi aktualizować jedną lub więcej zmiennych dynamicznych na podstawie rozmowy, bez wywoływania zewnętrznego API.

Warunki wywołania: LLM powinien wywołać to narzędzie, gdy:

  • Rozmowa dostarcza informacji, którą należy zapisać (np. flagę eskalacji, wybraną opcję lub wartość podaną przez użytkownika)
  • Skonfigurowana aktualizacja stanu zależy od wartości, którą LLM musi ocenić lub wyodrębnić z rozmowy

Parametry:

Parametry funkcji zależą od konfiguracji narzędzia. Każda skonfigurowana aktualizacja stanu używająca wartości wyodrębnionej przez LLM dodaje jedną właściwość do schematu, nazwaną od zmiennej dynamicznej tej aktualizacji i z typem string, number lub boolean. Aktualizacje stanu tworzone wyłącznie ze stałych lub innych zmiennych dynamicznych nie dodają parametrów.

Format wywołania funkcji:

{
"type": "function",
"function": {
"name": "update_state",
"arguments": "{\"should_escalate\": true}"
}
}

Implementacja: Agent ocenia każde skonfigurowane wyrażenie, używając wyodrębnionych parametrów oraz bieżących zmiennych dynamicznych rozmowy, a następnie przypisuje wyniki do odpowiednich zmiennych dynamicznych. Nie wykonuje żadnego zewnętrznego żądania.

FAQ

Nie. Podobnie jak wszystkie narzędzia systemowe, Aktualizuj stan zmienia tylko wewnętrzny stan rozmowy. Nie wywołuje zewnętrznego API ani funkcji po stronie klienta.

Nie. Narzędzie prosi LLM o wyodrębnienie parametru tylko dla aktualizacji stanu, których wyrażenie zawiera wartość wyodrębnioną przez LLM. Jeśli każda skonfigurowana aktualizacja jest zbudowana ze stałych i/lub istniejących zmiennych dynamicznych, wywołanie funkcji nie przyjmuje parametrów.

Wszędzie, gdzie można użyć zmiennej dynamicznej: w promptach systemowych, pierwszych wiadomościach, parametrach narzędzi i nagłówkach oraz nadpisaniach. Szczegóły znajdziesz w sekcji Zmienne dynamiczne.

Aktualnie narzędzie Aktualizuj stan można skonfigurować w panelu agenta. Obsługa API i SDK nie jest jeszcze dostępna.