Skip to main content

Center Manager: KI-Orchestrator & Aktionen

Technische Referenz für den intent-gesteuerten AI-Chat in der Center Manager App (/ai-chat).

Nutzer-Doku: Center Manager App · Archiv-Notiz: docs/AI-CONTEXT-INTENT-ACTIONS-FLOW.md


Was

Der Manager-Chat nutzt einen Orchestrator, der Dashboard-KI (Intent + Kontext) mit echten CMS-Aktionen verbindet — z. B. Ticket anlegen, Entwurf erstellen, Rundmail auslösen, oft als Mehrfach-Kette.

Warum

Früher liefen Intent-Analyse (Dashboard) und Aktionen (Center Manager) getrennt; teils Regex-Demos statt LLM-Intent. Ziel: ein Durchlauf — verstehen → antworten → ausführen.

Wer ist betroffen

GruppeAuswirkung
Center Manager / Marketing/ai-chat — natürliche Sprache löst Workflows aus
RedaktionEntwürfe landen wie gewohnt zur Freigabe
Facility / BetriebIssues und Benachrichtigungen im Dashboard
Dev / BetriebNeue Proxy-Routen in apps/center-manager, Abhängigkeit Dashboard-AI-Settings

Wo

OrtPfad
Chat-UIManager-App → KI-Chat (/ai-chat)
Orchestrator (CM)POST /api/ai/orchestrate
Intent (Dashboard)POST /api/ai/analyze-intent
Kontext + AntwortPOST /api/ai/manager-assistant
AktionenPOST /api/ai/actions/execute (Dashboard)
Code CMapps/center-manager/src/lib/ai-orchestrator.ts
Code Dashboard Intentapps/dashboard/src/lib/ai-analyze-intent.ts

Ablauf

Primär: LLM-Intent (analyzeIntentWithAI) + Hybrid-Kontext (Pinecone-Semantik + intent-gesteuerte DB-Slices).
Fallback: Regex in ai-workflow-chains.ts nur wenn Intent nicht actionabel (markiert als Fallback).
Entfernt: Legacy-Pfad intent-detectionaction-handler (HTTP 410); Typen in ai-intent-types.ts.

API (Center Manager)

POST /api/ai/orchestrate

Body: { query, centerId, userId?, userName?, role?, sessionId?, intent?, confirmExecution? }

  • sessionId: stabil pro Chat-Tab — Thread-Kontext in Redis (ai-thread-memory)
  • confirmExecution: true: führt geplanten Plan aus (nach Bestätigung); intent mitgeben (aus der Planungs-Antwort), damit nicht „ja“ neu analysiert wird

Response: { success, data: { answer?, intent?, execution?, pendingConfirmation? } }

  • pendingConfirmation: true wenn irreversible Schritte (Ticket, Broadcast) geplant, aber noch nicht ausgeführt
  • execution.source: ai_intent | regex_fallback | none
  • execution.steps: Array ausgeführter Schritte (leer bei pending)

Weitere Proxies: /api/ai/manager-assistant, /api/ai/run-workflow, /api/ai/execute-dashboard-action.

So testen

  1. Dashboard: OpenAI-Key unter Center-AI-Einstellungen (hasApiKey)
  2. Benutzer mit Rolle center_manager + Center-Zuordnung
  3. Manager-App → /ai-chat
  4. Formulierung variieren (nicht nur Demo-Sätze):
    • Reinigung: „Im Foyer ist es dreckig, bitte erledigen lassen“
    • Bewerbung: „Shop XY hat heute Rabatt — bitte kommunizieren“
  5. Erwartung: Antwort + execution.source: ai_intent; im Dashboard neues Issue/Entwurf
  6. Ohne OpenAI: Fallback-Modus (regex_fallback oder reine Suche)
  7. Bestätigung: „Aldi hat 20 % Rabatt — bitte News und Rundmail“ → geplante Aktionen → „ja“ im Chat oder Button Bestätigen & ausführen → Entwurf + Broadcast im Dashboard
  8. Social: „Mach einen Instagram-Post zum Sommer-Sale“ → Entwurf im Social Cockpit (pending)
  9. Vector-Health: Dashboard → Einstellungen → API → Tab „Vector Database“ → Sync-Health-Tabelle; API: GET /api/system/vector-sync/health?centerId=<uuid>

Betrieb

Env-Quelle: render.yamlmallos-center-manager (Blueprint). Nichts in Render manuell überschreiben, was aus dem Blueprint kommt.

VariableServiceHinweis
NEXT_PUBLIC_API_URLcenter-managerDashboard-Origin
NEXT_PUBLIC_API_BASE_URLcenter-managerAlle CM-Proxies
CM_SESSION_SECRETcenter-managerSecret, sync: false in Blueprint
REDIS_*center-managerCache, von mallos-redis
BUNNY_*center-managerUploads (Foto im Chat)
OpenAI / PineconedashboardCenter-AI-Settings (nicht CM-Env Pflicht)
PINECONE_HOSTdashboardOptional; Default aus pinecone-config
CRON_SECRETdashboardSchützt /api/system/vector-sync (Full-Sync) + Cron

Pinecone & Vector-Sync

ThemaDetail
SchreibenDashboard POST /api/system/vector-sync — Realtime nach CMS-Änderungen + nächtlicher Cron
Lesenmanager-assistant: Hybrid Pinecone-Treffer + DB-Slices (generateManagerContext)
Namespacecenter-{centerId}
Codeapps/dashboard/src/lib/pinecone-config.ts, vector-sync-middleware.ts
CronPOST /api/cron/vector-sync — siehe docs/CRON-SETUP.md
HealthGET /api/system/vector-sync/health — UI unter Dashboard → API → Vector Database
BestätigungTickets/Rundmail: Plan → Dialog → confirmExecution: true
SocialSchritt create_social_draft → Social Cockpit (pending)
ThreadRedis ai-thread-memory (Session-Kontext im Orchestrator)

Lokal: apps/center-manager/.env.example — gleiche Namen, Dev-Werte für localhost.


Siehe auch: Center Manager App — Architektur & Betrieb

Wichtige Dateien

BereichDatei
Orchestratorapps/center-manager/src/lib/ai-orchestrator.ts
Workflow-Ketten (Fallback)apps/center-manager/src/lib/ai-workflow-chains.ts
Chat-UIapps/center-manager/src/components/ai/modern-ai-chat.tsx
Intent LLMapps/dashboard/src/lib/ai-analyze-intent.ts
Kontext-Paketpackages/ai-context/
Thread-Memoryapps/center-manager/src/lib/ai-thread-memory.ts
Intent-Typen (Legacy)apps/center-manager/src/lib/ai-intent-types.ts
Vector-Healthapps/dashboard/src/lib/vector-sync-health.ts, vector-sync-indexable.ts (Review-Cap 50 = Full-Sync)
Social aus KIapps/dashboard/src/lib/integration/social-from-ai-action.ts

Nutzungsstatistik: Seitenaufrufe werden anonymisiert erfasst. Im Umami-Dashboard nach diesem Pfad filtern: /en/developer-guide/center-manager-ai-orchestrator