Skip to content

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

Flujo de datos

  1. El usuario ejecuta hermes (CLI) o el gateway arranca con main() (run_agent.py:22965).
  2. El proceso pasa por hermes_bootstrap.py para ajustar rutas/entorno, y entra al CLI main:6434 o al bucle del gateway.
  3. Se construye una instancia de AIAgent:400; su __init__ reenvía a init_agent:276.
  4. init_agent resuelve provider, toolsets, umbral de compresión, extra_body de provider personalizado, etc., y ensambla un objeto agent ejecutable.
  5. El gateway, dentro de GatewayRunner en gateway/run.py, mantiene ese agent y le pasa cada mensaje entrante a run_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».

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