diff --git a/README.md b/README.md index 3e8f836..e324e86 100644 --- a/README.md +++ b/README.md @@ -388,7 +388,7 @@ Chat-Turn an die richtigen Patterns. ### Skill-Regeln (seed_rules) -`aria-brain/seed_rules.py` enthaelt 9 `type=rule, pinned=true, +`aria-brain/seed_rules.py` enthaelt 10 `type=rule, pinned=true, source=seed`-Memories, die bei jedem Brain-Start idempotent in die Vector-DB geschrieben werden (`migration_key`-basiert). Sie tauchen in jedem Chat-Turn im Hot-Memory-Block auf: @@ -401,6 +401,7 @@ jedem Chat-Turn im Hot-Memory-Block auf: - **brain-internal-url** — `BRAIN_INTERNAL_URL` Endpoints inkl. `/oauth//token`, `/memory/search`, `/memory/pinned`, `/skills/list` - **oauth-reauth-reflex** — bei 401: ZUERST `oauth_get_token` (Auto-Refresh), nur bei dessen Fehler `oauth_authorize` - **no-skill-drift** — kein Drift vom Skill zu Ad-hoc-Bash-Befehlen. Skill kaputt? `skill_logs` + `skill_update`. Niemals nur SAGEN „ich baue dir einen Skill", wenn `skill_create` nicht wirklich gefeuert wird +- **runtime-topology** (architektur) — ARIA laeuft als `claude`-CLI-Subprocess IM aria-proxy Container (alpine — kein python3/jq), NICHT im aria-brain. `/data/skills/` und `BRAIN_INTERNAL_URL` existieren dort nicht. Brain-Resources via Brain-Tools (`oauth_get_token`, `memory_search`, `run_` …), nicht via Bash. SSH zur VM-Host via `ssh aria@host` (Key liegt im Proxy) - **external-api-auth-strategy** — OAuth2 → `oauth_get_token`, sonst `config_schema`, NIEMALS hardcoden Im Gegensatz zu `aria-data/brain-import/` (User-Saatgut, gitignored, diff --git a/aria-brain/seed_rules.py b/aria-brain/seed_rules.py index 6ef6254..1454684 100644 --- a/aria-brain/seed_rules.py +++ b/aria-brain/seed_rules.py @@ -162,6 +162,52 @@ SEED_RULES: List[dict] = [ "Setup-Error): sag das ehrlich statt zu halluzinieren." ), }, + { + "migration_key": "seed/architecture/runtime-topology", + "type": "rule", + "title": "Architektur: wo Du als ARIA tatsaechlich laufst", + "category": "architektur", + "content": ( + "WICHTIG fuer jeden Bash-Reflex: Du bist die `claude` CLI als " + "Subprocess IM `aria-proxy` Container (node:22-alpine). NICHT " + "im aria-brain. Konsequenzen:\n" + "\n" + " - `python3` / `python` / `jq` sind NICHT installiert. Alpine " + "ist minimal. Nutze nur: curl, sed, grep, awk, sh — oder das " + "richtige Tool statt Bash.\n" + " - `/data/skills/` existiert NUR im aria-brain Container. " + "Du kannst Skills NICHT ueber Bash inspizieren oder starten. " + "Skills laeufst Du als Brain-Tool: `run_` " + "(z.B. `run_yt_dlp_download`). `skill_list` zeigt verfuegbare.\n" + " - `localhost` in Deinem Bash heisst aria-proxy, NICHT " + "aria-brain. Brain ist via Docker-Net erreichbar als " + "`http://aria-brain:8080` (oder Alias `http://brain:8080`). " + "ABER: in 99% der Faelle willst Du das gar nicht — nutze die " + "Brain-Tools direkt (`oauth_get_token`, `memory_search`, …), " + "die sind eine Tool-Call-Ebene hoeher und schneller.\n" + " - `BRAIN_INTERNAL_URL` ist NUR in laufenden Skills gesetzt, " + "NICHT in Deinem Bash-Env. Wenn Du `env | grep BRAIN` machst " + "und nichts findest: das ist normal, Du bist hier nicht in " + "einem Skill.\n" + "\n" + "Was Du DOCH von hier aus kannst:\n" + " - Per `ssh aria@host` zur VM-Host wechseln — der ed25519-" + "Key liegt unter /root/.ssh/. Dort bist Du `aria` mit sudo " + "und voller Linux-Power. Fuer Pentest, Admin, komplexe Tasks " + "der richtige Weg.\n" + " - Externe APIs direkt anpingen (Spotify, GitHub etc.) — " + "curl reicht. Token holst Du Dir per Brain-Tool " + "`oauth_get_token('')` und packst ihn in den curl-" + "Header. Aber: das ist Ad-hoc. Fuer wiederkehrendes baust Du " + "einen Skill (siehe no-skill-drift Regel).\n" + "\n" + "Anti-Pattern (47 Sekunden Stefan-Lebenszeit, am 29.05.2026): " + "12 Bash-Versuche mit python3/python/jq/lokales /data/skills " + "→ alles fehlte. Erst nach 9 Tries kapiert dass `localhost` " + "der falsche Host ist. Bei jedem Bash-Call gegen 'lokale' " + "Brain-Resources: erst denken, sonst Brain-Tool nehmen." + ), + }, { "migration_key": "seed/skill-rule/external-api-auth-strategy", "type": "rule",