Cómo construí sistemas inteligentes multiagente con AutoGen, LangChain y Hugging Face para demostrar flujos de trabajo prácticos de IA agente

En este tutorial, nos sumergimos en la esencia de Agentic AI uniendo LangChain, AutoGen y Hugging Face en un marco único y completamente funcional que se ejecuta sin API pagas. Comenzamos configurando un proceso liviano de código abierto y luego avanzamos a través del razonamiento estructurado, flujos de trabajo de varios pasos e interacciones colaborativas de agentes. A medida que pasamos de cadenas LangChain a sistemas simulados de múltiples agentes, experimentamos cómo el razonamiento, la planificación y la ejecución pueden combinarse perfectamente para formar un comportamiento autónomo e inteligente, completamente dentro de nuestro control y entorno. Consulta los CÓDIGOS COMPLETOS aquí.

importar advertencias advertencias.filterwarnings(‘ignorar’) al escribir import List, Dict importar autogen desde langchain.prompts importar PromptTemplate desde langchain.chains importar LLMChain desde langchain_community.llms importar HuggingFacePipeline desde transformadores importar tubería importar json print(“🚀 Cargando modelos…\n”) pipe = pipeline( “text2text-generación”, model=”google/flan-t5-base”, max_length=200, temperatura=0.7 ) llm = HuggingFacePipeline(pipeline=pipe) print(“¡Modelos cargados!\n”)

Comenzamos configurando nuestro entorno e incorporando todas las bibliotecas necesarias. Inicializamos un canal Hugging Face FLAN-T5 como nuestro modelo de idioma local, asegurando que pueda generar texto coherente y contextualmente rico. Confirmamos que todo se carga correctamente, sentando las bases para los experimentos agentes que siguen. Consulta los CÓDIGOS COMPLETOS aquí.

def demo_langchain_basics(): print(“=”*70) print(“DEMO 1: LangChain – Cadenas de mensajes inteligentes”) print(“=”*70 + “\n”) mensaje = PromptTemplate( input_variables=[“task”]template=”Tarea: {task}\n\nProporcione una solución detallada paso a paso:” ) chain = LLMChain(llm=llm, Prompt=prompt) task = “Crear una función de Python para calcular la secuencia de Fibonacci” print(f”Tarea: {task}\n”) resultado = chain.run(task=task) print(f”LangChain Respuesta:\n{resultado}\n”) print(” ✓ Demostración de LangChain completa\n”) def demo_langchain_multi_step(): print(“=”*70) print(“DEMO 2: LangChain – Razonamiento de varios pasos”) print(“=”*70 + “\n”) planificador = PromptTemplate( input_variables=[“goal”]template=”Divida este objetivo en 3 pasos: {meta}” ) executor = PromptTemplate( input_variables=[“step”]template=”Explique cómo ejecutar este paso: {paso}” ) plan_chain = LLMChain(llm=llm, Prompt=planner) exec_chain = LLMChain(llm=llm, Prompt=executor) objetivo = “Construir un modelo de aprendizaje automático” print(f”Objetivo: {objetivo}\n”) plan = plan_chain.run(goal=objetivo) print(f”Plan:\n{plan}\n”) print(“Ejecutando el primer paso…”) ejecución = exec_chain.run(step=”Recopilar y preparar datos”) print(f”Ejecución:\n{ejecución}\n”) print(” ✓ Razonamiento de varios pasos completo\n”)

Exploramos las capacidades de LangChain mediante la construcción de plantillas de indicaciones inteligentes que permiten a nuestro modelo razonar a través de las tareas. Construimos tanto una cadena simple de un paso como un flujo de razonamiento de varios pasos que dividen los objetivos complejos en subtareas claras. Observamos cómo LangChain permite el pensamiento estructurado y convierte instrucciones simples en respuestas detalladas y procesables. Consulta los CÓDIGOS COMPLETOS aquí.

clase SimpleAgent: def __init__(self, nombre: str, rol: str, llm_pipeline): self.name = nombre self.role = rol self.pipe = llm_pipeline self.memory = []
def proceso(self, mensaje: str) -> str: Prompt = f”Usted es un {self.role}.\nUsuario: {mensaje}\nSu respuesta:” respuesta = self.pipe(prompt, max_length=150)[0][‘generated_text’]

self.memory.append({“usuario”: mensaje, “agente”: respuesta}) return respuesta def __repr__(self): return f”Agente({self.name}, role={self.role})” def demo_simple_agents(): print(“=”*70) print(“DEMO 3: Sistema simple multiagente”) print(“=”*70 + “\n”) investigador = SimpleAgent(“Investigador”, “especialista en investigación”, pipe) codificador = SimpleAgent(“Codificador”, “Desarrollador Python”, pipe) revisor = SimpleAgent(“Revisor”, “revisor de código”, pipe) print(“Agentes creados:”, investigador, codificador, revisor, “\n”) tarea = “Crear una función para ordenar una lista” print(f”Tarea: {tarea}\n”) print(f”[{researcher.name}] Investigando…”) investigación = investigador.proceso(f”Cuál es el mejor enfoque para: {tarea}”) print(f”Investigación: {investigación[:100]}….\n”) imprimir(f”[{coder.name}] Codificación…”) código = coder.process(f”Escribir código Python en: {tarea}”) print(f”Código: {código[:100]}….\n”) imprimir(f”[{reviewer.name}] Revisando…”) review = reviewer.process(f”Revise este enfoque: {código[:50]}”) print(f”Revisión: {revisión[:100]}….\n”) print(” ✓ Flujo de trabajo multiagente completo\n”)

Diseñamos agentes livianos impulsados ​​por el mismo proceso de Hugging Face, a cada uno de los cuales se le asigna una función específica, como investigador, codificador o revisor. Permitimos que estos agentes colaboren en una tarea de codificación simple, intercambiando información y aprovechando los resultados de cada uno. Somos testigos de cómo un flujo de trabajo coordinado de múltiples agentes puede emular el trabajo en equipo, la creatividad y la autoorganización en un entorno automatizado. Consulta los CÓDIGOS COMPLETOS aquí.

def demo_autogen_conceptual(): print(“=”*70) print(“DEMO 4: Conceptos de AutoGen (Demostración conceptual)”) print(“=”*70 + “\n”) agent_config = { “agentes”: [
{“name”: “UserProxy”, “type”: “user_proxy”, “role”: “Coordinates tasks”},
{“name”: “Assistant”, “type”: “assistant”, “role”: “Solves problems”},
{“name”: “Executor”, “type”: “executor”, “role”: “Runs code”}
]”flujo de trabajo”: [
“1. UserProxy receives task”,
“2. Assistant generates solution”,
“3. Executor tests solution”,
“4. Feedback loop until complete”
]
} print(json.dumps(agent_config, indent=2)) print(“\n📝 Características clave de AutoGen:”) print(” • Conversaciones de chat de agentes automatizadas”) print(” • Capacidades de ejecución de código”) print(” • Soporte humano-in-the-loop”) print(” • Colaboración multiagente”) print(” • Llamada de herramienta/función\n”) print(” ✓ Conceptos de AutoGen explicados\n”) clase MockLLM: def __init__(self): self.responses = { “code”: “def fibonacci(n):\n if n <= 1:\n return n\n return fibonacci(n-1) + fibonacci(n-2)", "explain": "Esta es una implementación recursiva de la secuencia de Fibonacci.", "review": "El código es correcto pero podría ser optimizado con memorización.", "default": "Entiendo. Déjame ayudarte con esa tarea." } def generar(self, mensaje: str) -> str: Prompt_lower = Prompt.lower() si “código” en Prompt_lower o “función” en Prompt_lower: devolver self.responses[“code”]
elif “explicar” en el mensaje_inferior: devolver respuestas propias[“explain”]
elif “revisar” en Prompt_lower: devolver respuestas propias[“review”]
devolver respuestas propias[“default”]

def demo_autogen_with_mock(): print(“=”*70) print(“DEMO 5: AutoGen con backend LLM personalizado”) print(“=”*70 + “\n”) mock_llm = MockLLM() conversación = [
(“User”, “Create a fibonacci function”),
(“CodeAgent”, mock_llm.generate(“write code for fibonacci”)),
(“ReviewAgent”, mock_llm.generate(“review this code”)),
]
print(“Conversación multiagente simulada de AutoGen:\n”) para el orador, mensaje en la conversación: print(f”[{speaker}]”) print(f”{mensaje}\n”) print(” ✓ Simulación AutoGen completa\n”)

Ilustramos la idea central de AutoGen definiendo una configuración conceptual de agentes y su flujo de trabajo. Luego simulamos una conversación estilo AutoGen utilizando un LLM simulado personalizado que genera respuestas realistas pero controlables. Nos damos cuenta de cómo este marco permite que múltiples agentes razonen, prueben y refinen ideas de manera colaborativa sin depender de ninguna API externa. Consulta los CÓDIGOS COMPLETOS aquí.

def demo_hybrid_system(): print(“=”*70) print(“DEMO 6: Hybrid LangChain + Sistema multiagente”) print(“=”*70 + “\n”) Reasoning_prompt = PromptTemplate( input_variables=[“problem”]template=”Analice este problema: {problema}\n¿Cuáles son los pasos clave?” ) cadena_razonamiento = LLMChain(llm=llm, solicitud=prompt_razonamiento) planificador = SimpleAgent(“Planificador”, “planificador estratégico”, tubería) ejecutor = SimpleAgent(“Ejecutor”, “ejecutor de tareas”, tubería) problema = “Optimizar una consulta de base de datos lenta” print(f”Problema: {problema}\n”) print(“[LangChain] Analizando problema…”) análisis = razonamiento_chain.run(problema=problema) print(f”Análisis: {análisis[:120]}….\n”) imprimir(f”[{planner.name}] Creando plan…”) plan = planificador.proceso(f”Planificar cómo: {problema}”) print(f”Plan: {plan[:120]}….\n”) imprimir(f”[{executor.name}] Ejecutando…”) resultado = executor.process(f”Ejecutar: Agregar índices de base de datos”) print(f”Resultado: {resultado[:120]}….\n”) print(“✓ Sistema híbrido completo\n”) if __name__ == “__main__”: print(“=”*70) print(“🤖 TUTORIAL AVANZADO DE IA AGÉNTICA”) print(“AutoGen + LangChain + HuggingFace”) print(“=”*70 + “\n”) demo_langchain_basics() demo_langchain_multi_step() demo_simple_agents() demo_autogen_conceptual() demo_autogen_with_mock() demo_hybrid_system() print(“=”*70) print(“🎉 TUTORIAL COMPLETO!”) print(“=”*70) print(“\n📚 Lo que aprendiste:”) print(” ✓ LangChain pronta ingeniería y chains”) print(” ✓ Razonamiento de varios pasos con LangChain”) print(” ✓ Creación de sistemas personalizados de múltiples agentes”) print(” ✓ Arquitectura y conceptos de AutoGen”) print(” ✓ Combinación de LangChain + agentes”) print(” ✓ Uso de modelos HuggingFace (¡no se necesita API!)”) print(“\n💡 Conclusión clave:”) print(” ¡Puedes crear potentes sistemas de IA agentes sin API costosas!”) print(” Combine las cadenas de LangChain con arquitecturas multiagente para”) print(” sistemas de IA autónomos e inteligentes.”) print(“=”*70 + “\n”)

Combinamos el razonamiento estructurado de LangChain con nuestro sistema agente simple para crear un marco inteligente híbrido. Permitimos que LangChain analice los problemas mientras los agentes planifican y ejecutan las acciones correspondientes en secuencia. Concluimos la demostración ejecutando todos los módulos juntos, mostrando cómo las herramientas de código abierto pueden integrarse perfectamente para construir sistemas de IA autónomos y adaptables.

En conclusión, somos testigos de cómo Agentic AI se transforma del concepto a la realidad a través de un diseño modular simple. Combinamos la profundidad del razonamiento de LangChain con el poder cooperativo de los agentes para construir sistemas adaptables que piensan, planifican y actúan de forma independiente. El resultado es una clara demostración de que se pueden construir sistemas de IA autónomos y potentes sin infraestructura costosa, aprovechando herramientas de código abierto, diseño creativo y un poco de experimentación.

Consulta los CÓDIGOS COMPLETOS aquí. No dude en consultar nuestra página de GitHub para tutoriales, códigos y cuadernos. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 100.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.

Asif Razzaq es el director ejecutivo de Marktechpost Media Inc.. Como emprendedor e ingeniero visionario, Asif está comprometido a aprovechar el potencial de la inteligencia artificial para el bien social. Su esfuerzo más reciente es el lanzamiento de una plataforma de medios de inteligencia artificial, Marktechpost, que se destaca por su cobertura en profundidad del aprendizaje automático y las noticias sobre aprendizaje profundo que es técnicamente sólida y fácilmente comprensible para una amplia audiencia. La plataforma cuenta con más de 2 millones de visitas mensuales, lo que ilustra su popularidad entre el público.

🙌 Siga MARKTECHPOST: agréguenos como fuente preferida en Google.