Punto de entrada y flujo de arranque
源码版本v2026.7.20
Responsabilidad
Convertir «un comando hermes / un mensaje del gateway» en «un agent corriendo en memoria». La capa de entrada se mantiene deliberadamente fina: run_agent.py solo reenvía y ensambla el CLI; la inyección de dependencias real ocurre en agent_init.py. Así, gateway, TUI, CLI, ACP y cron comparten la misma ruta de inicialización.
Archivos clave
gateway main:22965— entradamain()del proceso gatewayclase AIAgent:400-497— clase de entrada ligera;__init__solo guarda parámetrosAIAgent.__init__ reenvía:497-560— el comentario dice literalmente "Forwarder — see agent.agent_init.init_agent"método run_conversation:6350— método de instanciaAIAgent.run_conversation, que llama alrun_conversation a nivel de módulo:588CLI main:6434— entrada del CLIinit_agent:276-400— función principal de inyección de dependencias_resolve_compression_threshold:93-127— ejemplo de resolución de configuración en el arranquehermes_bootstrap.py— guía de entorno/rutas más temprana (raíz del repo)
Flujo de datos
- El usuario ejecuta
hermes(CLI) o el gateway arranca conmain()(run_agent.py:22965). - El proceso pasa por
hermes_bootstrap.pypara ajustar rutas/entorno, y entra alCLI main:6434o al bucle del gateway. - Se construye una instancia de
AIAgent:400; su__init__reenvía ainit_agent:276. init_agentresuelve provider, toolsets, umbral de compresión,extra_bodyde provider personalizado, etc., y ensambla un objeto agent ejecutable.- El gateway, dentro de
GatewayRunnerengateway/run.py, mantiene ese agent y le pasa cada mensaje entrante arun_conversation:588.
Resumen
La capa de entrada es «reenviar + ensamblar», sin lógica de negocio. AIAgent es una cáscara fina; init_agent es el centro de ensamblaje. Tras entender esta cadena, el bucle principal del agente responde a «qué hace cuando recibe un mensaje».