from smolagents import ( CodeAgent, DuckDuckGoSearchTool, TransformersModel ) # ====================================================== # MODELO COMPARTIDO # ====================================================== shared_model = TransformersModel( model_id="Qwen/Qwen2.5-1.5B-Instruct", max_new_tokens=256, dtype="auto" ) COMMON_IMPORTS = [ "json", "math", "statistics" ] # ====================================================== # AGENTES # ====================================================== research_agent = CodeAgent( name="research_agent", description="Especialista en investigación web.", tools=[DuckDuckGoSearchTool()], model=shared_model, verbosity_level=0, additional_authorized_imports=COMMON_IMPORTS ) hypothesis_agent = CodeAgent( name="hypothesis_agent", description="Genera hipótesis y oportunidades.", tools=[], model=shared_model, verbosity_level=0, additional_authorized_imports=COMMON_IMPORTS ) critic_agent = CodeAgent( name="critic_agent", description="Evalúa riesgos y debilidades.", tools=[], model=shared_model, verbosity_level=0, additional_authorized_imports=COMMON_IMPORTS ) strategy_agent = CodeAgent( name="strategy_agent", description="Diseña estrategias accionables.", tools=[], model=shared_model, verbosity_level=0, additional_authorized_imports=COMMON_IMPORTS ) # ====================================================== # MANAGER # ====================================================== manager_agent = CodeAgent( name="manager_agent", description="Coordina todos los agentes.", tools=[], model=shared_model, managed_agents=[ research_agent, hypothesis_agent, critic_agent, strategy_agent ], verbosity_level=1, max_steps=6, additional_authorized_imports=COMMON_IMPORTS ) # ====================================================== # MAIN # ====================================================== def run_multiagent_system(task): final_task = f""" OBJETIVO: {task} FLUJO: 1. Investigar evidencia y tendencias 2. Generar hipótesis estratégicas 3. Evaluar riesgos y debilidades 4. Construir estrategia operativa ENTREGA: - Clara - Ejecutiva - Accionable """ result = manager_agent.run(final_task) return str(result)