Skip to content
Diese Seite wurde mit KI-Unterstützung erstellt und übersetzt. Falls Ihnen Ungenauigkeiten auffallen, helfen Sie gerne bei der Verbesserung. Auf GitHub bearbeiten

Agenten-Typen

Agenten sind die zentralen Verteilungseinheiten in OpenPR-Webhook. Jeder Agent definiert, wie ein übereinstimmendes Webhook-Event behandelt wird. In einer einzelnen Bereitstellung können mehrere Agenten konfiguriert werden, und Events werden basierend auf dem bot_context in der Webhook-Nutzlast an den entsprechenden Agenten weitergeleitet.

Übersicht

TypAnwendungsfallFeature-Flag erforderlich
openclawBenachrichtigungen über Signal/Telegram mit OpenClaw-CLI sendenNein
openprxNachrichten über OpenPRX-Signal-API oder CLI sendenNein
webhookEvents an HTTP-Endpunkte weiterleiten (Slack, Discord usw.)Nein
customBeliebige Shell-Befehle ausführenNein
cliKI-Coding-Agenten ausführen (codex, claude-code, opencode)Ja (cli_enabled)

Agenten-Konfigurationsstruktur

Jeder Agent hat diese gemeinsamen Felder:

toml
[[agents]]
id = "unique-id"              # Eindeutiger Bezeichner, wird für den Abgleich verwendet
name = "Human-Readable Name"  # Anzeigename, auch für den Abgleich verwendet
agent_type = "openclaw"       # Eines von: openclaw, openprx, webhook, custom, cli
message_template = "..."      # Optional: benutzerdefiniertes Nachrichtenformat

Dann, abhängig vom agent_type, den typspezifischen Konfigurationsblock angeben:

  • [agents.openclaw] für openclaw-Agenten
  • [agents.openprx] für openprx-Agenten
  • [agents.webhook] für webhook-Agenten
  • [agents.custom] für custom-Agenten
  • [agents.cli] für cli-Agenten

Nachrichtenvorlagen

Das Feld message_template unterstützt Platzhalter, die mit Werten aus der Webhook-Nutzlast ersetzt werden:

PlatzhalterQuelleBeispiel
{event}payload.eventissue.updated
{title}payload.data.issue.titleFix login bug
{key}payload.data.issue.keyPROJ-42
{issue_id}payload.data.issue.id123
{reason}payload.bot_context.trigger_reasonassigned_to_bot
{actor}payload.actor.namealice
{project}payload.project.namebackend
{workspace}payload.workspace.nameIM
{state}payload.data.issue.statein_progress
{priority}payload.data.issue.priorityhigh
{url}abgeleitetissue/123

Standardvorlage (für openclaw, openprx, webhook, custom):

[{project}] {event}: {key} {title}
{actor} | Trigger: {reason}

Agenten-Abgleichlogik

Wenn ein Webhook-Event mit bot_context.is_bot_task = true ankommt:

  1. Der Dienst extrahiert bot_context.bot_name und bot_context.bot_agent_type
  2. Er sucht nach einem Agenten, dessen id oder name (Groß-/Kleinschreibung ignoriert) mit bot_name übereinstimmt
  3. Wenn kein Namensabgleich, fällt er auf den ersten Agenten zurück, dessen agent_type mit bot_agent_type übereinstimmt
  4. Wenn überhaupt kein Agent übereinstimmt, wird das Event quittiert, aber nicht weitergeleitet

Multi-Agenten-Beispiel

toml
# Agent 1: Benachrichtigung via Telegram
[[agents]]
id = "notify-tg"
name = "Telegram Notifier"
agent_type = "openclaw"
message_template = "[{project}] {event}: {key} {title}"

[agents.openclaw]
command = "/usr/local/bin/openclaw"
channel = "telegram"
target = "@my-channel"

# Agent 2: An Slack weiterleiten
[[agents]]
id = "notify-slack"
name = "Slack Forwarder"
agent_type = "webhook"

[agents.webhook]
url = "https://hooks.slack.com/services/T.../B.../xxx"

# Agent 3: KI-Coding-Agent mit MCP Closed-Loop
[[agents]]
id = "coder"
name = "Code Agent"
agent_type = "cli"

[agents.cli]
executor = "claude-code"
workdir = "/opt/projects/backend"
timeout_secs = 600
skip_callback_state = true  # KI aktualisiert Status direkt via MCP

[agents.cli.env_vars]
OPENPR_API_URL = "http://localhost:3000"
OPENPR_BOT_TOKEN = "opr_xxx"

In diesem Setup kann OpenPR verschiedene Events an verschiedene Agenten weiterleiten, indem das Feld bot_name in der Webhook-Nutzlast gesetzt wird.

Nächste Schritte

Released under the Apache-2.0 License.