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:

"api_key_envs": ["LITELLM_API_KEYS", "OPENAI_API_KEY"]

Nicht erlaubt:

"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:

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:

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:

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.