CHANGELOG — Chatbot Discord =========================== Version 5.5 — 29/10/2026 ------------------------ Corrections - Les avertissements de discord.py sur le vocal (PyNaCl et davey non installés) n'apparaissent plus à chaque démarrage : le bot n'utilise pas le vocal. - Réflexion affichée : avec Sonnet 5.5 et EFFORT=high, le modèle écrivait parfois sa réflexion dans sa réponse (faux appel d'outil …, raisonnement entre balises …), quand il choisissait de ne pas réfléchir. Ça n'arrive plus avec EFFORT=medium : c'est le réglage conseillé. - Les consignes ajoutées automatiquement à la personnalité suivent les recommandations d'Anthropic contre ces fuites : plus d'interdiction de commenter les recherches web (ce commentaire n'est de toute façon jamais affiché), et une consigne générale contre les balises internes. - Au démarrage, le log indique le modèle, la réflexion, l'effort et la recherche web réellement utilisés. - Logs : chaque requête HTTP vers l'API d'Anthropic n'est plus journalisée (le SDK 2.x passe par httpx2, qui n'était pas rendu silencieux). Version 5.4.0 — 29/10/2026 -------------------------- Nouveautés - Changement de modèle facile : il suffit de modifier CLAUDE_MODEL dans le .env (claude-sonnet-5-5, claude-haiku-5-5 ou claude-opus-5-5) et de redémarrer le bot. - THINKING=off coupe la réflexion de la façon propre à chaque modèle (auparavant, tout autre modèle que Sonnet 5.5 était refusé par l'API). - Sur Opus 5.5, la réflexion ne peut pas être coupée : régler EFFORT=low. - Les tarifs utilisés pour le coût estimé dans les logs suivent le modèle choisi ; PRICE_INPUT_PER_MTOK et PRICE_OUTPUT_PER_MTOK ne sont plus à renseigner que pour un autre modèle (à vider dans le .env existant). - Messages transférés : dans le salon dédié, le bot lit le message transféré (son texte et son image). - Discussion entre bots : le bot répond aux autres bots quand ils le mentionnent ou répondent à l'un de ses messages ; le reste de ce qu'ils postent est toujours ignoré. - Messages regroupés : dans le salon dédié, les messages envoyés pendant que le bot répond ne reçoivent plus chacun leur réponse ; ils lui sont transmis ensemble (avec leurs images) et il y répond en une seule fois. Corrections - Les messages système (arrivée d'un membre, message épinglé, boost, fil créé…) et les messages sans rien à lire (sondages…) ne déclenchent plus de réponse payante de Claude. - /reset vidait mal la mémoire s'il était lancé pendant une réponse : l'échange en cours y était réécrit juste après. Le reset attend désormais la fin de la réponse avant de tout effacer. - Mentions moins chères : le contexte lu pour répondre à une mention n'est plus écrit dans le cache de prompt (surcoût de 25 %), puisqu'il change à chaque mention et n'y était jamais relu. - Mentions : l'image jointe à la mention elle-même est maintenant lue (seule celle du message cité l'était). Si les deux en ont une, c'est celle de la mention qui est envoyée à Claude. Version 5.3.0 — 29/10/2026 -------------------------- Nouveautés - Accès à Internet (désactivé par défaut) : avec WEB_SEARCH=on dans le .env, le bot peut faire des recherches web et lire les liens partagés dans la conversation (outils web_search et web_fetch d'Anthropic). - Il ne cherche que si la question porte sur l'actualité ou une info qu'il ne connaît pas, et nomme sa source dans sa réponse (sans lien). - WEB_MAX_USES limite le nombre de recherches (et de pages lues) par message. - Seule la réponse finale est envoyée sur Discord, sans les commentaires écrits pendant les recherches. - Dans la mémoire, une mention indique au bot qu'il a réellement cherché, pour qu'il ne croie pas avoir inventé sa réponse au message suivant. - Avec la recherche activée, prévoir API_TIMEOUT=90. Améliorations - Cache de prompt : la personnalité, les outils et l'historique sont relus depuis le cache à 10 % du prix (pendant 5 minutes, prolongées à chaque message). Avec la recherche web activée, un message simple passe d'environ 0,015 $ à 0,002 $. - Le coût estimé dans les logs tient compte du cache (tokens lus et écrits) et des recherches web (PRICE_WEB_SEARCH_PER_1000). Version 5.2.0 — 28/10/2026 -------------------------- Nouveautés - Fichiers texte : le bot lit un fichier .txt joint au message et en tient compte dans sa réponse. - Un fichier .txt par message (en plus d'une éventuelle image), 100 Ko maximum. - Fonctionne dans le salon dédié et en mode mention. - Encodage UTF-8 ou Windows (Bloc-notes) reconnu automatiquement. - Dans la mémoire, seul le nom du fichier est conservé, pas son contenu (comme pour les images), pour ne pas faire grimper le coût des messages suivants. - Personnalité perso : les fichiers *.local.txt sont exclus de GitHub (.gitignore). On peut y mettre une personnalité contenant des infos privées (ex. PERSONALITY_FILE=personality_prompt.local.txt dans le .env) ; personality_prompt.txt reste la personnalité par défaut publiée sur GitHub. Améliorations - Le bot n'utilise plus la fonction « Répondre » de Discord pour ses réponses : il écrit simplement à la suite dans le salon, comme un humain. - Les messages d'erreur (fichier non pris en charge, image en trop, etc.) restent en « Répondre », pour qu'on sache à qui ils s'adressent. Version 5.1.0 — 27/10/2026 -------------------------- Nouveautés - Réponses aux messages : quand on utilise « Répondre » sur un message, même ancien, le bot lit le message cité et en tient compte dans sa réponse. - Si le message cité vient du bot, il sait qu'il s'agit de sa propre réponse. - Le texte cité est limité à 500 caractères. - Si le message cité contient une image, elle est aussi envoyée à Claude, sauf si la réponse contient déjà sa propre image (celle-ci est prioritaire). - Fonctionne dans le salon dédié et en mode mention. - En mode mention, le bot peut maintenant voir une image, celle du message cité. Améliorations - Le téléchargement et la préparation des images passent par une seule fonction, partagée entre le salon dédié et les messages cités. - Une image citée illisible ou trop lourde est simplement ignorée (avertissement dans bot.log) au lieu de bloquer la réponse. - La commande /reset est réservée aux modérateurs (permission « Gérer les messages ») et aux administrateurs du serveur. - Elle est masquée pour les autres membres et n'est plus disponible en messages privés. - Si un administrateur l'ouvre à tous dans les paramètres du serveur, le bot refuse quand même la commande (réponse visible uniquement par l'auteur) et note la tentative dans bot.log. Divers - discord.py 2.5 minimum est désormais requis (requirements.txt). - README : ajout de la fonctionnalité « Réponses ». - README : précision sur les droits nécessaires pour /reset. Version 5.0.0 — 27/10/2026 -------------------------- Nouveautés - Passage de Mistral à Claude (Anthropic) pour générer les réponses. - Réécriture complète du Bot. Migration depuis la version 4 (Mistral) - L'ancien conversation_history.json est converti automatiquement au premier lancement (les images sont remplacées par un marqueur texte). - Dans le .env : MISTRAL_API_KEY devient ANTHROPIC_API_KEY, et MISTRAL_MODEL devient CLAUDE_MODEL. - L'intent Discord « Presence » n'est plus nécessaire.