Bucle principal del agente
Responsabilidad
run_conversation es el corazón de Hermes: recibe un mensaje del usuario, llama al modelo y a las herramientas de forma repetida hasta que se agota el presupuesto de iteración o la tarea se completa. Coordina también la construcción del contexto, el despacho de herramientas, la decisión de parada y el fallback ante fallos.
El archivo ocupa unas 5800 líneas con alta densidad lógica; esta página solo cubre la línea principal; los detalles quedan en subpáginas.
Archivos clave
entrada run_conversation:588-720— firma, inicialización y preparación previa al buclebucle while principal:721-760— condiciónapi_call_count < agent.max_iterations and agent.iteration_budget.remaining > 0, incluye grace callsubbucle de reintentos de API:1227-1280—while retry_count < max_retriesbuild_turn_context— ensamblaje del contexto de cada turnoprompt_builder— composición del system promptmoa_loop— ruta de agregación Mixture-of-Agentscontext_compressor— compresión del historial al alcanzar el umbralIterationBudget— núcleo del conteo de presupuesto
Flujo de datos
run_agent.py AIAgentes un reenviador fino; la inyección de dependencias real ocurre eninit_agent.- El llamador pasa
user_message;run_conversationprimero pasa porbuild_turn_contextpara ensamblar el contexto del turno (api_messages). - Entra al bucle
whileprincipal: comprobar interrupciones → decrementar presupuesto (iteration_budget.consume()) → construir/sanitizarapi_messages→ precompresión → vaciar texto/steer→ agregación MoA → entrar al subbucle de reintentos de API. - Tras la respuesta del modelo, valida y procesa
finish_reason; en caso de fallo, ejecutaagent._try_activate_fallback(). - Si se alcanza el umbral de compresión, llama a
context_compressorpara liberar espacio. - Al salir del bucle (presupuesto agotado / tarea completada / interrupción) devuelve el mensaje final, que la capa de gateway entrega (ver capa de gateway).
Resumen
El bucle principal solo orquesta: impulso de turnos, control de presupuesto, reintentos y fallback. La capacidad real viene de las herramientas de la capa de capacidades y las habilidades; la entrega multiplataforma la gestiona la capa de gateway; la autoevolución la impulsa el bucle de aprendizaje.
Para la presentación oficial en chino, ver README.zh-CN y website/i18n/zh-Hans/.