Files
OPENCLAW_ARCHIVE3_17/workspace/MEMORY.md
Tallagrand Thierry 5363f99b76 Gmail Phase E/F + HANDOFF global + cleanup cron/root
- Réécriture HANDOFF.md dashboard multi-domaines

- Mise à jour MEMORY.md / TOOLS.md / AGENTS.md

- Cleanup fichiers cron obsolètes + fichiers root

- Gmail Phase E : audit, 18 filtres natifs, labels Promos/Dev-Tools/Social

- Gmail Phase F : archive Philippot + Ulys terminée
2026-06-26 00:28:07 +02:00

159 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Mémoire opérationnelle — MEMORY.md
> Connaissances persistantes pour l'agent. Lu à chaque création de session.
---
## Identité du système
**OpenClaw** : v2026.6.5 (mis à jour le 11/6/2026)
**Hébergement** : Synology DS920+ ARCHIVE3 (RAM 20Gi, /volume1/docker/)
**LLM backend** : `Qwen/Qwen3-VL-30B-A3B-Thinking-FP8` servi par vLLM sur DGX Spark, `--served-model-name=qwen3-vl`
**Utilisateur principal** : Thierry Tallagrand (`+33607148216`)
**Vision projet** : système d'orchestration personnelle (bourse via N8N, mail multi-comptes, photos→sheets, WhatsApp/GUI).
---
## Capacités opérationnelles
### Gmail (gog CLI v0.21.0) — ACTIF
- ✅ **Envoyer mail** : `gog gmail send --to ... --subject "..." --body "..." --attach <fichier>`
- ✅ **Lire/chercher** : `gog gmail search "..." -j --max N`
- ✅ **Brouillons** : `gog gmail drafts create/list/send/delete`
- ✅ **Trier** : `gog gmail trash/archive` (toujours `--dry-run` d'abord)
- ✅ **Labels** : `gog gmail labels list`, `gog gmail messages modify --add-label/--remove-label`
### WhatsApp — ACTIF
- ✅ Envoi messages texte vers l'utilisateur principal
- ✅ Envoi images PNG/JPEG — SVG interdits
- ✅ Commande `/new` pour nouvelle session DM
### Bourse — Workflow N8N (refonte 2026-06-24)
- ✅ **Graphe** : webhook N8N `POST https://n8n.airtria.pro/webhook/bourse-graphe` (workflow `4bluZIeN3TnbzIrv`)
- ✅ **Watchlist** : éditable dans `workspace/bourse-config.json`
- ✅ **Prix texte rapide** : `curl -fs "https://query1.finance.yahoo.com/v8/finance/chart/SYMBOLE?interval=1d&range=1d" | jq '.chart.result[0].meta | {price: .regularMarketPrice, prev: .chartPreviousClose, currency}'`
- ✅ **Cron** : `orange-cloture` (40 17 * * 1-5) via le workflow N8N
- ⚠️ **OBSOLÈTES** (ne plus utiliser) : `orange-bourse.md`, `get_quote.py`, `generate_chart.py`, `clean_bourse_md.py` — archivés dans `workspace/_archive-bourse-20260624/`
### Filesystem & exec
- ✅ Lecture/écriture dans `/home/node/.openclaw/workspace/`
- ✅ Exec `python3`, `node`, `curl`, `jq`, `git`
- ✅ Aucun `pip install` runtime
### Web
- ✅ `web_fetch` (1500 chars max), `web_search` (10 résultats max)
---
## Hard constraint GLOBAL — Anti-amnésie
**L'agent NE DIT JAMAIS "je ne peux pas faire X" sans vérification.**
Procédure obligatoire avant tout refus :
1. Chercher X dans `TOOLS.md` (sections 1-9)
2. Si X est documenté → tenter la commande et rapporter le résultat
3. Si erreur → rapporter l'erreur EXACTE, pas l'incapacité
4. Si vraiment non documenté → demander précision à l'utilisateur
**Exemples de refus INTERDITS** :
- "Je ne peux pas envoyer un mail" (faux : Gmail send actif)
- "Je n'ai pas accès à Gmail" (faux : auth persistée)
- "Je suis un assistant sans capacités" (faux : voir `TOOLS.md`)
- "Gmail à venir" (faux : opérationnel depuis 9/6/2026)
- "Je ne peux pas tracer un graphe boursier" (faux : webhook N8N actif depuis 24/6/2026)
---
## Bourse — Architecture N8N (source de vérité actuelle)
### Principe
Agent = interlocuteur. N8N = exécutant. Aucune donnée n'est editée à la main.
### Source de vérité
- Fichier : `workspace/bourse-config.json`
- Tickers FR : suffixe `.PA` (ORA.PA, TTE.PA)
- Tickers US : sans suffixe (NVDA, AAPL)
- Aliases et options par défaut définis dans le JSON
### Crons actifs
- `orange-cloture` (`40 17 * * 1-5` Europe/Paris) : appelle le webhook N8N et envoie le PNG sur WhatsApp.
- Actuellement en timeout — voir `workspace/HANDOFF.md` TODOs.
### Crons bourse obsolètes (désactivés dans SQLite)
- `orange-ouverture`
- `orange-intraday`
- `orange-chart-update`
### Format réponse standard
- Cours simple : `ORA.PA : 17,86€ (+1,16%)`
- Indisponible/marché fermé : dire "Aucune donnée", ne pas inventer
- Graphe : 3 lignes max + PNG attaché
---
## Gmail — Suivi des phases
### Phase terminées
- Re-auth OAuth + GOG_HOME persisté (2026-06-09)
- Phase D : 12 401 mails trashés
### Phases terminées
- Phase E : filtres natifs Gmail anti-spam (2026-06-25) — 18 filtres créés, ~889 messages archivés
- Phase F : archive Philippot + Ulys (2026-06-25) — inbox vides, futurs messages filtrés
### Phases en attente
- Phase G : longue traîne newsletters
### Cron actif
- `daily-email-report` (`30 8 * * *` Europe/Paris) → résumé quotidien WhatsApp des dernières 24h
---
## TODO actuel
### Haute priorité
- Stabiliser le cron `orange-cloture` (timeouts)
- Régler le max tokens GUI à ~8192 (navigateur)
### Moyenne priorité
- Tester "2 graphes séparés zoomés" (2× `beginAtZero:false`)
- Surveiller l’efficacité des filtres Phase E (1–2 semaines)
- Phase G Gmail : longue traîne newsletters
### Basse priorité
- Aligner `agents/main/agent/models.json` avec `vllm/qwen3-vl`
- Augmenter `OPENCLAW_CRON_JOB_TIMEOUT_MS` si le Thinking déborde
---
## Apprentissages structurants
### Sessions précédentes
- **9/6/2026** : Re-auth OAuth Gmail + GOG_HOME persisté (test compose down/up validé)
- **10/6/2026** : Fix cron orange-intraday (prompt "OK" → vrai cours), RAM upgrade 16GB
- **10/6/2026** : Découverte SVG incompatible WhatsApp + bug tri chronologique
- **23/6/2026** : Migration du cron email horaire (`hourly-email-check`) vers un rapport quotidien (`daily-email-report`) à 8h30 Europe/Paris. Source de vérité : `state/openclaw.sqlite` (pas les JSON obsolètes). Format : résumé court global + détail des messages importants.
- **24-25/6/2026** : Refonte bourse via N8N — suppression des scripts Python, du fichier `orange-bourse.md` et des workflows cassés ; passage au modèle Thinking.
- **25/6/2026** : Phase E Gmail (filtres natifs) + Phase F (archive Philippot/Ulys) terminées. Audit via SSH sur Synology + `gog` dans container `openclaw-gateway`.
### Patterns à respecter
- Test après chaque modification (checklist comportementale)
- Backup AVANT chaque mutation (`.bak-<TS>` avec timestamp)
- 3 couches doivent rester alignées : Tools/Skills (`TOOLS.md`) + Knowledge (`MEMORY.md`) + Identity (`SOUL.md` / `IDENTITY.md`)
- L'agent ne modifie jamais des fichiers directement quand un outil/service est la source de vérité (cas bourse : `bourse-config.json` OK, mais les prix viennent de Yahoo via N8N)
---
## Méta : où trouver quoi
| Sujet | Fichier de référence |
|---|---|
| Skills opérationnels (syntaxe gog, webhook, etc.) | `TOOLS.md` |
| Comportement, hard constraints | `AGENTS.md` |
| Identité, persona | `SOUL.md`, `IDENTITY.md` |
| État global / transfert inter-sessions | `HANDOFF.md` |
| Mode batch/cron silencieux | `HEARTBEAT.md` |
| Règles métier Gmail | `gmail-rules.md` |
| Données bourse (watchlist + options) | `bourse-config.json` |
| Mémoire évolutive (ce fichier) | `MEMORY.md` |