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.
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
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
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
))
# .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:
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
OpenClaw berechnet statistische Signifikanz automatisch:
| Metrik | Control (v3.1) | Treatment (v4.0) | Differenz | p-Wert |
|---|---|---|---|---|
| Task Completion | 94,2% | 96,8% | +2,6% | 0,003 ✅ |
| P95 Latency | 2.800ms | 2.600ms | -200ms | 0,041 ✅ |
| Cost/Interaction | €0,012 | €0,014 | +€0,002 | 0,12 ❌ |
| User Satisfaction | 4,1/5 | 4,3/5 | +0,2 | 0,028 ✅ |
OpenClaw trackt Performance-Benchmarks über Zeit:
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.