OS Agentique — Avancement session 20260520¶
Suite de shared/architecture/plan-assemblage-os-agentique. Bilan de ce qui a été réalisé et ce qui reste à faire.
Bilan Semaine 1 — Mémoire Hermes ✅¶
Fichiers enrichis sur le VPS dans /home/kanmaber/.hermes/ :
| Fichier | Contenu |
|---|---|
SOUL.md |
Personnalité : concis, technique, français, validation avant action |
memories/USER.md |
Profil complet Bernard : Caritas Bénin, FSM 2026, 5 projets, infra VPS |
memories/MEMORY.md |
Règles DDD ajoutées + plan OS agentique 4 semaines |
Test validé : Hermes répond avec les 5 projets actifs et les bons statuts sans que Bernard se présente.
Bilan Semaine 2 — Veille technologique quotidienne ✅¶
Canal de notification¶
- Email choisi (Telegram inaccessible — écran téléphone cassé, téléphone d'emprunt)
- himalaya v1.2.0 installé et configuré :
/home/kanmaber/.local/bin/himalaya - Config :
/home/kanmaber/.config/himalaya/config.toml - Mot de passe SMTP :
/home/kanmaber/.himalaya_smtp_pass - Envoi via Python SMTP (himalaya CLI a un bug sur send)
Script veille technologique¶
- Fichier :
/home/kanmaber/scripts/veille_techno.py - Cron :
0 7 * * *(chaque jour à 7h00) - Log :
/home/kanmaber/scripts/veille.log - Cache :
/home/kanmaber/scripts/veille_cache.json - Sources (13) : Prisma, Express, React, TypeScript, BullMQ, Node.js, Anthropic, Hermes Agent, Docker, Caddy, Dev.to DDD, Dev.to TS, Dev.to Node
- Résultat : email quotidien avec articles des 24h groupés par source
Bilan Semaine 3 — Cron jobs (en cours) 🔄¶
tekdhi_rss_articles.py ✅ (priorité confirmée)¶
- Fichier :
/home/kanmaber/scripts/tekdhi_rss_articles.py - Cron :
0 8 * * *(chaque jour à 8h00) - Log :
/home/kanmaber/scripts/tekdhi_rss.log - Cache :
/home/kanmaber/scripts/tekdhi_rss_cache.json - MAX_ARTICLES = 5 par exécution (configurable ligne 27)
- 9 sources RSS : Vatican News FR, Aleteia FR, Zenit FR, La Croix, Famille Chrétienne, Disrupt Africa, Jeune Afrique, MIT Tech Review, Le Monde Numérique
- Filtrage mots-clés : foi, technologie, Afrique, développement, IA, etc.
- Doublons : similarité titre/extrait ≥ 80%, URL déjà traitée, cache local
- Rapport email après chaque exécution avec liste des brouillons créés
- Template HTML : analyse foi + tech + Afrique + appel à l'action
- Script original préservé :
tekdhi_dynamic_article.sh(données hardcodées, ne pas supprimer)
✅ Résolu (session suivante) : filtrage remplacé par les tags des catégories du blog (dynamique). Voir section ci-dessous.
Guide semaine 3¶
- Fichier :
/home/kanmaber/scripts/guide_semaine3_cron_jobs.md - Explique : ajouter sources RSS, gérer cron jobs, scripts restants à créer
Éléments semaine 3 restants ❌¶
| Élément | Script à créer | Cron |
|---|---|---|
| Rapport hebdo lundi (état PsychoEnLigneV2) | rapport_psycho.sh |
0 7 * * 1 |
| Résumé vendredi | resume_vendredi.py |
0 17 * * 5 |
| Health check backend (alerte si DOWN) | health_check.sh |
*/15 * * * * |
Cron jobs actifs sur le VPS (20260520)¶
@reboot nohup ttyd -p 7681 -W docker exec -it hermes-telegram tmux ...
0 * * * * cd /home/kanmaber/second-memory && git pull origin master
0 7 * * * python3 /home/kanmaber/scripts/veille_techno.py >> veille.log
0 8 * * * python3 /home/kanmaber/scripts/tekdhi_rss_articles.py >> tekdhi_rss.log
Infrastructure de notification (résumé)¶
| Canal | Statut | Usage |
|---|---|---|
| Email (Gmail) | ✅ Opérationnel | Toutes les notifications actuelles |
| Telegram | ❌ Inaccessible (téléphone cassé) | À rétablir quand téléphone réparé |
| Signal | ⏸ Possible mais complexe (signal-cli + Java) | Envisager si Telegram reste inaccessible |
Amélioration filtrage tekdhi_rss_articles.py ✅ (20260520, session 2)¶
Problème résolu¶
Le filtrage par mots-clés statiques (liste KEYWORDS) était binaire : 1 mot-clé = article accepté.
Résultat : 38 brouillons par run, dont "Festival de Cannes", "grève Samsung".
Solution : tags des catégories du blog (dynamique)¶
Principe : au démarrage, le script fait GET /api/v1/categories, extrait le champ tags (CSV)
de chaque catégorie, et utilise ces termes comme référentiel de filtrage.
Avantage : si une catégorie reçoit de nouveaux tags dans l'admin du blog, le filtre s'adapte automatiquement sans modifier le script.
Tags ajoutés aux 3 catégories qui n'en avaient pas (via PUT /api/v1/categories/:id) :
| Catégorie | Tags ajoutés |
|---|---|
| Ai et Développement de logiciels | intelligence artificielle, logiciel, développement, numérique, code, programmation, machine learning, LLM |
| DevOps, CI/CD | déploiement, infrastructure, docker, automatisation, conteneur, pipeline, intégration continue, kubernetes |
| Développement Web | web, application, frontend, backend, api, javascript, typescript, react, node.js, framework |
Total : 35 tags de référence sur 5 catégories.
Paramètres finaux du script¶
| Paramètre | Valeur | Rôle |
|---|---|---|
SCORE_MIN |
1 | Au moins 1 tag de catégorie dans titre+description |
MAX_ARTICLES |
5 | Plafond brouillons créés par run |
Détail technique : word boundary pour tags courts¶
Les tags < 4 caractères (ai, ia, ddd...) utilisent \btag\b (regex word boundary)
pour éviter les faux positifs (ex. "ai" ne doit pas matcher "avait" ou "était").
Les tags longs utilisent la simple recherche de sous-chaîne.
def _tag_dans_texte(tag, texte):
if len(tag) < 4:
return bool(re.search(r'\b' + re.escape(tag) + r'\b', texte))
return tag in texte
Résultat¶
2-5 articles pertinents par run (vs 38 avant). Email récapitulatif inclut le score de chaque article.
Prochaines priorités¶
- rapport_psycho.sh — rapport lundi état PsychoEnLigneV2
- health_check.sh — alerte backend DOWN
- resume_vendredi.py — résumé vendredi
- Semaine 4 — Orchestration Hermes ↔ Claude Code
Liens connexes¶
- shared/architecture/plan-assemblage-os-agentique — plan initial 4 semaines
- shared/references/vps-hermes-commandes — commandes SSH/Docker VPS
- shared/references/hermes-email-himalaya — config himalaya