====== AI Agent ======
Agent pour codage: [[/informatique/ai_lm/ai_coding#agents_ia|ai_coding]]
* Agents réflexes simples / simple reflex agent
* Agents basés sur des modèles / model based agent
* Agents basés sur des objectifs / goal based agent
* Agents basés sur l'utilité / utility based agent
* Agents d'apprentissage / learning agent
* Agents hiérarchiques / hierarchical agent
* [[https://learn.microsoft.com/en-us/azure/architecture/ai-ml/guide/ai-agent-design-patterns|Patterns d'orchestration]]
* The [[https://agentclientprotocol.com/get-started/introduction|Agent Client Protocol]] Agent Client Protocol (ACP) standardizes communication between code editors/IDEs and coding agents and is suitable for both local and remote scenarios.
* [[https://www.youtube.com/watch?v=ZnYUxTtS6IU|Retour d'expérience sur la création d'un agent autonome]] avec [[https://github.com/LLPhant/AutoPHP|AutoPhp]] (Youtube, janvier 2024)
* [[https://fr.slideshare.net/slideshow/exploring-ai-riding-an-llphant-an-open-source-library-to-use-llms-and-vector-dbs-in-php/272059145#1|Exploring AI riding an LLPhant - An Open Source Library to use LLMs and vector DBs in PHP]] (slide, juillet 2023) - RAG, embeddings ...
* [[https://research.aimultiple.com/rag-frameworks/|RAG frameworks benchmark results: LangChain vs LangGraph vs LlamaIndex vs Haystack vs DSPy]]
Retour d'expériences (REX) d'entreprises:
* [[https://www.youtube.com/watch?v=q3LtMMbg5YQ|Leboncoin - La GenAI au service de la relation client]] (2025-01)
* [[https://www.youtube.com/watch?v=CV13E5i_cuo|Aramis Auto - Nouvelles frontières de l'automatisation avec les agents autonomes]] (2025-01)
Les frameworks d'agents permettent l'appel à des outils ''tool_calls'' mais aussi les interactions avec l'utilisateur ''clarify'', ''ask_user''.
===== À quoi ça sert ? =====
J'ai mis du temps à me faire une idée sur l'utilité des agents ...
==== Agent de codage ====
* voir [[/informatique/ai_lm/ai_coding|AI coding]]
==== Spécialiser un Chat conversationnel ====
Les contraintes des LLM:
* Éviter un modèle dédié : au lieu de créer (entraîner) un modèle sur un sujet spécifique, on part d'un modèle généraliste et une orchestration d'agents permet un traitement adapté pour générer une réponse correcte.
* Quantité de données : un modèle est contraint dans le volume de données qu'il peut traiter (context window), on ne peut pas lui donner la bible d'un coup et lui poser une question, il faut découper le problème.
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:
* répondre à côté en matchant sur la mauvaise situation
* répondre de façon incomplète en ignorant des cas qui s'appliquent peut-être
* halluciner une certitude là où il devrait exprimer une incertitude conditionnelle
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 ====
Assistants personnel pour des usages au quotidien
Une autre catégorie d'agents apparaît pour des usages du quotidien, pour faire "à notre place":
* faire une synthèse des emails reçus
* surveiller le tarif d'un billet de train pour l'acheter au bon moment
* ...
^ 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 |
* [[https://nicklaunches.com/blog/open-source-ai-agent-frameworks-2026/|7 Open-Source AI Agent Frameworks]] Nick Launches 2026-04
* [[https://www.webotit.ai/blog/agents-ia/comparatif/hermes-agent-vs-openclaw-agents-autonomes-comparatif|Hermes Agent vs OpenClaw : deux visions de l'agent autonome]] Louis-Clément Schiltz 2026-03
* En bref: Hermes Agent et OpenClaw adressent des problèmes différents. Hermes Agent, créé par NousResearch, est un agent personnel qui apprend de ses interactions, génère ses propres skills et construit un modèle persistant de l'utilisateur. OpenClaw, créé par Peter Steinberger, est un gateway self-hosted qui orchestre des agents via WhatsApp, Telegram, Discord et iMessage. L'un apprend, l'autre distribue.
* Métaphore : OpenClaw est le standard téléphonique. Hermes Agent est l'employé senior qui décroche.
===== Agents "autonomes", orchestrateurs =====
==== Openclaw ====
OpenClaw est plus un "gateway" pour communiquer avec des agents.
==== Hermes Agent ====
[[https://hermes-agent.org|Hermes Agent]]
Artciles:
* [[https://www.webotit.ai/blog/agents-ia/comparatif/hermes-agent-vs-openclaw-agents-autonomes-comparatif|Hermes Agent vs OpenClaw : deux visions de l'agent autonome]]
* [[https://open-techstack.com/blog/how-to-set-up-hermes-agent-local-automation-2026/|How to Set Up Hermes Agent for Local Automation Workflows]]
* [[https://hermes-agent.nousresearch.com/docs/user-guide/features/overview|Features overview]]
* 40+ outils intégrés : terminal, navigateur, vision, TTS, recherche web, exécution de code, subagents. MCP natif pour l'extensibilité via des serveurs MCP externes.
* Système de mémoire persistante en 2 couches: 1 pour injection automatique dans le system prompt, l'autre pour recherche à la demande.
* Routage automatique entre modèles: bascule entre un modèle puissant pour les requêtes complexes et un modèle rapide pour les tâches simples.
* **Workflow** / multi-steps task
* 💡 Hermes Agent supporte des subagents avec isolation de contexte. Le parent ne voit que le résumé, pas le contexte des enfants, ça évite le "context poisoning".
* [[https://hermes-agent.nousresearch.com/docs/user-guide/features/delegation|features delegation]] et la [[https://github.com/NousResearch/hermes-agent/issues/344|réflexion associée]] qui envoie du lourd. 🦄
=== Intégration à Codium/VSCode ===
* Pas d'interface [[/glossaire/LSP]] mais communique via [[/glossaire/ACP]]
* [[https://marketplace.visualstudio.com/items?itemName=joaompfp.hermes-ai-agent|Hermes AI Agent]] (2026-04-27: 195 installs)
* [[https://marketplace.visualstudio.com/items?itemName=Poppywu124.hermes-chat|Hermes Agent Chat]] (2026-04-27: 1399 installs)
===== Frameworks =====
==== LlamaIndex / LlamaAgents ====
https://developers.llamaindex.ai/python/llamaagents/overview/
==== LLPhant ====
A comprehensive PHP Generative AI Framework, inspired by Langchain and LlamaIndex, sur lequel est construit [[https://github.com/LLPhant/AutoPHP|AutoPHP]] an agent PHP framework. Avec notamment présentation et usage de [[https://github.com/LLPhant/LLPhant?tab=readme-ov-file#vectorstores|vectorstores]] et [[https://github.com/LLPhant/LLPhant?tab=readme-ov-file#embeddings|embeddings]]
* https://github.com/LLPhant/LLPhant
* https://github.com/LLPhant/AutoPHP
* [[informatique:ai_lm:ai_agent:autophp|Essai AutoPhp]]
P'tit problème avec Mistral qui ne retourne pas le "type" du "tool_calls"
* https://github.com/LLPhant/LLPhant/issues/311
* obligé de forker LLPhant pour monter la version openai-php en v0.192
Le ''clarify'' ou ''ask_user'' a été ajouté : [[https://github.com/LLPhant/LLPhant/issues/481|About ask_user or clarify]] -> [[https://github.com/LLPhant/LLPhant/pull/484|add HumanInTheLoopTool for LLM-initiated user clarification]]
==== PrismPhp ====
A unified interface for working with LLMs in Laravel.
* https://prismphp.com
* https://github.com/prism-php/prism
* Et son client MCP
* https://github.com/prism-php/relay
==== LangChain ====
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.
* **LangSmith**: une plateforme de débogage, de test et de monitoring pour les applications construites avec LangChain ou d’autres frameworks similaires
==== LangGraph ====
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.
==== DSPy ====
https://dspy.ai
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.
* Choose DSPy for: minimal boilerplate, readable single-file flows, contract-driven development (with optional optimizers).
* could show dramatically different results when using its signature optimizers (like MIPROv2) and Chain-of-Thought prompting, which can significantly improve answer quality.