docs: incident EXT4 2026-05-13 + hermes-agent nouvelle archi SSD

- incidents.md : incident corruption EXT4 après arrêt brutal (655 erreurs,
  e2fsck, réinstall hermes-agent, nouveau chemin /opt/hermes/.hermes/)
- hermes.md : arborescence mise à jour (code SSD vs données RAID5),
  chemins pip/venv/frontend corrigés
- Ansible role hermes_agent : venv path et wrapper mis à jour
  (hermes_home/.hermes/hermes-agent/venv/ au lieu de hermes_data_dir/)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
alkatrazz 2026-05-13 14:49:53 +02:00
parent a1826fe339
commit 763b29495e
3 changed files with 118 additions and 26 deletions

View file

@ -187,7 +187,7 @@ curl -s -X POST http://192.168.10.20:1234/v1/embeddings \
"import sys,json; print('dim:', len(json.load(sys.stdin)['data'][0]['embedding']))"
# Installer qdrant-client si absent
sudo -u hermes /srv/data/hermes/hermes-agent/venv/bin/pip install "qdrant-client>=1.12.0"
sudo -u hermes /opt/hermes/.hermes/hermes-agent/venv/bin/pip install "qdrant-client>=1.12.0"
```
> Toujours passer par le terminal (fichier /tmp/*.py) pour accéder à Qdrant depuis Hermes,
@ -195,22 +195,28 @@ sudo -u hermes /srv/data/hermes/hermes-agent/venv/bin/pip install "qdrant-client
---
## Arborescence HERMES_HOME
## Arborescence
Depuis l'incident 2026-05-13, le code est sur le SSD OS et les données sur le RAID5.
```
/srv/data/hermes/
├── config.yaml → configuration profil par défaut (géré Ansible)
├── .env → LM_BASE_URL, LM_API_KEY (géré Ansible)
├── hermes-agent/ → installation (venv Python, binaire, frontend web)
│ └── web/ → source frontend dashboard (compilé via npm)
├── node/ → Node.js local (pour compiler le frontend)
├── memories/ → mémoire persistante profil par défaut
├── sessions/ → historique sessions profil par défaut
├── logs/ → logs
├── skills/ → skills installées
├── state.db → base SQLite état agent
└── profiles/ → profils isolés
├── funk-ai/ → config.yaml, memories/, sessions/, state.db
/opt/hermes/ → home utilisateur hermes (SSD OS)
├── .local/bin/hermes → wrapper bash → venv hermes-agent
└── .hermes/hermes-agent/ → code source + venv Python
├── venv/ → environnement Python (uv)
├── hermes_cli/ → source CLI
└── web/ → source frontend dashboard
/srv/data/hermes/ → HERMES_HOME (RAID5) — données persistantes
├── config.yaml → configuration profil par défaut (géré Ansible)
├── .env → LM_BASE_URL, LM_API_KEY (géré Ansible)
├── memories/ → mémoire persistante profil par défaut
├── sessions/ → historique sessions profil par défaut
├── logs/ → logs
├── skills/ → skills installées
├── state.db → base SQLite état agent
└── profiles/ → profils isolés
├── funk-ai/ → config.yaml, memories/, sessions/, state.db
├── brain/
├── system/
└── monitor/
@ -224,11 +230,8 @@ sudo -u hermes /srv/data/hermes/hermes-agent/venv/bin/pip install "qdrant-client
# Stopper les services
sudo systemctl stop hermes-dashboard hermes-agent
# Mettre à jour
sudo -i -u hermes
cd /srv/data/hermes
hermes update
exit
# Mettre à jour (depuis le compte hermes)
sudo -i -u hermes bash -c 'HOME=/opt/hermes HERMES_HOME=/srv/data/hermes hermes update'
# Redémarrer
sudo systemctl start hermes-agent hermes-dashboard
@ -236,7 +239,7 @@ sudo systemctl status hermes-agent hermes-dashboard --no-pager
```
> Après une mise à jour majeure, recompiler le frontend (voir section suivante) et vérifier
> que `hermes --tui` fonctionne encore (`npm install --ignore-scripts` dans `hermes-agent/ui-tui/` si besoin).
> que `hermes --tui` fonctionne encore (`npm install --ignore-scripts` dans `/opt/hermes/.hermes/hermes-agent/ui-tui/` si besoin).
---
@ -246,8 +249,8 @@ Si mise à jour de hermes-agent nécessite un rebuild :
```bash
sudo -u hermes bash -c \
'export PATH=/srv/data/hermes/node/bin:$PATH && \
cd /srv/data/hermes/hermes-agent/web && \
'HOME=/opt/hermes && \
cd /opt/hermes/.hermes/hermes-agent/web && \
npm install && npm run build'
sudo systemctl restart hermes-dashboard
```
@ -258,7 +261,7 @@ sudo systemctl restart hermes-dashboard
| Sujet | Détail |
|---|---|
| Données sur RAID5 | `HERMES_HOME=/srv/data/hermes` — jamais sur le SSD OS |
| Code vs données | Code + venv : `/opt/hermes/.hermes/hermes-agent/` (SSD OS) — Profils/données : `/srv/data/hermes/` (RAID5) |
| LiteLLM requis | litellm.service doit tourner avant hermes-agent |
| `LM_API_KEY` | Doit valoir `lm-studio` exactement |
| Contexte | GPU (funk-ai) : 32768 tokens réels, override Hermes à 65536 via config.yaml |