'use client' import { useState, useEffect } from 'react' import Link from 'next/link' import { Bot, Activity, Brain, Settings, FileText, BarChart3, Clock, AlertTriangle, CheckCircle, Pause, XCircle, ChevronRight, Cpu, MessageSquare, Database, RefreshCw } from 'lucide-react' // Agent types interface AgentConfig { id: string name: string description: string soulFile: string color: string icon: 'bot' | 'brain' | 'message' | 'alert' | 'settings' status: 'running' | 'paused' | 'stopped' | 'error' activeSessions: number totalProcessed: number avgResponseTime: number lastActivity: string } interface AgentStats { totalSessions: number activeSessions: number totalMessages: number avgLatency: number errorRate: number memoryUsage: number } // Mock data - In production, fetch from API const mockAgents: AgentConfig[] = [ { id: 'tutor-agent', name: 'TutorAgent', description: 'Lernbegleitung und Fragen beantworten', soulFile: 'tutor-agent.soul.md', color: '#3b82f6', icon: 'brain', status: 'running', activeSessions: 12, totalProcessed: 1847, avgResponseTime: 234, lastActivity: '2 min ago' }, { id: 'grader-agent', name: 'GraderAgent', description: 'Klausur-Korrektur und Bewertung', soulFile: 'grader-agent.soul.md', color: '#10b981', icon: 'bot', status: 'running', activeSessions: 3, totalProcessed: 456, avgResponseTime: 1205, lastActivity: '5 min ago' }, { id: 'quality-judge', name: 'QualityJudge', description: 'BQAS Qualitaetspruefung', soulFile: 'quality-judge.soul.md', color: '#f59e0b', icon: 'settings', status: 'running', activeSessions: 8, totalProcessed: 3291, avgResponseTime: 89, lastActivity: '1 min ago' }, { id: 'alert-agent', name: 'AlertAgent', description: 'Monitoring und Benachrichtigungen', soulFile: 'alert-agent.soul.md', color: '#ef4444', icon: 'alert', status: 'running', activeSessions: 1, totalProcessed: 892, avgResponseTime: 45, lastActivity: '30 sec ago' }, { id: 'orchestrator', name: 'Orchestrator', description: 'Task-Koordination und Routing', soulFile: 'orchestrator.soul.md', color: '#8b5cf6', icon: 'message', status: 'running', activeSessions: 24, totalProcessed: 8934, avgResponseTime: 12, lastActivity: 'just now' } ] const mockStats: AgentStats = { totalSessions: 156, activeSessions: 48, totalMessages: 15420, avgLatency: 156, errorRate: 0.8, memoryUsage: 67 } function getIconComponent(icon: string, className: string) { switch(icon) { case 'bot': return case 'brain': return case 'message': return case 'alert': return case 'settings': return default: return } } function getStatusIcon(status: string) { switch(status) { case 'running': return case 'paused': return case 'stopped': return case 'error': return default: return null } } function getStatusColor(status: string) { switch(status) { case 'running': return 'bg-green-500/10 text-green-600 border-green-500/20' case 'paused': return 'bg-yellow-500/10 text-yellow-600 border-yellow-500/20' case 'stopped': return 'bg-gray-500/10 text-gray-600 border-gray-500/20' case 'error': return 'bg-red-500/10 text-red-600 border-red-500/20' default: return 'bg-gray-500/10 text-gray-600 border-gray-500/20' } } export default function AgentManagementPage() { const [agents, setAgents] = useState(mockAgents) const [stats, setStats] = useState(mockStats) const [loading, setLoading] = useState(false) const [lastRefresh, setLastRefresh] = useState(new Date()) const refreshData = async () => { setLoading(true) // In production, fetch from API // const response = await fetch('/api/admin/agents/status') await new Promise(resolve => setTimeout(resolve, 500)) setLastRefresh(new Date()) setLoading(false) } useEffect(() => { // Auto-refresh every 30 seconds const interval = setInterval(refreshData, 30000) return () => clearInterval(interval) }, []) return (
{/* Header */}

Agent Management

Multi-Agent System verwalten, SOUL-Files bearbeiten, Statistiken analysieren

Letzte Aktualisierung: {lastRefresh.toLocaleTimeString('de-DE')}
{/* Quick Links */}
Architektur
Dokumentation & Diagramme
Sessions
{stats.activeSessions} aktiv
Statistiken
Performance & Trends
BQAS
Qualitaetssicherung
{/* Stats Overview */}
Gesamt Sessions
{stats.totalSessions.toLocaleString()}
Aktive Sessions
{stats.activeSessions}
Nachrichten (24h)
{stats.totalMessages.toLocaleString()}
Avg. Latenz
{stats.avgLatency}ms
Fehlerrate
{stats.errorRate}%
Memory Usage
{stats.memoryUsage}%
{/* Agents Grid */}

Agents

{agents.map((agent) => ( {/* Header */}
{getIconComponent(agent.icon, `w-5 h-5`)}

{agent.name}

{agent.description}

{getStatusIcon(agent.status)} {agent.status}
{/* Stats */}
{agent.activeSessions}
Sessions
{agent.totalProcessed}
Verarbeitet
{agent.avgResponseTime}ms
Avg. Zeit
{/* Footer */}
{agent.soulFile}
{agent.lastActivity}
))}
{/* Info Box */}

Multi-Agent Architektur

Das Breakpilot Multi-Agent-System basiert auf dem Mission Control Konzept. Jeder Agent hat eine definierte Persoenlichkeit (SOUL-File), die sein Verhalten steuert. Die Agents kommunizieren ueber einen Message Bus und nutzen ein gemeinsames Gedaechtnis (Shared Brain).

Architektur ansehen → SOUL-Files verstehen →
) }