File size: 6,175 Bytes
3bc7cb3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
# Eval-System Backlog β€” AgentArena + MetaMetaMeta

**Stand:** 2026-03-19 (nach E2 Erfolg: additionalContext wirkt 0/3 vs 6/6)
**Status:** Backlog β€” nicht in Scope der aktuellen Session

---

## Kern-Erkenntnis

Mit `clean_home` Isolation in AgentArena koennen wir ALLE Meta-Features evaluieren:
- CLAUDE.md Varianten
- Sidecar-NG Injections
- Hook-Konfigurationen
- Skills
- Effort-Levels
- Modelle
- Temperatur

Das ist der eigentliche Durchbruch β€” nicht nur der voiceLanguage-Test.

---

## Parameter-Explosion (das Problem)

Jede Evaluation hat potenziell diese Dimensionen:

| Parameter | Werte | Beispiel |
|-----------|-------|----------|
| Model | 3+ | sonnet-4.6, opus-4.6, haiku-4.5 |
| Effort Level | 4 | low, medium, high, max |
| CLAUDE.md | N | minimal, full, custom |
| Sidecar Injection | on/off | mit/ohne Regeln |
| Hook Config | N | keine, Sidecar-NG, custom |
| Skills | N | pro Skill |
| Temperature | 3+ | 0.0, 0.5, 1.0 |
| Prompt-Variante | N | deutsch, englisch, vage, praezise |

**Naive Full Factorial:** 3 x 4 x 3 x 2 x 3 x N x 3 x N = tausende Kombinationen x pass@3 = zehntausende Runs

**Loesung (aus Research):**
1. **Screening:** Fractional Factorial Design β€” 8 Runs statt 32 um Haupteffekte zu finden
2. **Dann:** Bayesian Optimization (Optuna/W&B) fuer die wichtigsten Parameter
3. **Gold Set:** 10 handkuratierte Tasks als Schnelltest bei jeder Aenderung

---

## Evaluations-Dimensionen (die 4 Sauelen)

### 1. Reliability (pass@k)
- Wiederholbarkeit: 3x derselbe Test, wie oft klappt es?
- Unbiased Estimator: `pass@k = 1 - C(n-c, k) / C(n, k)`
- **Fuer statistische Signifikanz bei 5% Improvement: ~400 Runs**
- Fuer "dirty minimum" internes Testing: ~50 Runs
- Wilson Score Intervals statt naive Prozente

### 2. Token-Effizienz / Kosten
- Tokens pro geloestem Task
- Cost per successful run vs cost per failed run
- Prompt Efficiency Score: `(Success Rate) / (Tokens * Latency)`

### 3. Output-Qualitaet (Pass/Fail)
- Funktionaler Judge (exit code)
- Regression (bestehende Tests weiterhin gruen?)
- Lint + Complexity Delta

### 4. Alignment (das Neue)
- Wurde die Aufgabe SO umgesetzt wie gewuenscht?
- Beispiel Tetris: "rote Steine und gruene Bloecke" β€” stimmt die Farbe?
- Braucht LLM-as-Judge oder Screenshot-Vergleich
- Schwierigster Punkt β€” subjektiv, schwer automatisierbar

---

## Visualisierung (aus Research)

### Empfohlen:
1. **Radar Charts** β€” zeigt das "Profil" eines Agents (Reasoning, Cost, Speed, Tools, Reliability)
2. **Pareto Frontier** β€” X=Kosten (log), Y=Score β†’ zeigt welche Agents "dominated" werden
3. **Heatmap/Matrix** β€” Parameter x Task β†’ Farbe = pass rate

### AgentArena hat bereits:
- Leaderboard (pass@1, pass@3, avg_cost, composite_score)
- Matrix View (harness x model)
- Run Detail (trajectory, diff viewer)

### Fehlt:
- Radar Charts pro Agent
- Pareto Frontier (Cost vs Score)
- Experiment-Vergleich (vorher/nachher)
- Alignment-Visualisierung

---

## Konkrete naechste Testcases (TODO)

### T1: Effort-Level Impact (sofort machbar)
- Denselben voiceLanguage-Test mit `--effort low/medium/high` laufen lassen
- CLI-Flag: `claude --print --effort {level}`
- Hypothese: low effort = mehr Halluzinationen, high = besser aber teurer
- **Implementation:** Nur `cmd.extend(["--effort", level])` im Adapter + 3 neue Agents

### T2: Weitere Bug-Typen
- Nicht nur Config-Keys, auch:
  - File-ohne-Read-editieren
  - Falsche Datei editieren
  - Erfundene API-Endpoints
  - Import-Fehler (nicht-existierende Module)

### T3: Prompt-Sprache
- Derselbe Task auf Deutsch vs Englisch
- Hypothese: Englische Prompts = bessere Compliance?

### T4: CLAUDE.md Laenge
- Minimal (2 Zeilen) vs Full (Samuels echte 200-Zeilen CLAUDE.md)
- Hypothese: Mehr Regeln = besser? Oder Information Overload?

### T5: Skill-Evaluation
- Skills einzeln testen: Tut der Skill was er soll?
- Z.B. /checkpoint: Erstellt er wirklich einen Git-Snapshot?

---

## Tooling-Empfehlungen (aus Research)

| Tool | Zweck | Prioritaet |
|------|-------|-----------|
| **Inspect AI** | Modulares Eval-Framework (UK AI Security Institute) | Evaluieren |
| **Optuna** | Bayesian Hyperparameter-Optimierung | Spaeter |
| **W&B / MLflow** | Experiment-Tracking + Trajectory-Visualisierung | Spaeter |
| **Wilson Score** | Statistische Konfidenzintervalle | Einbauen |

---

## Claude Code CLI Flags (verifiziert)

```
--effort <level>          low, medium, high, max
--max-budget-usd <amount> Kostenlimit (nur mit --print)
--model <model>           Modell-Auswahl
--verbose                 Noetig fuer stream-json mit --print
--dangerously-skip-permissions  Keine Permission-Prompts
--output-format stream-json     NDJSON Output
```

---

## KRITISCH: Sandbox-Isolation (Sicherheit)

**Problem:** Claude Code Adapter laeuft auf dem Host mit `--dangerously-skip-permissions`.
Jeder Run hat volle User-Rechte (Dateisystem, Netzwerk, Bash). Kein Sandboxing.
`clean_home` isoliert nur ~/.claude/ Config, NICHT den Prozess.

**Risiko:** Claude kann theoretisch beliebige Commands ausfuehren, Dateien lesen/loeschen.
Fuer eigene harmlose Tests akzeptabel, fuer Produktion/fremde Prompts NICHT.

**Loesung (Optionen):**
1. **Custom Docker Image** mit claude CLI vorinstalliert (npm install -g @anthropic-ai/claude-code)
   - Vorteil: Echte Isolation, passt in bestehende Sandbox-Architektur
   - Aufwand: Docker Image bauen + testen, API Key reinreichen
2. **bubblewrap/firejail** Sandboxing um den CLI-Prozess
   - Vorteil: Leichtgewichtig, kein Docker noetig
   - Aufwand: Capability-Config, Filesystem-Allowlist
3. **Dedizierter User** mit eingeschraenkten Rechten
   - Vorteil: Einfach, `su arena-runner`
   - Aufwand: User anlegen, Permissions konfigurieren

**Prioritaet:** HOCH β€” vor jedem produktiven Einsatz oder fremden Prompts loesen.

---

## Nicht jetzt (Scope-Guard)

- [ ] Sandbox-Isolation fuer Claude Code Runs (siehe oben)
- [ ] Eval-Dashboard bauen
- [ ] Statistische Tests implementieren
- [ ] Prompt-Alignment LLM-as-Judge
- [ ] W&B Integration
- [ ] Fractional Factorial Design automatisieren
- [ ] Screenshot-basierte Alignment-Checks

**Samuel's Regel:** E2 ist fertig. Alles hier ist Backlog fuer spaeter.