07.1 · Sauvegarder la configuration Hermes
Modificationcp ~/.hermes/config.yaml ~/.hermes/config.yaml.backup-$(date +%Y%m%d-%H%M%S)
[ -f ~/.hermes/SOUL.md ] && cp ~/.hermes/SOUL.md ~/.hermes/SOUL.md.backup-$(date +%Y%m%d-%H%M%S) || trueCe module applique la baseline de comportement du Golden Build : mémoire persistante mais bornée, validation des écritures, délégation prudente, identité SOUL et hook de protection des commandes système sensibles. Les secrets restent dans .env et ne doivent jamais être ajoutés aux fichiers de mémoire.
Gateway + API validées
Identité, mémoire et garde-fous Golden
Écriture contrôlée
~/.hermes/config.yaml existe déjà.config.yaml. Ce module modifie uniquement les clés Golden utiles et conserve la configuration du modèle déjà validée.cp ~/.hermes/config.yaml ~/.hermes/config.yaml.backup-$(date +%Y%m%d-%H%M%S)
[ -f ~/.hermes/SOUL.md ] && cp ~/.hermes/SOUL.md ~/.hermes/SOUL.md.backup-$(date +%Y%m%d-%H%M%S) || truehermes config set memory.memory_enabled true
hermes config set memory.user_profile_enabled truehermes config set memory.memory_char_limit 2200
hermes config set memory.user_char_limit 1375
hermes config set memory.nudge_interval 10hermes config set memory.write_approval truehermes config set skills.write_approval true
hermes config set skills.ledger truehermes config set delegation.max_concurrent_children 1
hermes config set delegation.max_spawn_depth 1
hermes config set delegation.orchestrator_enabled truehermes config set approvals.mode smart
hermes config set approvals.cron_mode deny
hermes config set approvals.single_query_mode deny
hermes config set approvals.unattended_mode denyhermes config check
hermes config show | sed -n '1,220p'mkdir -p ~/.hermes/memories
touch ~/.hermes/memories/MEMORY.md ~/.hermes/memories/USER.md
chmod 600 ~/.hermes/memories/MEMORY.md ~/.hermes/memories/USER.mdcat > ~/.hermes/SOUL.md <<'EOF'
# SOUL
Tu es un assistant technique local.
- Réponds dans la langue de l'utilisateur.
- Vérifie l'état réel avant de proposer une modification.
- Utilise les outils lorsque cela apporte une preuve.
- Demande une confirmation avant toute action destructive ou sensible.
- N'affiche jamais les secrets, tokens, mots de passe ou clés privées.
- Préfère les actions en lecture seule pour le diagnostic.
EOF
chmod 600 ~/.hermes/SOUL.mdmkdir -p ~/.hermes/agent-hooks
chmod 700 ~/.hermes/agent-hookscat > ~/.hermes/agent-hooks/protect-system-actions.py <<'PY'
#!/usr/bin/env python3
import json, re, sys
try:
payload = json.load(sys.stdin)
except Exception:
print('{}')
raise SystemExit(0)
if payload.get('tool_name') != 'terminal':
print('{}')
raise SystemExit(0)
args = payload.get('args') or payload.get('tool_input') or {}
cmd = str(args.get('command',''))
patterns = [
r'\bsystemctl\b.*\b(restart|stop|disable|mask)\b',
r'\bhermes\s+gateway\s+(restart|stop)\b',
r'\b(reboot|shutdown|poweroff|halt)\b',
r'\bdocker\b.*\b(restart|stop|rm|prune)\b',
r'\bumount\b', r'\bmount\b',
]
if any(re.search(p, cmd, re.I) for p in patterns):
print(json.dumps({
'action':'approve',
'message':'Action système sensible : confirmation explicite requise.',
'rule_key':'jarvis-sensitive-system-action'
}))
else:
print('{}')
PY
chmod 700 ~/.hermes/agent-hooks/protect-system-actions.pynano ~/.hermes/config.yaml
# Ajouter ou fusionner ce bloc :
hooks:
pre_tool_call:
- matcher: '^terminal$'
command: 'METTRE_VOTRE_CHEMIN_HOME/.hermes/agent-hooks/protect-system-actions.py'
timeout: 5
fail_closed: truehermes config check
hermes --accept-hooks chat -q "Réponds uniquement par : HOOKS OK"
hermes hooks list
hermes hooks doctorprintf '%s\n' '{"tool_name":"terminal","tool_input":{"command":"systemctl --user restart service-de-test"}}' | ~/.hermes/agent-hooks/protect-system-actions.pyhermes gateway restart
hermes gateway statusls -l ~/.hermes/memories/
wc -c ~/.hermes/memories/MEMORY.md ~/.hermes/memories/USER.mdL’identité générale : ton, prudence, règles de fonctionnement et principes de sécurité. Ne pas y placer de secrets.
Préférences de communication et attentes durables. Le fichier est géré par la mémoire Hermes et reste privé au profil.
Faits techniques stables réellement utiles : conventions, architecture, chemins génériques, décisions durables. Éviter les tokens et mots de passe.
Avec write_approval=true, utilisez /memory pending, /memory approve et les commandes équivalentes des skills pour contrôler ce qui devient persistant.
Ne passez au module suivant que lorsque tous les points applicables sont validés.
Si tous les contrôles sont corrects, ce module est terminé. En cas d’écart, restez sur ce module et diagnostiquez la dernière étape en erreur avant de poursuivre.