CsAgent GitHub

Historique des versions

Toutes les versions de CsAgent depuis la 0.6.0 : ce que chacune ajoute ou corrige, avec sa date et le nombre de tests.

  • 22versions
  • 25jours, du 6 au 30 octobre 2026
  • 136 → 310tests, de la 0.8.0 à la 0.9.15

Série 0.9

Routage, économie de quota, MCP, nouveaux outils · Du 10 au 30 octobre 2026

v0.9.15

Nouveauté

30 octobre 2026

310 tests

La transcription audio disponible en mode --api

Un programme peut maintenant envoyer un enregistrement à CsAgent et recevoir le texte, comme le fait la dictée de la Web UI. C'est ce qu'utilise la saisie vocale de CSFlow.

  • Trois points d'accès : POST /api/audio/start, POST /api/audio/{id} (les octets, dans l'ordre) et POST /api/audio/{id}/transcribe (flux SSE progress, done ou error).
  • Même clé d'API que les autres routes. Fichiers écrits dans recordings/ et transcripts/.
  • ffmpeg est nécessaire, sauf pour un .wav ou .mp3 de 24 Mo au plus ; 100 Mo au maximum.

v0.9.14

Nouveauté

23 octobre 2026

310 tests

Lire un gros fichier par tranches, cinq outils git, un client Python

csagent-gitready. Trois apports de Virgile Jarrige : read_file par fenêtres de lignes, les outils git add, fetch, pull, push et checkout, et un client Python pour piloter CsAgent depuis des scripts.

  • read_file accepte start_line et end_line : une fenêtre de 2 000 lignes au plus, lue sans charger le fichier entier. Sans ces paramètres, rien ne change.
  • Cinq outils git : git_add, git_fetch, git_pull (avance rapide seulement), git_push (jamais en force) et git_checkout. Les trois derniers demandent confirmation. 43 outils au total.
  • python/csagent_client.py : un client de l'API SSE en bibliothèque standard seule, avec son README et 12 tests.
  • Deux corrections à la relecture : git_checkout ne prend plus un nom de fichier pour une branche (il effaçait les modifications du fichier) et git_add lit -- avant le nom (une option cachée passait).

v0.9.13

Correctif

16 octobre 2026

288 tests

CsAgent passe derrière un proxy d'entreprise

Derrière un proxy qui exige l'authentification Windows, chaque requête recevait une erreur 407. Les identifiants de la session sont maintenant donnés au proxy.

  • Un seul endroit crée les clients HTTP, HttpClients.Create : le client LLM, le catalogue de modèles, download_file, les outils réseau, système et audio, et le transport MCP en HTTP l'utilisent.
  • Les identifiants vont au proxy seulement, jamais aux serveurs.
  • Sous Linux et macOS, le proxy vient de HTTPS_PROXY ; un identifiant et un mot de passe se mettent dans la variable.
  • Aucun argument ni variable ajouté. Pas essayé avec un vrai proxy d'entreprise : à vérifier sur Windows.

v0.9.12

Correctif

15 octobre 2026

285 tests

Le filtre de commandes ne bloque plus à tort

Le filtre de sécurité des commandes refusait $ws.Range("E2:E31").NumberFormat = "0.00" d'Excel, qu'il prenait pour la commande Windows format.

  • Un motif qui commence par une lettre ne compte qu'en début de mot : .NumberFormat d'Excel et git add ne sont plus bloqués, format c: et dd if=… le restent.
  • Le message de refus nomme le motif bloqué (blocked pattern 'format') dans sh, run_terminal et excel_command, pour que l'agent puisse réécrire sa commande.
  • La liste des motifs ne change pas.

v0.9.11

Nouvel outil

15 octobre 2026

281 tests

download_file : une réponse HTTP directement dans un fichier

Mettre des données du web dans un fichier prenait des minutes : le modèle recevait la réponse, puis devait la réécrire en entier dans write_file.

  • Le nouvel outil download_file écrit la réponse sur le disque sans la faire passer par le modèle, qui ne reçoit qu'un résumé de quelques lignes.
  • json_path ne garde qu'une partie d'une réponse JSON (par exemple products) ; pretty ré-indente le JSON.
  • Il demande confirmation ; une erreur n'écrit rien et laisse un fichier existant intact ; limite de 20 Mo. 38 outils au total.
  • Le prompt système demande au modèle de ne plus recopier de données web dans write_file.

v0.9.10

Nouvel outil

15 octobre 2026

274 tests

L'agenda Outlook : lire et créer des rendez-vous

L'agent lit les rendez-vous d'une période et en crée, par l'automatisation COM d'Outlook : ni inscription Azure, ni jeton. Windows et Outlook classique.

  • read_calendar (lecture seule) liste les rendez-vous, récurrents compris, et donne la date du jour pour convertir « demain ».
  • create_appointment demande confirmation, puis affiche le rendez-vous dans Outlook pour relecture. save l'enregistre, send envoie les invitations ; les chevauchements sont signalés.
  • Nouveau groupe d'outils calendar et section 19 du prompt système. 37 outils au total.
  • Non essayé avec un vrai Outlook : à vérifier sur Windows.

v0.9.9

Nouveauté

15 octobre 2026

264 tests

MCP : stdio, plusieurs serveurs, en-têtes d'authentification

CsAgent se connecte à des serveurs MCP locaux ou distants, plusieurs à la fois, avec authentification.

  • --mcp-stdio "<commande>" démarre un serveur MCP local ; --mcp est répétable.
  • --mcp-header "Nom: valeur" ajoute un en-tête (clé d'API, Bearer) ; ${VAR} lit une variable d'environnement et les secrets ne s'affichent jamais.
  • --mcp-config <fichier> (ou CSAGENT_MCP_CONFIG) décrit les serveurs en JSON.
  • Avec plusieurs serveurs, les outils s'appellent mcp_<serveur>_<outil> ; un serveur en panne donne un avertissement, les autres restent utilisables.
  • Rien n'est chargé automatiquement depuis le dossier de travail.

v0.9.8

Nouveauté

15 octobre 2026

247 tests

Seuls les outils utiles sont décrits au modèle

À chaque étape, la description des 35 outils (environ 20 000 caractères) était renvoyée au modèle. Cela consommait du quota pour rien.

  • Les outils sont répartis en groupes : core (fichiers, recherche, shell) toujours envoyé ; git, web, courrier, audio, Excel, presse-papiers, archives, terminal et modèles seulement quand la demande en parle.
  • L'outil enable_tools rallume un groupe qui manque ; --all-tools rétablit l'envoi de tous les outils.
  • Une demande de code ordinaire envoie environ 67 % de caractères d'outils en moins.
  • Rien n'est interdit : un outil non décrit reste exécutable.

v0.9.7

Nouvel outil

14 octobre 2026

238 tests

Ranger les e-mails .msg par expéditeur

Le nouvel outil group_msg_by_sender renomme les fichiers Outlook .msg en noms ASCII, puis les range dans un dossier par expéditeur.

  • Un lecteur de .msg en C# pur : il fonctionne sur tous les systèmes et ne nécessite pas Outlook.
  • Les noms sans accents, espaces ni caractères spéciaux se manipulent sans problème d'encodage.
  • Regroupement par nom ou par adresse ; rien n'est jamais écrasé ; il demande confirmation. 35 outils au total.

v0.9.6

Nouveauté

14 octobre 2026

231 tests

--prompt utilisable dans un script

csagent --prompt "…" n'écrit plus que la réponse finale sur la sortie standard : elle peut être redirigée vers une autre commande.

  • Plus de bannière, de ligne de version, d'étapes, d'appels d'outils, de résultats, de modèle ni de jetons dans la sortie ; --verbose rétablit l'affichage complet.
  • Avertissements et erreurs vont sur la sortie d'erreur ; code de sortie 1 si l'agent signale une erreur.
  • Si l'entrée est redirigée, un outil qui demande confirmation est refusé (utiliser --yes).

v0.9.5

Nouveauté

13 octobre 2026

224 tests

Moins de jetons d'entrée par étape

Réduire le nombre de jetons envoyés à chaque étape aide à rester sous les quotas de l'API.

  • Les résultats d'outils plus anciens que les 6 derniers sont coupés à 1 500 caractères, avec une mention que l'outil peut être relancé.
  • Nouveaux arguments --context-chars <n> (taille de l'historique) et --no-compact (garder les anciens résultats entiers).
  • README corrigé (les 34 outils, le routage des images, le dépannage de la mémoire) et guide de l'utilisateur ajouté dans docs/.
  • --native, sans effet depuis la 0.5, est retiré.

v0.9.4

Nouveauté

13 octobre 2026

217 tests

Bascule automatique quand le quota du jour est épuisé

Au lieu de s'arrêter, CsAgent continue la même requête avec un autre modèle.

  • Le modèle de remplacement est deepseek-v4-flash par défaut ; CSAGENT_FALLBACK_MODEL le change, ou off rétablit l'arrêt.
  • Un modèle épuisé est mis de côté pendant 1 heure ; un avertissement indique le changement.
  • Les limites par minute gardent leur comportement (nouveaux essais, jamais de bascule).

v0.9.3

Nouveauté

13 octobre 2026

207 tests

Limites de débit : quota du jour, jetons affichés

CsAgent lit le message des erreurs HTTP 429 de l'API et réagit selon la limite atteinte.

  • Une limite par minute est réessayée comme avant ; une limite par jour n'est plus réessayée et s'arrête tout de suite avec une explication.
  • Pas de résumé de session après un 429 : il serait refusé aussi et consommerait du quota.
  • Une ligne en fin de tour indique les jetons du tour et de la session. Messages en français et en anglais.

v0.9.2

Nouveauté

13 octobre 2026

197 tests

Un menu /skills dans LeanUI

L'interface --leanui affiche les skills de skills/INDEX.md dans un menu.

  • Choisir un skill écrit une instruction dans le champ de saisie.
  • Corrigé : un préfixe comme /ne suivi d'Entrée complète en /new au lieu d'être envoyé comme commande inconnue.
  • Nouvelle route en lecture seule : GET /api/skills.

v0.9.1

Correctif

12 octobre 2026

192 tests

Le modèle de vision ne suit plus toute la conversation

Une image envoyée une seule fois envoyait tous les tours suivants vers le modèle de vision.

  • Seule l'image envoyée avec le message courant fait choisir le modèle de vision ; les anciennes images sont remplacées par un court texte.
  • --leanui : /help ouvre un menu sélectionnable (flèches ou souris), et taper / propose les commandes.

v0.9.0

Version majeure

10 octobre 2026

Routage des modèles, README en français, site GitHub Pages

CsAgent choisit lui-même le modèle de chaque message, et sa documentation devient accessible en ligne et en français.

  • Routage des modèles LLM : code, discussion, vision, recherche web ; règles modifiables dans LLMRoutingRules/ (créé par --init-routing) ; messages en français et en anglais.
  • --quiet s'applique aussi à --ui et --leanui.
  • README en français, site GitHub Pages (docs/) avec les slides.
  • Persistance plus robuste : le déplacement final de la conversation est relancé et un fichier verrouillé ne fait plus planter l'agent.

Série 0.8

Parole et MCP plus sûr · 9 octobre 2026

v0.8.0

Version majeure

9 octobre 2026

136 tests

Transcription vocale, enregistreur web, MCP plus sûr

L'agent comprend la parole, et MCP devient sûr par défaut.

  • Nouvel outil transcribe_audio (Whisper, via l'endpoint configuré) ; ffmpeg pour les longs fichiers.
  • Enregistreur vocal dans --ui et --leanui, avec le choix de la langue (FR / EN / Auto).
  • MCP plus sûr : outils proposés sous le nom mcp_<nom> (un serveur ne remplace plus un outil intégré), chaque appel demande confirmation, résultats traités comme des données non fiables.
  • Skills (skills/INDEX.md) et purge facultative des anciens enregistrements (CSAGENT_AUDIO_KEEP_DAYS).

Série 0.7

Pilotage par script, e-mails Outlook, endpoint · 7 et 8 octobre 2026

v0.7.3

Nouveauté

8 octobre 2026

Le mode --quiet

Une sortie réduite à l'essentiel en mode CLI.

  • --quiet n'affiche que les messages de l'assistant, les avertissements, les erreurs et la ligne finale.

v0.7.2

Nouvel outil

8 octobre 2026

Lire un e-mail Outlook .msg

Le nouvel outil read_msg lit les fichiers .msg.

  • Objet, expéditeur, destinataires, dates, corps et liste des pièces jointes, en lecture seule.

v0.7.1

Nouveauté

7 octobre 2026

Un autre endpoint en ligne de commande

Utiliser n'importe quel serveur compatible OpenAI sans variable d'environnement.

  • Nouvel argument --endpoint <url> (par exemple un modèle local avec Ollama).
  • Fichiers de mémoire renommés ; correctif du moniteur de presse-papiers, absent sous Linux.

v0.7.0

Nouveauté

7 octobre 2026

Le mode agent sans confirmation

CsAgent peut être piloté par un autre programme.

  • --yes approuve chaque appel d'outil automatiquement ; avec --api, un serveur sans interface pour orchestrateurs.

Série 0.6

Mémoire · 6 octobre 2026

v0.6.0

Version majeure

6 octobre 2026

La mémoire : hybride et distillée entre les sessions

L'agent ne perd plus ce qu'il a déjà essayé quand l'historique est raccourci.

  • Mémoire hybride : les 50 derniers pas sont gardés tels quels (ExactMemory) et les leçons d'erreurs et de solutions sont retenues (SemanticMemory). Les éléments utiles sont réinjectés avant chaque appel au modèle.
  • Distillation de session : un résumé de la session est gardé pour la suivante ; --no-distill l'évite.
  • Accès aux mémoires protégé contre les lectures et écritures simultanées.
  • Dépôt restructuré (CsAgentUI devient CsAgent) et interface web réparée.