> 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.

# Zdarzenia od klienta do serwera

**Zdarzenia od klienta do serwera** to wiadomości, które twoja aplikacja proaktywnie wysyła do serwera, by przekazać dodatkowy kontekst podczas rozmów. Pozwalają wzbogacić rozmowę o istotne informacje bez przerywania jej toku.

> **Note**
>
> Informacje o zdarzeniach wysyłanych przez serwer do klienta znajdziesz w dokumentacji [zdarzeń klienta](/docs/pl/eleven-agents/customization/events/client-events).

## Omówienie

Twoja aplikacja może w dowolnym momencie rozmowy wysyłać do serwera informacje kontekstowe, aby poprawić jakość i trafność rozmowy. Nie musi to być odpowiedź na zdarzenie klienta odebrane z serwera. Jest to szczególnie przydatne do udostępniania stanu UI, działań użytkownika lub innych danych środowiskowych, których nie da się przekazać bezpośrednio głosem.

> **Info**
>
> Nasze SDK oferują metody pomocnicze do wysyłania tych zdarzeń, ale znajomość bazowego
> protokołu jest przydatna w niestandardowych implementacjach i zaawansowanych przypadkach użycia.

## Typy zdarzeń

### Aktualizacje kontekstowe

Aktualizacje kontekstowe pozwalają aplikacji wysyłać do rozmowy nieprzerywające informacje w tle.

**Najważniejsze cechy:**

* Aktualizacje są uwzględniane jako informacje w tle rozmowy.
* Nie przerywają bieżącego toku rozmowy.
* Przydają się do wysyłania stanu UI, działań użytkownika lub danych środowiskowych.

```javascript
// Contextual update event structure
{
  "type": "contextual_update",
  "text": "User appears to be looking at pricing page"
}
```

```javascript
// Example sending contextual updates
function sendContextUpdate(information) {
  websocket.send(
    JSON.stringify({
      type: "contextual_update",
      text: information,
    })
  );
}

// Usage examples
sendContextUpdate("Customer status: Premium tier");
sendContextUpdate("User navigated to Help section");
sendContextUpdate("Shopping cart contains 3 items");
```

### Wiadomości użytkownika

Wiadomości użytkownika pozwalają wysyłać tekst bezpośrednio do rozmowy, tak jakby użytkownik go wypowiedział. Jest to przydatne w interakcjach tekstowych lub gdy chcesz wstawić konkretny tekst do toku rozmowy.

**Najważniejsze cechy:**

* Tekst jest przetwarzany jako dane wejściowe użytkownika w rozmowie.
* Wywołuje ten sam tok odpowiedzi co wypowiedź użytkownika.
* Przydaje się w interfejsach tekstowych lub przy programowym wprowadzaniu danych użytkownika.

```javascript
// User message event structure
{
  "type": "user_message",
  "text": "I would like to upgrade my account"
}
```

```javascript
// Example sending user messages
function sendUserMessage(text) {
  websocket.send(
    JSON.stringify({
      type: "user_message",
      text: text,
    })
  );
}

// Usage examples
sendUserMessage("I need help with billing");
sendUserMessage("What are your pricing options?");
sendUserMessage("Cancel my subscription");
```

### Aktywność użytkownika

Zdarzenia aktywności użytkownika działają jako sygnały zapobiegające przerywaniu przez agenta.

**Najważniejsze cechy:**

* Resetują licznik limitu czasu tury.
* Nie wpływają na treść ani tok rozmowy.
* Przydają się do utrzymywania długich rozmów w okresach ciszy.

```javascript
// User activity event structure
{
  "type": "user_activity"
}
```

```javascript
// Example sending user activity
function sendUserActivity() {
  websocket.send(
    JSON.stringify({
      type: "user_activity",
    })
  );
}

// Usage example - send activity ping every 30 seconds
setInterval(sendUserActivity, 30000);
```

## Dobre praktyki

1. **Aktualizacje kontekstowe**

   * Wysyłaj istotne, ale zwięzłe informacje kontekstowe.
   * Nie zasypuj LLM zbyt dużą liczbą aktualizacji.
   * Skup się na informacjach wpływających na tok rozmowy lub ważnym kontekście z działań w UI niedostępnym dla agenta głosowego.

2. **Wiadomości użytkownika**

   * Używaj ich do tekstowych danych wejściowych użytkownika, gdy audio nie jest dostępne lub odpowiednie.
   * Dbaj o jasną i dobrze sformatowaną treść tekstu.
   * Przy wstawianiu programowych wiadomości uwzględniaj kontekst rozmowy.

3. **Aktywność użytkownika**

   * Wysyłaj sygnały aktywności podczas interakcji użytkownika, aby utrzymać sesję.
   * Stosuj rozsądne interwały (np. 30–60 sekund), aby uniknąć niepotrzebnego ruchu sieciowego.
   * Wykrywaj aktywność na podstawie faktycznego zaangażowania użytkownika (ruch myszy, pisanie itp.).

4. **Kwestie czasu**

   * Wysyłaj aktualizacje w odpowiednich momentach.
   * Rozważ łączenie wielu aktualizacji kontekstowych w jedną (zamiast wysyłać każdą drobną zmianę osobno).
   * Zachowaj równowagę między utrzymaniem aktywnej sesji a unikaniem nadmiaru wiadomości.

> **Info**
>
> Szczegółowe przykłady implementacji znajdziesz w naszej [dokumentacji SDK](/docs/pl/eleven-agents/libraries/python).