'use client' import React, { useEffect, useState, useCallback } from 'react' import Link from 'next/link' interface AgentData { id: string name: string description: string color: string icon: string status: 'active' | 'inactive' | 'error' version: string stats: { sessionsToday: number avgResponseTime: string successRate: string } } interface AgentsResponse { agents: AgentData[] stats: { total: number active: number inactive: number error: number totalSessions: number avgResponseTime: string } timestamp: string } const ShieldIcon = () => ( ) const PencilIcon = () => ( ) function getAgentIcon(icon: string) { switch (icon) { case 'shield': return case 'pencil': return default: return } } function StatusBadge({ status }: { status: string }) { const colors = { active: 'bg-green-100 text-green-700', inactive: 'bg-gray-100 text-gray-600', error: 'bg-red-100 text-red-700', } const labels = { active: 'Aktiv', inactive: 'Inaktiv', error: 'Fehler' } return ( {labels[status as keyof typeof labels] || status} ) } export default function AgentsDashboardPage() { const [data, setData] = useState(null) const [loading, setLoading] = useState(true) const loadAgents = useCallback(async () => { try { const res = await fetch('/api/sdk/agents') if (res.ok) { setData(await res.json()) } } catch (err) { console.error('Failed to load agents:', err) } finally { setLoading(false) } }, []) useEffect(() => { loadAgents() const interval = setInterval(loadAgents, 30_000) return () => clearInterval(interval) }, [loadAgents]) if (loading) { return (
{[1, 2, 3].map(i =>
)}
) } const stats = data?.stats const agents = data?.agents || [] return (
{/* Header */}

Compliance-Agenten

Verwaltung und Konfiguration der KI-Agenten im Compliance SDK

{/* Quick Links */}
Architektur Sessions Statistiken Dokument-Generator
{/* Stats Bar */}
{stats?.total || 0}
Agenten gesamt
{stats?.active || 0}
Aktiv
{stats?.error || 0}
Fehler
{stats?.totalSessions || 0}
Sessions heute
{stats?.avgResponseTime || '—'}
Avg. Antwortzeit
6
RAG-Sammlungen
{/* Agent Grid */}
{agents.map((agent) => (
{getAgentIcon(agent.icon)}

{agent.name}

v{agent.version}

{agent.description}

{agent.stats.sessionsToday}
Sessions
{agent.stats.avgResponseTime}
Avg. Zeit
{agent.stats.successRate}
Erfolgsrate
))}
) }