AIAgent / init_agent
源码版本v2026.7.20
Responsabilidad
init_agent es el «taller de ensamblaje» del agent: inyecta en la instancia del agent la configuración de provider, toolsets, umbral de compresión, extra_body de provider personalizado, componentes de memoria y aprendizaje, etc., para que disponga de todas las dependencias necesarias para correr una ronda de conversación. La clase AIAgent es solo la cáscara del objeto que init_agent devuelve.
Archivos clave
class AIAgent:400-497— definición de la clase; los campos son la configuración__init__ reenvía:497-560—from agent.agent_init import init_agent; init_agent(...)def init_agent:276— entrada de la función principal de ensamblajehelper extra_body de provider personalizado:183-275—_normalized_custom_base_url/_custom_provider_model_matches/_merge_custom_provider_extra_body_resolve_compression_threshold:93-127— resolución del umbral de compresiónzona de funciones auxiliares:62-91—_ra, autoraise notice, etc.
Flujo de datos
AIAgent.__init__(run_agent.py:423) recoge los parámetros de construcción sin modificarlos.- Llama a
init_agent:276, que en orden:- resuelve el nombre y
base_urldel provider (agent/agent_init.py:183) - fusiona el
extra_bodydel provider personalizado (agent/agent_init.py:257) - resuelve el umbral de compresión (
agent/agent_init.py:93) - inyecta toolsets, gestor de memoria, grafo de aprendizaje, etc.
- resuelve el nombre y
- El agent ensamblado expone
run_conversation(run_agent.py:6350), que reenvía alagent/conversation_loop.py:588a nivel de módulo. - El
GatewayRunnerdel gateway (gateway/run.py:3029) mantiene el agent ensamblado y le entrega los mensajes entrantes.
Resumen
init_agent es la capa de traducción de configuración → runtime; todas las decisiones del arranque (elección de provider, estrategia de compresión, activación de toolsets) se fijan aquí de una sola vez. Después, el agent entra en el ritmo sin estado de «recibe mensaje → corre bucle» y no vuelve a tocar la configuración.