La era de la Inteligencia Artificial ya no depende exclusivamente de la nube. Hoy, el poder es soberano, privado y 100% local.
En este artículo, te guiaré paso a paso por el desarrollo de una Agencia de Marketing AI completa, construida con Python, LangGraph y Ollama.
Descubrirás cómo orquestar un equipo de agentes autónomos un Investigador, un Redactor y un Supervisor que trabajan en perfecta sintonía desde tu propia máquina, sin suscripciones ni fugas de datos.
💡 ¿Por qué una solución Local y Open Source?
Antes de entrar en el código (Enlace del repositorio al final del post), es vital entender las tres ventajas clave de esta arquitectura:
Privacidad Absoluta (Soberanía de Datos): Tus investigaciones y borradores nunca salen de tu red local. Al usar modelos locales con Ollama, garantizas que la información sensible de tu negocio o clientes permanezca segura y bajo tu control total.
Personalización Total: A diferencia de las herramientas cerradas, aquí tú controlas el "cerebro". Puedes ajustar la "creatividad" del redactor o cambiar el idioma de la investigación simplemente modificando archivos de Python.
Fácil Despliegue: Gracias a gestores modernos como uv, puedes clonar este repositorio y tener tu agencia funcionando en cuestión de minutos, sin las complicaciones habituales de los entornos virtuales.
🏗️ La Arquitectura: LangGraph + Ollama
El proyecto implementa un patrón de Supervisor/Worker mediante un Grafo de Estado (StateGraph). Imagina una oficina real: tienes trabajadores especializados y un jefe que coordina el flujo de trabajo.
- Ollama: Es el motor de inferencia que permite ejecutar modelos como Llama 3.1 o Mistral de forma local.
- LangGraph: Es el director de orquesta. A diferencia de una cadena lineal, permite crear ciclos donde los agentes pueden interactuar, corregirse y colaborar hasta completar la tarea.
Paso 1: El Cerebro (utils/llm.py)
Aquí configuramos la conexión con Ollama utilizando [ChatOllama(https://docs.langchain.com/oss/python/integrations/chat/ollama). Lo más interesante es que adaptamos el modelo según su función mediante el parámetro de temperatura (que controla la aleatoriedad de la respuesta):
# utils/llm.py
from langchain_ollama import ChatOllama
MODEL_NAME = "llama3.1"
# 1. Modelo preciso (Temperatura 0) para el Supervisor y decisiones lógicas.
llm = ChatOllama(model=MODEL_NAME, temperature=0)
# 2. Modelo creativo (Temperatura 0.7) para el Redactor (Textos más fluidos).
llm_creative = ChatOllama(model=MODEL_NAME, temperature=0.7)
# 3. Modelo forzado a JSON para decisiones estructuradas del Supervisor.
llm_json = ChatOllama(model=MODEL_NAME, format="json", temperature=0)
Paso 2: La Memoria del Equipo (agent/state.py)
Para que los agentes colaboren, necesitan una "pizarra" compartida. Definimos un AgentState que utiliza operator.add para acumular el historial de mensajes. Esto asegura que el Redactor pueda consultar toda la información que el Investigador ha recopilado previamente.
Paso 3: Los Agentes Especializados (agent/nodes.py)
Cada "empleado" digital tiene una lógica específica:
-
🔍 Investigador: Utiliza una herramienta de búsqueda en Wikipedia (
WikipediaQueryRun) configurada para extraer hasta 5000 caracteres de información real. Esto es vital para evitar "alucinaciones" y basar el contenido solo en los datos. - ✍️ Redactor: Funciona como un "Escritor Técnico Senior". Recibe la investigación y genera artículos estructurados en Markdown, incluyendo títulos atractivos (H1), subtítulos (H2) y emojis para mejorar la legibilidad.
- 🧠 Supervisor: Analiza el flujo. Si detecta que faltan datos, delega al Investigador; si ya hay suficiente información, pasa la tarea al Redactor.
Paso 4: El Flujo de Trabajo (agent/graph.py)
LangGraph une todas las piezas. Definimos que el punto de entrada es el Supervisor, establecemos las rutas condicionales y nos aseguramos de que el proceso termine (END) una vez que el Redactor entrega el artículo final.
💻 Interfaz y Experiencia de Usuario (main.py)
Para que la herramienta sea intuitiva, implementé una Interfaz de Línea de Comandos (CLI) moderna con la librería Rich. Esto permite visualizar en tiempo real, mediante paneles de colores y animaciones, qué agente está trabajando en cada momento. El resultado final se presenta elegantemente en formato Markdown dentro de la propia terminal.
🚀 Cómo desplegar tu propia agencia en 2 minutos
Este proyecto está diseñado para ser clonado y ejecutado instantáneamente.
Prerrequisitos:
- Python 3.10 o superior.
-
Ollama instalado y con el modelo descargado (
ollama pull llama3.1).
Instalación rápida:
# 1. Clonar el repositorio
git clone https://github.com/jmatias2411/agentes-langgraph-diciembre.git
cd agentes-langgraph-diciembre
# 2. Sincronizar entorno con uv (instala dependencias como langgraph y rich)
uv sync
# 3. Ejecutar la agencia
uv run main.py
Vista Previa:
🌟 Conclusión
Este proyecto es una prueba de concepto poderosa: podemos desarrollar soluciones de Marketing AI de alto nivel sin depender de nubes externas ni suscripciones mensuales. Tienes la libertad absoluta de modificar los agentes, cambiar los modelos por otros como Mistral o DeepSeek, y adaptar los prompts a tu propia voz de marca.
Te invito a explorar el código, hacer un fork y contribuir con tus propios agentes especializados. ¡La IA local es el primer paso hacia la verdadera autonomía digital!
Contenido redactado con asistencia de IA. Arquitectura visual e imágenes generadas por modelos de difusión para ilustrar el flujo de trabajo.




Top comments (0)