Agent pour codage: ai_coding
Retour d'expériences (REX) d'entreprises:
Les frameworks d'agents permettent l'appel à des outils tool_calls mais aussi les interactions avec l'utilisateur clarify, ask_user.
J'ai mis du temps à me faire une idée sur l'utilité des agents …
Les contraintes des LLM:
Cas d'usage:
Modération: un 1er agent génère un réponse, un 2eme la vérifie selon des règles et la valide ou demande au 1er de corriger.
Domaine de connaissance volumineux et complexe (arbre conditionnel) : l'utilisateur ne fournira pas toutes les informations dans sa question, il faudra chercher les conditions manquantes pour lui poser des questions, tout en n'oubliant pas où on en est pour éviter de:
La solution est donc l'orchestration d'agents spécialisés sur des tâches, des connaissances, des compétences. Accompagnés de tools eux aussi spécialisés (description précise, simple et courte).
J'ai fait des expériences avec de petits LLM/SLM et sans découpage et spécialisation des tâches ça ne va pas. Avec les tools descriptions + un gros System Prompt il ne reste plus beaucoup de Context Window pour le reste. Aussi l'inférence sur le sujet de l'utilisateur est encombrée par toutes ces données.
* Problème de la fenêtre de contexte (Context Window)
* Un System Prompt détaillé peut facilement consommer 5-10k tokens (surtout avec des exemples JSON, des règles strictes, etc.).
* Les descriptions des outils (ex: describe_collection, search) ajoutent 2-5k tokens supplémentaires.
* Résultat : Il reste peu de place pour :
* La question de l’utilisateur (ex: 50-200 tokens).
* Les réponses intermédiaires (ex: résultats de describe_collection).
* Les requêtes/réponses Typesense (ex: JSON de 1-2k tokens).
* Conséquences :
* Le modèle oublie des parties du System Prompt (ex: include_fields).
* Il ignore les contraintes (ex: utiliser uniquement les champs indexés).
* L’inférence devient moins précise car le contexte est "pollué" par des données techniques.
* Problème de l’inférence encombrée
* Les petits LLMs (8B) ont une capacité limitée à gérer des instructions complexes en parallèle.
* Ils excellent pour des tâches simples et ciblées (ex: classification, Q&A basique).
* Ils saturent quand on leur demande de :
* Analyser une question utilisateur.
* Appeler describe_collection.
* Filtrer les champs indexés.
* Construire une requête search valide.
* Extraire des conditions des résultats.
* Générer des questions ciblées.
* Résultat : Le modèle saute des étapes ou invente des solutions (ex: utiliser des champs non indexés).
Assistants personnel pour des usages au quotidien
Une autre catégorie d'agents apparaît pour des usages du quotidien, pour faire “à notre place”:
| Agent | Github ⭐ | Primary use |
|---|---|---|
| Agent Zero | 17.2k | General-purpose autonomous assistant |
| OpenClaw | 363k | Multi-channel personal assistant |
| Hermes Agent | 113k | Self-improving learning-loop agent |
| ZeroClaw | 30.5k | Lean, hardware-friendly personal assistant |
| NanoClaw | 27.8k | Container-isolated Claude assistant |
| Evolver | 6.7k | Auditable agent self-evolution engine |
| EvoAgentX | 2.9k | Self-evolving multi-agent workflows |
OpenClaw est plus un “gateway” pour communiquer avec des agents.
Artciles:
A comprehensive PHP Generative AI Framework, inspired by Langchain and LlamaIndex, sur lequel est construit AutoPHP an agent PHP framework. Avec notamment présentation et usage de vectorstores et embeddings
P'tit problème avec Mistral qui ne retourne pas le “type” du “tool_calls”
Le clarify ou ask_user a été ajouté : About ask_user or clarify → add HumanInTheLoopTool for LLM-initiated user clarification
A unified interface for working with LLMs in Laravel.
Un framework open-source conçu pour faciliter la création d’applications alimentées par des modèles de langage (comme GPT, Llama, etc.). Il permet de combiner des LLMs avec d’autres sources de données, outils externes, ou encore des bases de connaissances, pour construire des workflows complexes.
Une extension de LangChain qui permet de modéliser des workflows d’IA sous forme de graphes. Contrairement à LangChain, qui utilise des chaînes linéaires ou séquentielles, LangGraph permet de créer des processus dynamiques et non linéaires, où les étapes peuvent s’enchaîner de manière conditionnelle ou parallèle.
Might excel with its native graph optimizations when allowed to use parallel execution, state caching, and its conditional edge system for complex branching logic.
Programming—not prompting—LMs - Signature-first programs (fewer lines of code)
Define a task via a signature (inputs/outputs + intent), then implement it with Modules that encapsulate prompting and LLM calls. Centralizes prompt/usage handling and removes glue code; swapping internals (e.g., Predict ↔ CoT) doesn’t change the contract.