> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Aktualizuj stan

## Omówienie

Narzędzie **Aktualizuj stan** pozwala agentowi ustawić jedną lub więcej [zmiennych dynamicznych](/docs/pl/eleven-agents/customization/personalization/dynamic-variables) w trakcie rozmowy. Podobnie jak inne [narzędzia systemowe](/docs/pl/eleven-agents/customization/tools/system-tools), zmienia ono tylko wewnętrzny stan rozmowy — nigdy nie wywołuje zewnętrznego API ani funkcji po stronie klienta.

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

Aby stosować aktualizacje stanu w stałym punkcie [workflow](/docs/pl/eleven-agents/customization/agent-workflows), zamiast wtedy, gdy LLM wywoła narzędzie, użyj [węzła aktualizacji stanu](/docs/pl/eleven-agents/customization/agent-workflows#update-state-node). Przyjmuje on te same aktualizacje stanu.

## Działanie

* **Wiele aktualizacji na wywołanie**: Jedno wywołanie narzędzia może przypisać jednocześnie do 50 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 w razie potrzeby**: 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 — mogą się do nich odwoływać późniejsze prompty, inne wywołania narzędzi i nadpisania, tak jak do każdej innej zmiennej dynamicznej.

## Jak to działa

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

```text
variable_name = expression
```

Wyrażenie może mieć jeden z poniższych typów. Wyrażenia można też zagnieżdżać, aby tworzyć bardziej złożoną logikę:

| Typ                            | Opis                                                                                                                         |
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
| Stała                          | Stały ciąg znaków, liczba, wartość logiczna lub wartość null.                                                                |
| Zmienna dynamiczna             | Bieżąca wartość innej zmiennej dynamicznej.                                                                                  |
| Wartość wyodrębniona przez LLM | Wartość, którą LLM wywnioskuje z rozmowy i która odpowiada zdefiniowanemu typowi (ciąg znaków, liczba lub wartość logiczna). |
| Operator logiczny              | `and`, `or` lub wyrażenie warunkowe (`if` / `then` / `else`) łączące inne wyrażenia.                                         |
| Operator porównania            | `=`, `≠`, `>`, `<`, `≥`, `≤`, porównujący dwa wyrażenia.                                                                     |
| Operator arytmetyczny          | `+`, `-`, `×`, `÷`, łączący 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:

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

> **Note**
>
> Jeśli nie uda się obliczyć aktualizacji stanu — na przykład przez dzielenie przez zero — wywołanie
> narzędzia zwróci błąd i żadna z aktualizacji w tym wywołaniu nie zostanie zastosowana.

## Konfiguracja

### Krok 1: Dodaj narzędzie

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

### Krok 2: Zdefiniuj aktualizacje stanu

Dla każdej aktualizacji stanu podaj:

* **Nazwa zmiennej**: Zmienna dynamiczna do przypisania.
* **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.
* **Wymagane**: Gdy opcja jest wyłączona, LLM może pominąć wartości, od których zależy ta aktualizacja. Aktualizacja zostanie wtedy pominięta, a zmienna zachowa bieżącą wartość.

W jednym narzędziu możesz zdefiniować do 50 aktualizacji stanu.

### Krok 3: Skonfiguruj opis (opcjonalnie)

Możesz podać własny opis, który wskaże LLM, kiedy wywołać narzędzie. Jeśli pozostawisz to pole puste, użyjemy domyślnego opisu zoptymalizowanego pod to narzędzie.

## Przykłady użycia

* **Flagi eskalacji**: Ustaw zmienną dynamiczną (na przykład `should_escalate`), którą sprawdzi system podrzędny lub reguła biznesowa, jak pokazano w [przewodniku po integracji z Genesys](/docs/pl/eleven-agents/customization/integrations/genesys#configure-escalation).
* **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**:

```json
{
  "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

#### Czy to narzędzie wykonuje zewnętrzne wywołania?

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

#### Czy wywołanie tego narzędzia zawsze wymaga, by LLM wyodrębnił parametry?

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.

#### Gdzie mogę użyć zmiennych dynamicznych ustawionych przez to narzędzie?

Wszędzie, gdzie możesz użyć zmiennej dynamicznej: w promptach systemowych, pierwszych wiadomościach,
parametrach i nagłówkach narzędzi oraz nadpisaniach. Szczegóły znajdziesz w sekcji [Zmienne dynamiczne](/docs/pl/eleven-agents/customization/personalization/dynamic-variables).

#### Czy mogę skonfigurować to narzędzie przez API?

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