Zum Inhalt springen
>_<
AI EngineeringWiki

Mattermost: Agent-Kommunikation

Tools · 6 min

📋 Auf einen Blick

Mattermost ist ein self-hosted Messaging-Tool und dient als zentraler Kommunikationsbus für AI-Agenten. Webhooks, Bot-Integration, Thread-Support und DSGVO-konform — alles was ein Multi-Agent System für Koordination braucht.

Mattermost ist unser zentraler Kommunikationsbus für alle Agenten. Statt einzeln mit jedem Agent zu chatten, läuft alles über einen Nachrichtenkanal. Das macht Koordination einfach und schafft einen automatischen Audit-Trail.

Warum Mattermost?

  • Open Source — alle Daten bleiben lokal
  • Webhook-fähig — perfekt für Automation
  • Thread-Unterstützung — Kontexte bleiben sortiert
  • Markdown-Support — strukturierte Nachrichten
  • DSGVO-konform — kein US-Cloud-Zwang

Unser Setup

ChannelZweck
#echo_logHaupt-Channel für Agent-Tasks
#infra-alertsMonitoring-Alerts
#shop-ordersBestellungen, Stripe
#dev-deploymentsDeploy-Status
#email-inboxEingehende E-Mails

Docker Compose Setup

# docker-compose.yml
services:
  mattermost:
    image: mattermost/mattermost-enterprise-edition
    ports:
      - "8065:8065"
    volumes:
      - ./data:/mattermost/data
      - ./config:/mattermost/config
    environment:
      - MM_SERVICESETTINGS_SITEURL=http://mattermost.local:8065
      - MM_SERVICESETTINGS_LISTENADDRESS=:8065
      - MM_TEAMSSETTINGS_SITENAME=Echo_log
    restart: unless-stopped

Nach dem Start: http://localhost:8065 — erster User wird Admin.

Agent-Polling

Jeder Agent hat ein Polling-Skript, das ständig den Channel überwacht:

# Python: Polling-Loop
import mattermostdriver

driver = Mattermost({
    'url': 'mattermost.example.com',
    'token': 'your-bot-token',
    'team_name': 'echo_log'
})

async def poll_channel():
    while True:
        posts = driver.posts.get_posts_for_channel('channel-id')
        for post in posts['posts'].values():
            if not post.get('metadata'):
                continue
            if 'Developer-Agent' in post['message']:
                task = parse_task(post['message'])
                result = await execute(task)
                post_response(post['root_id'], result)
        await asyncio.sleep(10)

# Start polling
asyncio.run(poll_channel())

Nachrichten-Format

# Task-Request
Developer-Agent Bitte deploye die neue Landing Page auf .99

# Response (durch Agent)
CEO Deployment abgeschlossen.
- Branch: feature/new-landing
- URL: https://ai-engineering.at
- Build: erfolgreich
- Dauer: 3min 22s

# Thread-Antwort (besser für Debugging)
CEO Ich schaue mir das mal an...
- Checking branch exists...
- Running docker build...
- Deploying to production...
✓ Fertig!

Webhook-Integration

Mattermost Webhooks ermöglichen externe Integration:

# Outgoing Webhook (zu anderen Diensten)
curl -X POST   -H "Content-Type: application/json"   -d '{
    "text": "Neue Bestellung: EUR 49",
    "channel": "shop-orders",
    "username": "stripe-bot",
    "icon_emoji": ":moneybag:"
  }'   https://mattermost.example.com/hooks/xxx-webhook-id

# Incoming Webhook (von anderen Diensten)
# z.B. Stripe -> Webhook -> Mattermost
curl -X POST   -H "Content-Type: application/json"   -d '{
    "text": "🚨 Payment Failed: Kunde #12345",
    "attachments": [{
      "color": "#FF0000",
      "fields": [{"title": "Betrag", "value": "€49.00"}]
    }]
  }'   https://mattermost.example.com/hooks/xxx

Bot erstellen

  1. Als Admin: Integration → Bot → "Bot erstellen"
  2. Token kopieren (wird nur einmal angezeigt)
  3. Bot zum Channel hinzufügen: Channel → Mitglieder → "Bot hinzufügen"

Best Practices

  1. Immer @mention verwenden — sonst ignorieren Agents
  2. Klare Struktur: Task → Kontext → Erwartetes Ergebnis
  3. Antworten im Thread — Channel bleibt sauber
  4. Fehler sofort posten — Transparenz
  5. Status-Updates bei langen Tasks
ℹ️ Nachrichten-Limit

Mattermost hat ein Limit von 4.000 Zeichen pro Nachricht. Bei laengeren Agent-Antworten muss der Text automatisch an Absatz-Grenzen gesplittet werden.

Zusammenfassung

Mattermost ist das Nervensystem unseres Agenten-Teams. Jede Kommunikation wird automatisch geloggt — gut für Audit und Debugging.

Quellen

War dieser Artikel hilfreich?

Nächster Schritt: Workflows sauber in Betrieb bringen

Nutze bewährte n8n-Patterns, Templates und Integrationen für Workflows, die lokal, dokumentiert und auditierbar bleiben.

Warum AI Engineering
  • Lokal und self-hosted gedacht
  • Dokumentiert und auditierbar
  • Aus eigener Runtime entwickelt
  • Made in Austria
Kein Ersatz für Rechtsberatung.