docs(openclaw): update Issue 16 with fallbacks, koch grounding, and prometheus rules

This commit is contained in:
Moritz Graf
2026-10-06 20:36:14 +02:00
parent 744f8e243b
commit 91bc5a8bf8
+10
View File
@@ -495,8 +495,18 @@ This document captures fixed issues, operational quirks, and incident root-cause
2. **Session Normalization**: Repaired `grabengasse_media` (Topic 164) and `koch` (Topic 21), resetting `status: "done"`, clearing recovery run IDs, and restoring `entry_valid = 1`.
3. **InitContainer Self-Healing**: Injected `export PATH="/home/node/.openclaw/bin:/home/node/.openclaw/.local/bin:$PATH"` and added automated pre-flight self-healing to `initContainers[0]` in `openclaw-instance.secret.yaml`. On every container boot, the script now automatically cascades foreign key repairs, unlocks hung `running` sessions, and clears quarantine entries.
4. **Maintenance Script Hardening**: Updated `k8s/openclaw/setup-compaction-cron.sh` and `/home/node/.openclaw/scripts/compact_sessions.py` with `PRAGMA foreign_keys = ON;`, explicit deletion across child tables, and unconditional FK verification across all 12 agent databases.
5. **Model Fallback Chain for Subagents**: Replaced bare string model configurations (`model: "openrouter/z-ai/glm-5.3-flash"`) across all 11 subagents in `k8s/openclaw/openclaw-instance.secret.yaml` with structured objects specifying explicit fallbacks (`primary: "openrouter/z-ai/glm-5.3-flash"`, `fallbacks: ["openrouter/deepseek/deepseek-v4.1-flash", "openrouter/qwen/qwen3.8-flash"]`). This prevents reasoning dropouts on GLM-5.3-Flash from halting turns and eliminates the OpenClaw Doctor configuration warning.
6. **Koch Agent Grounding & Standard Foods Catalog**:
- Added EDEKA Bio Herzstücke Körniger Frischkäse (150 g) and Philadelphia Der Körnige (200 g) to `knowledge-wiki/entities/standard-foods.md` and `knowledge-wiki/data/entities/foods.jsonl`.
- Hardened `knowledge-wiki/agents/koch.md` with explicit distinction: capturing packaging photos / ingredients is NOT intake, never touches `entities/nutrition-log/`, and must only update `foods.jsonl` / `standard-foods.md`. Intake logging is strictly prohibited from using `edit` and must use `datastore.py add --kind nutrition.intake`.
7. **Observability & Alerting**: Created `k8s/openclaw/monitoring.yaml` deploying a `PrometheusRule` (`openclaw-alerts`) covering:
- `OpenClawPodNotReady`: Alerts (critical) if `openclaw-0` is unready for >5 minutes.
- `OpenClawCrashLooping`: Alerts (warning) if container restarts exceed 2 within 15 minutes.
- `OpenClawDataVolumeLow`: Alerts (warning) if PVC `openclaw-data` has <15% free disk space.
- **How to Avoid Recurrence**:
- Always ensure `PRAGMA foreign_keys = ON;` is set on every SQLite connection performing deletes.
- Rely on the initContainer self-healing hook to automatically heal state before the gateway daemon starts.
- Avoid legacy Markdown editing for nutrition logs; enforce structured datastore CLI tooling (`skills/datastore`).
- Configure multi-tier model fallbacks per subagent so provider stalls or reasoning drops fail over seamlessly.
- Rely on Prometheus alerting rules for instant notification of pod readiness and restart anomalies.