from typing import List, Dict, Any, Optional class LLMBase: """ Abstrakte Basisklasse für alle LLM-Backends (Bedrock, später evtl. lokal, etc.) """ async def chat( self, messages: List[Dict[str, str]], tools: Optional[List[Dict[str, Any]]] = None ) -> Dict[str, Any]: """ Führt einen Chat-Request aus. Args: messages: Chat History im OpenAI/Bedrock Format tools: Optional Tool Definitionen (MCP → Bedrock konvertiert) Returns: Roh-Response vom Modell (provider-spezifisch) """ raise NotImplementedError("chat() muss vom konkreten LLM implementiert werden")