Skip to content

Système de plugins

源码版本v2026.7.20

Responsabilité

Les plugins sont le squelette d'extension d'Hermes : profils de provider, adaptateurs de plateforme, moteur de contexte, backend cron, backend de mémoire, navigateur, génération image/vidéo… tous sont intégrés via le mécanisme de plugins. plugins/ fournit un PluginContext (entrée d'enregistrement) + des fonctions utilitaires ; chaque sous-répertoire de plugin est autonome par domaine. Il travaille de pair avec ToolRegistry / PlatformRegistry : le plugin se contente de « déclarer et enregistrer », le registre gère « requête et dispatch ».

Fichiers clés

Flux de données

  1. Au démarrage, init_agent (agent/agent_init.py:276) déclenche la découverte des plugins.
  2. Chaque sous-répertoire de plugin est importé ; le code au niveau module appelle les méthodes d'enregistrement de PluginContext :
  3. Le registre (singleton) devient la source de vérité des requêtes ; la boucle principale et la passerelle se contentent de lire le registre, sans dépendre directement des plugins concrets.
  4. Les plugins sont hot-pluggables : le déchargement se fait par unregister, le registre gère les priorités et les surcharges.

Résumé

Plugin = « sous-répertoire + enregistrement ». Toutes les capacités transverses (provider, plateforme, outil, mémoire, cron, multimodal) passent par le même squelette d'enregistrement, ce qui maintient la boucle principale stable. Ajouter une capacité = créer un sous-répertoire de plugin et l'enregistrer, sans toucher au tronc principal de l'agent.

Site d'apprentissage communautaire non officiel. Basé sur le code source de NousResearch/hermes-agent (licence MIT).