scory.dev ← Tous les projets

Étude de cas · Agent IA · CLI Python

Lyma

Un agent codeur en ligne de commande, multi-provider LLM, avec rotation des clés et fallback entre providers. Il peut brouillonner, compiler et exécuter des sous-agents bornés via agent-factory — depuis un terminal, sans interface web.

Pourquoi Lyma existe

Beaucoup d'agents de code reposent sur un seul fournisseur et une seule clé : en cas de rate-limit ou d'indisponibilité, le travail s'arrête. Lyma gère plusieurs clés par provider et plusieurs providers ; si l'un sature ou tombe, le suivant configuré prend le relais. Deuxième idée : beaucoup d'outils ne savent pas orchestrer d'autres agents — Lyma embarque un pont natif vers agent-factory.

Ce que j'ai construit

  • Multi-provider natif — Anthropic, OpenAI, DeepSeek, Qwen, Kimi, ou tout serveur local compatible OpenAI.
  • Rotation des clés — plusieurs clés par provider, round-robin sur rate-limit ou erreur 5xx.
  • Fallback entre providers — si un provider est indisponible, le suivant configuré prend le relais.
  • Pont agent-factory — commandes draft_agent, compile_agent, run_compiled_agent pour orchestrer des sous-agents bornés.
  • Blacklist de sécurité non désactivable — une liste restreinte de commandes dangereuses bloquée en dur, indépendamment de la configuration.

Architecture & sécurité

Configuration dans ~/.lyma/config.toml (chmod 600) ou variables d'environnement. Les providers passent par un routeur commun (interfaces Anthropic et compatible-OpenAI) qui gère rotation et fallback. La blacklist de sécurité est la seule protection non désactivable ; le reste est configurable.

Une campagne de durcissement (octobre 2026) a renforcé les garanties : sandbox des agents compilés et gate lyma approve (validation humaine par hash) avant l'exécution de tout agent externe.

  • Python
  • Anthropic
  • OpenAI
  • DeepSeek
  • Qwen
  • Multi-LLM
  • Rotation clés
  • agent-factory

Décisions techniques

  • TOML plutôt que JSON pour la config — plus lisible, commentaires inline.
  • Blacklist non désactivable — la porte de sortie pour les commandes destructrices est physiquement absente, pas désactivable par flag.
  • Pas de daemon — outil interactif, aucun service système ni écoute réseau ; le contrôle reste dans la main de l'utilisateur.

Portée & limites

Lyma est un projet personnel, utilisé localement en terminal. C'est un banc d'essai sur l'orchestration d'agents et les garde-fous : la philosophie assumée est de donner de la liberté à l'agent principal, tout en bornant strictement les sous-agents compilés.

Un système d'agents sur mesure ?

Orchestration, providers, sécurité — je conçois des pipelines IA adaptés à votre contrainte réelle.