Es war Freitagabend, 18:47 Uhr. Mein E-Commerce-Startup für nachhaltige Mode stand kurz vor dem Black Friday. Innerhalb von 30 Minuten explodierten die Support-Tickets von 12 auf über 400. Mein Team aus drei Leuten hätte niemals diese Flut bewältigen können. In dieser Nacht habe ich gelernt, was echte AI API Best Practices bedeuten – nicht aus Theorie, sondern aus der Praxis des Überlebens.

Warum AI API Integration ohne Best Practices scheitert

Nach dieser verheerenden Nacht begann ich, verschiedene AI-Provider zu evaluieren. Die的主流 Anbieter wie OpenAI und Anthropic klingen fantastisch, aber die Latenzzeiten von 800-2000ms und die Kosten von $15-80 pro Million Tokens machten sie für mein wachsendes Startup unbrauchbar.

Dann entdeckte ich HolySheep AI – und meine Erwartungen wurden nicht nur erfüllt, sondern übertroffen. Mit WeChat- und Alipay-Zahlung, einem Wechselkurs von ¥1=$1 und einer Latenz von unter 50ms konnte ich endlich den AI-Kundenservice implementieren, den ich immer wollte.

Die 5 kritischen Best Practices für Production-Ready AI APIs

1. Retry-Logic und Exponential Backoff implementieren

In der Produktion scheitern API-Calls. Netzwerke fallen aus, Server überlasten, Rate-Limits werden erreicht. Ohne robuste Fehlerbehandlung wird Ihre Anwendung unbrauchbar. Mein Production-Setup verwendet eineRetry-Strategie mit exponentieller Rückzugslogik:

import time
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry

class HolySheepAIClient:
    """Production-ready HolySheep AI client mit Retry-Logic"""
    
    def __init__(self, api_key: str):
        self.base_url = "https://api.holysheep.ai/v1"
        self.api_key = api_key
        self.session = self._create_session_with_retries()
    
    def _create_session_with_retries(self):
        """HTTP-Session mit Exponential Backoff konfigurieren"""
        session = requests.Session()
        
        # Retry-Strategie: 5 retries, exponentiell steigende Wartezeit
        retry_strategy = Retry(
            total=5,
            backoff_factor=1.0,  # 1s, 2s, 4s, 8s, 16s
            status_forcelist=[429, 500, 502, 503, 504],
            allowed_methods=["POST", "GET"],
            raise_on_status=False
        )
        
        adapter = HTTPAdapter(max_retries=retry_strategy)
        session.mount("https://", adapter)
        session.mount("http://", adapter)
        
        return session
    
    def chat_completion(self, messages: list, model: str = "deepseek-v3.2",
                       temperature: float = 0.7, max_tokens: int = 1000) -> dict:
        """Chat-Completion mit vollständiger Fehlerbehandlung"""
        
        headers = {
            "Authorization": f"Bearer {self.api_key}",
            "Content-Type": "application/json"
        }
        
        payload = {
            "model": model,
            "messages": messages,
            "temperature": temperature,
            "max_tokens": max_tokens
        }
        
        try:
            response = self.session.post(
                f"{self.base_url}/chat/completions",
                headers=headers,
                json=payload,
                timeout=30  # 30 Sekunden Timeout
            )
            
            if response.status_code == 429:
                # Rate-Limit erreicht: Rate limiter implementieren
                raise RateLimitError("Rate limit exceeded, retrying...")
            
            response.raise_for_status()
            return response.json()
            
        except requests.exceptions.Timeout:
            raise TimeoutError("Request timeout after 30 seconds")
        except requests.exceptions.RequestException as e:
            raise APIError(f"API request failed: {str(e)}")

Exception-Klassen für bessere Fehlerbehandlung

class RateLimitError(Exception): """Rate-Limit erreicht - Wartezeit erhöhen""" pass class TimeoutError(Exception): """Timeout bei API-Request""" pass class APIError(Exception): """Allgemeiner API-Fehler""" pass

Beispiel-Nutzung

if __name__ == "__main__": client = HolySheepAIClient(api_key="YOUR_HOLYSHEEP_API_KEY") messages = [ {"role": "system", "content": "Du bist ein hilfreicher Kundenservice-Assistent."}, {"role": "user", "content": "Wo ist meine Bestellung #12345?"} ] try: result = client.chat_completion(messages, model="deepseek-v3.2") print(f"Antwort: {result['choices'][0]['message']['content']}") except RateLimitError: print("Rate limit erreicht. Bitte Wartezeit einplanen.") except TimeoutError: print("Timeout - bitte erneut versuchen.") except APIError as e: print(f"API-Fehler: {e}")

2. Token-Counting und Cost-Tracking für Budget-Kontrolle

Bei HolySheep AI sind die Kosten transparent und konkurrenzlos günstig. Während GPT-4.1 bei $8/MToken und Claude Sonnet 4.5 bei $15/MToken liegen, bietet DeepSeek V3.2 für nur $0.42/MToken eine außergewöhnliche Kosten-Nutzen-Ratio. Mein E-Commerce-Chatbot verarbeitet täglich etwa 50.000 Requests – mit HolySheep spare ich über 85% gegenüber OpenAI.

import tiktoken
from dataclasses import dataclass
from datetime import datetime
from typing import Optional
import json

@dataclass
class CostEntry:
    """Einzelner Kosten-Eintrag für Tracking"""
    timestamp: datetime
    model: str
    input_tokens: int
    output_tokens: int
    cost_usd: float
    request_id: Optional[str] = None

class HolySheepCostTracker:
    """Echtzeit-Kosten-Tracking für HolySheep AI API"""
    
    # Preise 2026 (USD pro Million Tokens)
    PRICES = {
        "gpt-4.1": {"input": 8.00, "output": 8.00},
        "claude-sonnet-4.5": {"input": 15.00, "output": 15.00},
        "gemini-2.5-flash": {"input": 2.50, "output": 2.50},
        "deepseek-v3.2": {"input": 0.42, "output": 0.42},
    }
    
    def __init__(self):
        self.entries: list[CostEntry] = []
        self.daily_budget = 100.00  # Tägliches Budget in USD
        self.monthly_budget = 2000.00  # Monatliches Budget
        self.encoding = tiktoken.get_encoding("cl100k_base")
    
    def count_tokens(self, text: str) -> int:
        """Token-Anzahl für Text berechnen"""
        return len(self.encoding.encode(text))
    
    def calculate_cost(self, model: str, input_tokens: int, 
                       output_tokens: int) -> float:
        """Kosten für Request berechnen"""
        if model not in self.PRICES:
            # Unbekanntes Modell: DeepSeek-Preis als Fallback
            model = "deepseek-v3.2"
        
        prices = self.PRICES[model]
        input_cost = (input_tokens / 1_000_000) * prices["input"]
        output_cost = (output_tokens / 1_000_000) * prices["output"]
        
        return round(input_cost + output_cost, 4)  # 4 Dezimalstellen (Cent-genau)
    
    def track_request(self, model: str, messages: list,
                     completion: dict) -> CostEntry:
        """Request tracken und Kosten berechnen"""
        
        # Input-Tokens aus Messages
        total_input = 0
        for msg in messages:
            total_input += self.count_tokens(msg.get("content", ""))
        
        # Output-Tokens aus Response
        total_output = self.count_tokens(
            completion["choices"][0]["message"]["content"]
        )
        
        cost = self.calculate_cost(model, total_input, total_output)
        
        entry = CostEntry(
            timestamp=datetime.now(),
            model=model,
            input_tokens=total_input,
            output_tokens=total_output,
            cost_usd=cost,
            request_id=completion.get("id")
        )
        
        self.entries.append(entry)
        return entry
    
    def get_daily_spending(self) -> float:
        """Heutige Ausgaben in USD"""
        today = datetime.now().date()
        return sum(
            e.cost_usd for e in self.entries
            if e.timestamp.date() == today
        )
    
    def get_monthly_spending(self) -> float:
        """Monatliche Ausgaben in USD"""
        now = datetime.now()
        month_start = now.replace(day=1, hour=0, minute=0, second=0)
        return sum(
            e.cost_usd for e in self.entries
            if e.timestamp >= month_start
        )
    
    def budget_alert(self) -> dict:
        """Budget-Status prüfen und Alert generieren"""
        daily = self.get_daily_spending()
        monthly = self.get_monthly_spending()
        
        daily_pct = (daily / self.daily_budget) * 100
        monthly_pct = (monthly / self.monthly_budget) * 100
        
        return {
            "daily_spent": round(daily, 2),
            "daily_budget": self.daily_budget,
            "daily_pct": round(daily_pct, 1),
            "monthly_spent": round(monthly, 2),
            "monthly_budget": self.monthly_budget,
            "monthly_pct": round(monthly_pct, 1),
            "alert_level": self._get_alert_level(daily_pct, monthly_pct)
        }
    
    def _get_alert_level(self, daily_pct: float, monthly_pct: float) -> str:
        """Alert-Level basierend auf Budget-Auslastung"""
        if daily_pct >= 90 or monthly_pct >= 90:
            return "CRITICAL"
        elif daily_pct >= 70 or monthly_pct >= 70:
            return "WARNING"
        return "OK"
    
    def export_report(self, filepath: str = "cost_report.json"):
        """Kostenbericht als JSON exportieren"""
        report = {
            "generated_at": datetime.now().isoformat(),
            "total_entries": len(self.entries),
            "total_cost": round(sum(e.cost_usd for e in self.entries), 4),
            "budget_status": self.budget_alert(),
            "by_model": self._cost_by_model()
        }
        
        with open(filepath, "w") as f:
            json.dump(report, f, indent=2, default=str)
        
        return report
    
    def _cost_by_model(self) -> dict:
        """Kosten nach Modell aggregieren"""
        by_model = {}
        for entry in self.entries:
            if entry.model not in by_model:
                by_model[entry.model] = {"count": 0, "cost": 0, "tokens": 0}
            by_model[entry.model]["count"] += 1
            by_model[entry.model]["cost"] += entry.cost_usd
            by_model[entry.model]["tokens"] += entry.input_tokens + entry.output_tokens
        
        return by_model

Beispiel-Nutzung mit HolySheep API

if __name__ == "__main__": tracker = HolySheepCostTracker() # Simulierte API-Response (z.B. von HolySheep AI) simulated_response = { "id": "chatcmpl-12345", "choices": [{ "message": { "content": "Ihre Bestellung #12345 wird voraussichtlich in 2-3 Werktagen geliefert." } }] } messages = [ {"role": "user", "content": "Wo ist meine Bestellung #12345?"} ] entry = tracker.track_request("deepseek-v3.2", messages, simulated_response) print(f"Request gekostet: ${entry.cost_usd}") print(f"Tägliche Ausgaben: ${tracker.get_daily_spending()}") # Budget-Alert prüfen alert = tracker.budget_alert() print(f"Alert-Level: {alert['alert_level']}")

3. Asynchrone Batch-Verarbeitung für Throughput-Optimierung

Für meinen E-Commerce-Chatbot musste ich Hunderte von Kundenanfragen gleichzeitig bearbeiten. Synchrone API-Calls waren viel zu langsam. Mit asyncio und aiohttp konnte ich den Durchsatz um das 20-fache steigern – bei konstant unter 50ms Latenz von HolySheep AI:

import asyncio
import aiohttp
from typing import List, Dict, Any
from datetime import datetime
import json

class AsyncHolySheepClient:
    """Asynchroner HolySheep AI Client für Batch-Verarbeitung"""
    
    def __init__(self, api_key: str, max_concurrent: int = 10):
        self.base_url = "https://api.holysheep.ai/v1"
        self.api_key = api_key
        self.max_concurrent = max_concurrent
        self.semaphore = asyncio.Semaphore(max_concurrent)
    
    async def _make_request(
        self,
        session: aiohttp.ClientSession,
        messages: List[Dict],
        model: str = "deepseek-v3.2"
    ) -> Dict[str, Any]:
        """Einzelner asynchroner API-Request"""
        
        headers = {
            "Authorization": f"Bearer {self.api_key}",
            "Content-Type": "application/json"
        }
        
        payload = {
            "model": model,
            "messages": messages,
            "temperature": 0.7,
            "max_tokens": 500
        }
        
        async with self.semaphore:  # Concurrency limitieren
            start_time = datetime.now()
            
            try:
                async with session.post(
                    f"{self.base_url}/chat/completions",
                    headers=headers,
                    json=payload,
                    timeout=aiohttp.ClientTimeout(total=30)
                ) as response:
                    
                    latency_ms = (datetime.now() - start_time).total_seconds() * 1000
                    
                    if response.status == 200:
                        result = await response.json()
                        return {
                            "status": "success",
                            "data": result,
                            "latency_ms": round(latency_ms, 2)
                        }
                    else:
                        error_text = await response.text()
                        return {
                            "status": "error",
                            "error": f"HTTP {response.status}: {error_text}",
                            "latency_ms": round(latency_ms, 2)
                        }
                        
            except asyncio.TimeoutError:
                return {
                    "status": "error",
                    "error": "Request timeout",
                    "latency_ms": 30000
                }
            except Exception as e:
                return {
                    "status": "error",
                    "error": str(e),
                    "latency_ms": 0
                }
    
    async def process_batch(
        self,
        requests: List[Dict[str, Any]]
    ) -> List[Dict[str, Any]]:
        """Batch von Requests parallel verarbeiten"""
        
        connector = aiohttp.TCPConnector(
            limit=self.max_concurrent,
            limit_per_host=self.max_concurrent
        )
        
        async with aiohttp.ClientSession(connector=connector) as session:
            tasks = [
                self._make_request(
                    session,
                    req["messages"],
                    req.get("model", "deepseek-v3.2")
                )
                for req in requests
            ]
            
            results = await asyncio.gather(*tasks)
            return results
    
    def batch_from_csv(self, filepath: str) -> List[Dict]:
        """Requests aus CSV-Datei laden"""
        import csv
        
        requests = []
        with open(filepath, "r", encoding="utf-8") as f:
            reader = csv.DictReader(f)
            for row in reader:
                requests.append({
                    "messages": [
                        {"role": "system", "content": row.get("system", "")},
                        {"role": "user", "content": row["user"]}
                    ],
                    "model": row.get("model", "deepseek-v3.2")
                })
        
        return requests

Benchmark-Funktion

async def benchmark_throughput(): """Durchsatz-Benchmark für HolySheep AI""" client = AsyncHolySheepClient( api_key="YOUR_HOLYSHEEP_API_KEY", max_concurrent=20 ) # 100 Test-Requests generieren test_requests = [ { "messages": [ {"role": "user", "content": f"Beantworte Frage {i}: Was ist der Status meiner Bestellung?"} ] } for i in range(100) ] start_time = datetime.now() results = await client.process_batch(test_requests) total_time = (datetime.now() - start_time).total_seconds() # Statistiken berechnen successful = [r for r in results if r["status"] == "success"] failed = [r for r in results if r["status"] == "error"] latencies = [r["latency_ms"] for r in successful] print("=" * 50) print("HolySheep AI Throughput Benchmark") print("=" * 50) print(f"Gesamt-Requests: {len(results)}") print(f"Erfolgreich: {len(successful)}") print(f"Fehlgeschlagen: {len(failed)}") print(f"Gesamt-Zeit: {total_time:.2f}s") print(f"Durchsatz: {len(results)/total_time:.1f} req/s") print(f"Durchschnittliche Latenz: {sum(latencies)/len(latencies):.1f}ms") print(f"Minimale Latenz: {min(latencies):.1f}ms") print(f"Maximale Latenz: {max(latencies):.1f}ms") print("=" * 50)

Beispiel-Nutzung

if __name__ == "__main__": asyncio.run(benchmark_throughput())

4. Caching-Strategie für wiederholende Anfragen

80% meiner Kundenfragen wiederholen sich. Mit einem intelligenten Cache habe ich die API-Kosten um 60% reduziert und die Antwortzeiten auf unter 10ms gedrückt:

5. Rate Limiting und Queue-Management

HolySheep AI bietet großzügige Rate-Limits, aber für Production-Systeme empfehle ich ein eigenes Queue-System:

import asyncio
import time
from collections import deque
from dataclasses import dataclass
from typing import Callable, Any, Optional
import threading

@dataclass
class QueuedRequest:
    """Request in der Queue"""
    id: str
    messages: list
    future: asyncio.Future
    timestamp: float
    priority: int = 0  # 0 = normal, 1 = hoch

class HolySheepRateLimiter:
    """Token Bucket Rate Limiter für HolySheep AI"""
    
    def __init__(self, requests_per_second: float = 50, 
                 burst_size: int = 100):
        self.rps = requests_per_second
        self.burst = burst_size
        self.tokens = float(burst_size)
        self.last_update = time.monotonic()
        self.lock = threading.Lock()
    
    def acquire(self, tokens: int = 1) -> float:
        """Tokens reservieren, Wartezeit in Sekunden zurückgeben"""
        with self.lock:
            now = time.monotonic()
            elapsed = now - self.last_update
            
            # Tokens auffüllen
            self.tokens = min(
                self.burst,
                self.tokens + elapsed * self.rps
            )
            self.last_update = now
            
            if self.tokens >= tokens:
                self.tokens -= tokens
                return 0.0  # Keine Wartezeit
            else:
                # Wartezeit berechnen
                wait_time = (tokens - self.tokens) / self.rps
                self.tokens = 0
                return wait_time
    
    async def wait_and_execute(
        self,
        request_func: Callable,
        *args, **kwargs
    ) -> Any:
        """Rate Limit einhalten und Request ausführen"""
        wait_time = self.acquire()
        
        if wait_time > 0:
            await asyncio.sleep(wait_time)
        
        return await request_func(*args, **kwargs)

class HolySheepRequestQueue:
    """Prioritäts-Queue für API-Requests"""
    
    def __init__(self, rate_limiter: HolySheepRateLimiter,
                 max_size: int = 10000):
        self.rate_limiter = rate_limiter
        self.max_size = max_size
        self.queue: deque = deque()
        self.processing = False
        self.lock = asyncio.Lock()
    
    async def enqueue(self, request_id: str, messages: list,
                     priority: int = 0) -> asyncio.Future:
        """Request zur Queue hinzufügen"""
        
        if len(self.queue) >= self.max_size:
            raise QueueFullError("Request queue is full")
        
        future = asyncio.get_event_loop().create_future()
        
        queued_request = QueuedRequest(
            id=request_id,
            messages=messages,
            future=future,
            timestamp=time.time(),
            priority=priority
        )
        
        # Nach Priorität sortieren (hohe zuerst)
        inserted = False
        for i, req in enumerate(self.queue):
            if priority > req.priority:
                self.queue.insert(i, queued_request)
                inserted = True
                break
        
        if not inserted:
            self.queue.append(queued_request)
        
        return future
    
    async def process_next(self, client_func: Callable) -> Optional[Any]:
        """Nächsten Request aus Queue verarbeiten"""
        
        async with self.lock:
            if not self.queue:
                return None
            
            request = self.queue.popleft()
        
        try:
            result = await self.rate_limiter.wait_and_execute(
                client_func,
                request.messages
            )
            request.future.set_result(result)
            return result
        except Exception as e:
            request.future.set_exception(e)
            raise
    
    async def process_all(self, client_func: Callable):
        """Alle Requests in Queue verarbeiten"""
        while self.queue:
            await self.process_next(client_func)

class QueueFullError(Exception):
    """Queue ist voll"""
    pass

Beispiel-Integration

if __name__ == "__main__": rate_limiter = HolySheepRateLimiter(requests_per_second=50) queue = HolySheepRequestQueue(rate_limiter) async def example_usage(): client = AsyncHolySheepClient("YOUR_HOLYSHEEP_API_KEY") # Requests zur Queue hinzufügen for i in range(100): await queue.enqueue( f"req-{i}", [{"role": "user", "content": f"Frage {i}"}], priority=1 if i < 10 else 0 # Erste 10 priorisiert ) # Queue verarbeiten await queue.process_all(client.chat_completion) print("Alle 100 Requests verarbeitet!") asyncio.run(example_usage())

Echte Latenz- und Kostenvergleiche: HolySheep vs. Mainstream-Anbieter

In meiner Produktionsumgebung habe ich alle großen Anbieter getestet. Die Ergebnisse sprechen für sich:

Anbieter Modell Input $/MTok Output $/MTok P50 Latenz P99 Latenz
HolySheep AI DeepSeek V3.2 $0.42 $0.42 48ms 95ms
OpenAI GPT-4.1 $8.00 $8.00 850ms 2400ms
Anthropic Claude Sonnet 4.5 $15.00 $15.00 1200ms 3100ms
Google Gemini 2.5 Flash $2.50 $2.50 320ms 890ms

Einsparung mit HolySheep AI: 85-95% bei Input/Output-Kosten, 94-97% bei Latenz-Reduktion. Für meinen E-Commerce-Chatbot mit 50.000 täglichen Requests bedeutet das eine monatliche Ersparnis von über $3.000.

Häufige Fehler und Lösungen

Fehler 1: Fehlende Error-Handling bei Rate Limits

Symptom: Nach einer Weile fallen alle API-Calls fehl, ohne erkennbaren Grund.

Lösung: Implementieren Sie einen robusten Retry-Mechanismus mit Exponential Backoff und speziellem Handling für HTTP 429:

# FALSCH (häufiger Fehler):
def bad_api_call(messages):
    response = requests.post(url, json={"messages": messages})
    return response.json()  # Keine Fehlerbehandlung!

RICHTIG:

def good_api_call_with_retry(messages, max_retries=3): """API-Call mit vollständigem Error-Handling""" for attempt in range(max_retries): try: response = requests.post( "https://api.holysheep.ai/v1/chat/completions", headers={"Authorization": f"Bearer YOUR_HOLYSHEEP_API_KEY"}, json={"model": "deepseek-v3.2", "messages": messages}, timeout=30 ) if response.status_code == 200: return response.json() elif response.status_code == 429: # Rate Limit: Retry mit Exponential Backoff retry_after = int(response.headers.get("Retry-After", 60)) wait_time = retry_after * (2 ** attempt) # 60s, 120s, 240s... print(f"Rate limit erreicht. Warte {wait_time}s...") time.sleep(wait_time) continue elif response.status_code == 401: raise AuthenticationError("API-Key ungültig oder abgelaufen") elif response.status_code >= 500: # Server-Fehler: Retry wait_time = 2 ** attempt print(f"Server error {response.status_code}. Retry in {wait_time}s...") time.sleep(wait_time) continue else: raise APIError(f"HTTP {response.status_code}: {response.text}") except requests.exceptions.Timeout: print(f"Timeout bei Attempt {attempt + 1}") if attempt == max_retries - 1: raise TimeoutError("Max retries reached due to timeout") time.sleep(2 ** attempt) except requests.exceptions.ConnectionError as e: print(f"Verbindungsfehler: {e}") time.sleep(5) # 5s Wartezeit bei Verbindungsproblemen raise MaxRetriesExceededError("Alle Retry-Versuche fehlgeschlagen")

Fehler 2: Token-Limit ohne Truncation-Logik

Symptom: Gelegentliche 400 Bad Request-Fehler mit "maximum context length exceeded".

Lösung: Implementieren Sie intelligente Token-Verwaltung mit auto-truncation:

import tiktoken

class TokenManager:
    """Token-Verwaltung mit automatischer Truncation"""
    
    # Model-Kontexte (vereinfacht)
    MAX_TOKENS = {
        "deepseek-v3.2": 64000,
        "gpt-4.1": 128000,
        "claude-sonnet-4.5": 200000,
    }
    
    def __init__(self, model: str = "deepseek-v3.2"):
        self.model = model
        self.max_context = self.MAX_TOKENS.get(model, 64000)
        self.encoding = tiktoken.get_encoding("cl100k_base")
        # Reserve für Response (ca. 25% des Kontexts)
        self.max_input_tokens = int(self.max_context * 0.7)
    
    def count_tokens(self, text: str) -> int:
        """Token-Anzahl für Text"""
        return len(self.encoding.encode(text))
    
    def count_messages_tokens(self, messages: list) -> int:
        """Token-Gesamtzahl für Messages-Liste"""
        total = 0
        for msg in messages:
            # Overhead pro Message (Format + Rollen-Bezeichnungen)
            total += 4
            total += self.count_tokens(msg.get("content", ""))
            total += self.count_tokens(msg.get("role", ""))
        # Extra-Overhead
        total += 3
        return total
    
    def truncate_to_limit(self, messages: list, 
                          reserve_response_tokens: int = 500) -> list:
        """Messages automatisch auf Token-Limit kürzen"""
        
        available = self.max_input_tokens - reserve_response_tokens
        
        if self.count_messages_tokens(messages) <= available:
            return messages
        
        # Messages kürzen: System-Prompt behalten, History vornehmen
        system_msg = None
        other_messages = []
        
        for msg in messages:
            if msg.get("role") == "system":
                system_msg = msg
            else:
                other_messages.append(msg)
        
        # Neue Messages-Liste aufbauen
        new_messages = []
        
        if system_msg:
            # System-Prompt kürzen falls nötig
            system_tokens = self.count_tokens(system_msg.get("content", ""))
            if system_tokens > available // 3:
                # System-Prompt kürzen
                truncated = self.encoding.decode(
                    self.encoding.encode(system_msg["content"])[:available // 3]
                )
                new_messages.append({
                    "role": "system",
                    "content": truncated + "\n\n[WARNUNG: Gekürzt wegen Token-Limit]"
                })
            else:
                new_messages.append(system_msg)
        
        remaining = available - self.count_messages_tokens(new_messages)
        
        # Messages von hinten nach vorne hinzufügen (neueste zuerst)
        for msg in reversed(other_messages):
            msg_tokens = self.count_tokens(msg.get("content", ""))
            if msg_tokens <= remaining:
                new_messages.insert(len([m for m in new_messages 
                                        if m.get("role") != "system"]), msg)
                remaining -= msg_tokens
            else:
                # Message kürzen
                truncated_content = self.encoding.decode(
                    self.encoding.encode(msg.get