Meta3.0 / docs /SAFETY.md
smlflg's picture
Initial public upload from Projekte/Meta3.0
1219ee2 verified
|
Raw History Blame Contribute Delete
2.51 kB
# Safety And Cost Gates
## Keine Secrets
Config-Dateien duerfen nur Env-Var-Namen enthalten, keine Werte.
Erlaubt:
```json
"api_key_envs": ["LITELLM_API_KEYS", "OPENAI_API_KEY"]
```
Nicht erlaubt:
```json
"api_key": "..."
```
## Kein Start durch Scaffold
Alle Scripts in `scripts/` sind lokal:
- `meta3_smoke.py`
- `meta3_prepare.py`
- `meta3_plan_batches.py`
- `meta3_build_workpackets.py`
- `meta3_validate_run.py`
- `meta3_preflight.py`
Sie duerfen keine API-Requests ausfuehren.
Ausnahme: `meta3_run_packets.py` kann spaeter Netzwerk nutzen, aber nur mit:
- vorhandenen Workpackets,
- vorherigem Dry-Run,
- `--execute-network`,
- `--accepted-call-budget <N>`,
- vorhandener API-Key-Env.
Ohne `--execute-network` schreibt es nur einen Dry-Run-Report.
## Langlauf-Kontrolle
Ein echter Runner schreibt und beachtet:
- `state/<mode>_runner.lock.json`: verhindert Doppelstart.
- `state/<mode>_runner_heartbeat.json`: Fortschritt, Fehler, In-Flight-Status.
- `state/STOP`: stoppt alle Modi nach den laufenden In-Flight-Calls.
- `state/STOP_<mode>`: stoppt nur einen Modus.
Status pruefen:
```bash
python3 scripts/meta3_runner_status.py
```
Der Runner submitted nur bis zur Concurrency-Grenze gleichzeitig. Bei Stop- oder
Fehlerschwelle werden keine neuen Pakete gestartet; laufende Pakete werden noch
sauber verarbeitet.
## Source-Drift-Gate
Meta3 baut standardmaessig keine finalen Workpackets, wenn Meta2.0-Audit und
rohe Digest-Datei auseinanderlaufen:
```text
layer1_audit_unique_digest_paths != layer1_raw_digest_file_rows_counted
```
Das verhindert, dass ein Overnight-Run gegen eine halb aktualisierte Quelle
arbeitet. Der Batchplan markiert diesen Fall als `blocked`.
`meta3_build_workpackets.py` verweigert ohne lokalen Source-Snapshot oder
`--allow-source-drift`.
Der sichere Pfad ist:
```bash
python3 scripts/meta3_freeze_sources.py
```
Danach konsumieren Workpackets die eingefrorene Datei unter
`runs/<run_id>/data/source_snapshot/`. `--allow-source-drift` ist nur fuer
diagnostische, nicht-finale Runs gedacht.
## Call-Budget
`max_api_calls=10000000` ist ein hartes Planungsmaximum, kein Startsignal.
Vor echten Calls braucht es:
- Run-Manifest,
- Batchplan,
- Workpacket-Manifest,
- Call-Ledger,
- Dry-Run-Report,
- Network-Preflight-Report mit Status `pass`,
- Kosten-/Concurrency-Akzeptanz,
- Abbruchbedingungen.
## Concurrency
Start safe:
- `safe_batch_size=3`
- `safe_concurrency=2`
Nicht direkt auf hohe Parallelitaet gehen. Erst Fehlerrate und 429-Rate sehen.