Skip to content

Sistema de plugins

源码版本v2026.7.20

Responsabilidad

Los plugins son el esqueleto de extensión de Hermes: provider profiles, adaptadores de plataforma, context engine, proveedores de cron, backends de memoria, navegador, generación de imágenes/vídeo… todos se integran por el mecanismo de plugins. plugins/ ofrece un PluginContext (entrada de registro) + funciones utilitarias; cada subdirectorio de plugin es autónomo por dominio. Coordina con ToolRegistry/PlatformRegistry: el plugin solo «declara y registra»; el registro se encarga de «consultar y despachar».

Archivos clave

Flujo de datos

  1. En el arranque, init_agent (agent/agent_init.py:276) dispara el descubrimiento de plugins.
  2. Cada subdirectorio de plugin se importa; el código a nivel de módulo llama a los métodos de registro de PluginContext:
  3. Los registros (singletons) se convierten en la fuente de verdad; el bucle principal y el gateway solo leen los registros, sin depender directamente de un plugin concreto.
  4. Los plugins son hot-pluggable: descargarlos es solo unregister; el registro gestiona prioridades y overrides.

Resumen

Plugin = «subdirectorio + registro». Todas las capacidades transversales (provider, plataforma, herramienta, memoria, cron, multimodal) pasan por el mismo esqueleto de registro, manteniendo estable el bucle principal. Añadir una capacidad equivale a crear un subdirectorio de plugin y registrarlo, sin tocar el tronco del agent.

Sitio de aprendizaje comunitario no oficial. Basado en el código fuente de NousResearch/hermes-agent (licencia MIT).