Lektion 5 von 6·10 Min Lesezeit

Qualitätssicherung & Testing

AI Agents sind nicht deterministisch — dasselbe Input kann verschiedene Outputs erzeugen. OpenClaw bietet ein QA-Framework, das automatisierte Qualitätsprüfungen, Regressionstests und A/B-Testing für Agent-Konfigurationen ermöglicht.

Automatisierte Quality Checks

Evaluation Pipelines

OpenClaw führt bei jedem Trace automatische Qualitätsprüfungen durch:

# quality-checks.yml
evaluations:
  - name: factual-accuracy
    type: llm-judge
    model: gpt-4o
    prompt: "Ist die Antwort des Agents faktisch korrekt?"
    threshold: 0.9
    sample_rate: 0.1  # 10% aller Traces

  - name: tone-consistency
    type: classifier
    labels: [professional, casual, inappropriate]
    expected: professional
    threshold: 0.95

  - name: response-completeness
    type: checklist
    required_elements: [greeting, answer, next_steps]
    threshold: 1.0

  - name: hallucination-detection
    type: grounded-check
    sources: [knowledge_base, tool_outputs]
    threshold: 0.95

Quality Score berechnen

OpenClaw aggregiert die einzelnen Checks zu einem Quality Score:

Quality Score: Support Agent v3.1
─────────────────────────────────
Factual Accuracy:       94,2% ✅
Tone Consistency:       97,8% ✅
Response Completeness:  89,1% ⚠️
Hallucination Rate:     2,1%  ✅
───────────────────────────────────
Gesamt-Score:           93,8/100
Trend:                  +1,2 vs. Vorwoche

Regression Testing für Prompts

Test Suites definieren

from openclaw.testing import TestSuite, TestCase

suite = TestSuite("support-agent-regression")

suite.add_case(TestCase(
    name="billing-question",
    input="Wie kann ich meine Rechnung herunterladen?",
    expected_intent="billing",
    expected_contains=["Rechnung", "Dashboard", "herunterladen"],
    expected_not_contains=["Ich bin nicht sicher", "Ich weiß nicht"],
    max_tokens=500
))

suite.add_case(TestCase(
    name="escalation-trigger",
    input="Ich möchte meinen Vertrag sofort kündigen und mein Geld zurück!",
    expected_intent="escalation",
    expected_action="transfer_to_human",
    max_latency_ms=3000
))

CI/CD-Integration

# .github/workflows/agent-test.yml
- name: Run Agent Regression Tests
  run: |
    openclaw test run --suite support-agent-regression
    openclaw test run --suite order-agent-regression
  env:
    OPENCLAW_API_KEY: ${{ secrets.OPENCLAW_API_KEY }}

Regression Tests laufen automatisch bei:

  • Prompt-Änderungen — Jede Änderung am System-Prompt wird getestet
  • Modell-Updates — Wechsel auf eine neue Modell-Version
  • Tool-Änderungen — Neue oder geänderte Tool-Definitionen
  • Guardrail-Updates — Änderungen an Sicherheitsregeln

A/B Testing Agent-Konfigurationen

OpenClaw ermöglicht kontrollierte Experimente mit Agent-Varianten:

# ab-test.yml
experiment:
  name: "prompt-v3-vs-v4"
  agent: support-agent
  traffic_split: 50/50
  duration: 7d

  variants:
    - name: control
      prompt_version: v3.1
    - name: treatment
      prompt_version: v4.0

  metrics:
    primary: task_completion_rate
    secondary: [latency_p95, cost_per_interaction, user_satisfaction]

  stopping_rules:
    - metric: error_rate
      threshold: ">5%"
      action: stop_experiment

Ergebnisauswertung

OpenClaw berechnet statistische Signifikanz automatisch:

MetrikControl (v3.1)Treatment (v4.0)Differenzp-Wert
Task Completion94,2%96,8%+2,6%0,003 ✅
P95 Latency2.800ms2.600ms-200ms0,041 ✅
Cost/Interaction€0,012€0,014+€0,0020,12 ❌
User Satisfaction4,1/54,3/5+0,20,028 ✅

Performance Benchmarks

OpenClaw trackt Performance-Benchmarks über Zeit:

  • Baseline-Definition — Definieren Sie eine Baseline bei Agent-Launch
  • Continuous Benchmarking — Automatische Messung gegen die Baseline
  • Degradation Alerts — Warnung bei Verschlechterung um mehr als X%
  • Version Comparison — Side-by-Side-Vergleich verschiedener Agent-Versionen

Best Practice: Erstellen Sie für jeden Agent mindestens 20 Regression-Test-Cases, die die häufigsten Szenarien abdecken. Führen Sie diese bei jeder Prompt-Änderung automatisch aus. Ein Agent ohne Tests ist ein Agent, der irgendwann unbemerkt schlecht wird.