Zum Inhalt springen

emit_event

emit_event ist ein eingebautes Tool, das jedem Selu-Agenten zur Verfügung steht. Damit kann ein Agent einem Nutzer proaktiv eine Benachrichtigung schicken, selbst wenn gerade kein aktives Gespräch läuft. Das ermöglicht Anwendungsfälle wie Erinnerungen, Warnungen, geplante Updates und Hintergrund-Monitoring.

Wenn das LLM emit_event aufruft, macht der Orchestrator Folgendes:

  1. Er erstellt ein Benachrichtigungs-Payload.
  2. Er liefert es über alle verbundenen Kanäle des Nutzers aus, also Web-Chat, iMessage und Telegram.
  3. Er startet optional eine neue Session, falls der Nutzer auf die Benachrichtigung antwortet.

Für den Nutzer erscheint das Ereignis einfach als Nachricht des Agenten. Es ist keine spezielle UI auf dem Kanal nötig.

name: emit_event
parameters:
- name: title
type: string
required: true
description: Short headline for the notification (max 100 chars).
- name: body
type: string
required: true
description: The notification message. Markdown is supported.
- name: priority
type: string
required: false
default: normal
description: "normal or urgent. Urgent events may trigger push notifications."
- name: schedule
type: string
required: false
description: "ISO 8601 datetime for delayed delivery. Omit for immediate."

Du kannst dem Agenten im System Prompt erklären, wann er Events auslösen soll:

agent.md
## Reminders
When the user asks you to remind them about something:
1. Confirm the reminder details.
2. Use `emit_event` with a `schedule` parameter set to the requested time.
3. Set `title` to a short summary and `body` to the full reminder text.

Wenn das LLM entscheidet, ein Event auszulösen, sieht der Tool-Call etwa so aus:

{
"tool": "emit_event",
"parameters": {
"title": "Standup in 10 minutes",
"body": "Your daily standup meeting starts at 9:30 AM.",
"priority": "normal",
"schedule": "2025-07-15T09:20:00Z"
}
}

Der Orchestrator bestätigt das Event und gibt Folgendes zurück:

{
"event_id": "evt_a1b2c3",
"status": "scheduled",
"deliver_at": "2025-07-15T09:20:00Z"
}

Nutzer können wiederkehrende Events von Agenten abonnieren, die das unterstützen. Ein News-Agent könnte zum Beispiel täglich ein Briefing auslösen. Das Abonnement wird in den Agenten-Einstellungen des Nutzers konfiguriert. Als Entwickler musst du dafür nur emit_event im System Prompt sinnvoll unterstützen.

Die Nutzersicht dazu findest du unter Abonnements und Ereignisse im User Guide.

GrenzeWert
Maximal Events pro Agent und Stunde60
Maximale body-Länge4.000 Zeichen
Maximale geplante Verzögerung30 Tage
Maximal ausstehende Events pro Nutzer500