Langflow - Hoja de Trucos del Constructor Visual de Agentes de IA y RAG
Langflow es un constructor visual de código abierto basado en Python para aplicaciones de LLM. Ensamblas agentes, cadenas y pipelines RAG arrastrando y conectando componentes en un lienzo, los pruebas en un área de juego en vivo, y luego expones cualquier flujo como un punto final API o MCP. Es agnóstico en cuanto al modelo (OpenAI, Anthropic, modelos locales a través de Ollama, etc.) y se construye sobre el ecosistema de LangChain.
Instalación
| Método | Comando |
|---|
| uv (recomendado) | uv pip install langflow |
| pip | pip install langflow |
| Ejecutar después de instalar | langflow run (o python -m langflow run) |
| uvx (sin instalar) | uvx langflow run |
| Docker | docker run -it --rm -p 7860:7860 langflowai/langflow:latest |
| Aplicación de escritorio | Descarga desde el sitio oficial (macOS/Windows) |
Requiere Python 3.10–3.13. Después de langflow run, abre http://localhost:7860.
Ejecutando el Servidor
| Comando | Descripción |
|---|
langflow run | Inicia la interfaz de usuario + API en 127.0.0.1:7860 |
langflow run --host 0.0.0.0 --port 7860 | Se vincula a todas las interfaces / puerto personalizado |
langflow run --env-file .env | Carga variables de entorno de un archivo |
langflow run --dev | Modo desarrollador/recarga en caliente |
langflow --help | Referencia completa de CLI |
langflow api-key | Crea una clave API para acceso programático |
langflow migration | Ejecuta migraciones de base de datos |
Conceptos Principales
| Término | Significado |
|---|
| Flujo | Un gráfico de componentes conectados = una aplicación/pipeline |
| Componente | Un nodo (modelo, prompt, recuperador, herramienta, agente, E/S) |
| Puerto / Arista | Conexión tipada entre componentes |
| Área de Juego | Panel integrado chat/ejecutar para probar un flujo interactivamente |
| Proyecto | Un espacio de trabajo que agrupa múltiples flujos |
| Variables Globales | Secretos almacenados (claves API) reutilizables en flujos |
Bloques de Construcción
| Categoría | Ejemplos |
|---|
| Entradas/Salidas | Chat Input, Chat Output, Text Input |
| Modelos | OpenAI, Anthropic, Google, Ollama, Groq, HuggingFace |
| Prompts | Plantilla de prompt, mensaje del sistema |
| Datos / RAG | Cargador de archivos, URL, Split Text, Vector Store (Chroma, Qdrant, Astra, pgvector), Embeddings |
| Agentes | Componente agente con llamadas a herramientas |
| Herramientas | Búsqueda web, REPL de Python, solicitud de API, herramientas MCP |
| Lógica | Enrutador condicional, bucle, paso a través |
Flujo RAG Típico
Archivo / URL → Split Text → Embeddings → Vector Store (ingestión)
Chat Input → Vector Store (búsqueda) → Prompt → Modelo → Chat Output
Constrúyelo en el lienzo, abre el Área de Juego, haz una pregunta, y Langflow ejecuta el gráfico de extremo a extremo.
Usando Flujos desde Código
Cada flujo obtiene una API autogenerada. Desde la interfaz de usuario, haz clic en API (o Compartir → Acceso API) para copiar un fragmento:
import requests
url = "http://localhost:7860/api/v1/run/<FLOW_ID>"
payload = {"input_value": "¿Qué hay en mis documentos?", "output_type": "chat", "input_type": "chat"}
headers = {"x-api-key": "<YOUR_API_KEY>", "Content-Type": "application/json"}
resp = requests.post(url, json=payload, headers=headers)
print(resp.json())
# Misma llamada con curl
curl -X POST "http://localhost:7860/api/v1/run/<FLOW_ID>" \
-H "x-api-key: <YOUR_API_KEY>" -H "Content-Type: application/json" \
-d '{"input_value":"hola","output_type":"chat","input_type":"chat"}'
Integración MCP
| Capacidad | Cómo |
|---|
| Expone flujos como herramientas MCP | Cada Proyecto envía un servidor MCP; apunta un cliente MCP (Claude Desktop, Cursor) a él |
| Consume herramientas MCP externas | Añade el componente MCP Tools y conecta una URL de servidor/comando |
Entorno y Configuración
| Variable | Propósito |
|---|
LANGFLOW_HOST / LANGFLOW_PORT | Dirección de vinculación y puerto |
LANGFLOW_DATABASE_URL | Usa Postgres en lugar del SQLite predeterminado |
LANGFLOW_AUTO_LOGIN=false | Requiere inicio de sesión (multiusuario) |
LANGFLOW_SUPERUSER / LANGFLOW_SUPERUSER_PASSWORD | Siembra una cuenta de administrador |
LANGFLOW_SECRET_KEY | Clave de cifrado para credenciales almacenadas |
OPENAI_API_KEY, ANTHROPIC_API_KEY, … | Claves de proveedor (o establece como Variables Globales) |
Importar / Exportar
| Acción | Cómo |
|---|
| Exportar un flujo | Menú de flujo → Exportar → .json |
| Importar un flujo | Nuevo → Importar el .json |
| Control de versiones | Confirma JSON de flujo exportado en tu repositorio |
Flujos de Trabajo Comunes
# Inicia para un equipo en un servidor con Postgres + autenticación
LANGFLOW_DATABASE_URL=postgresql://user:pass@db:5432/langflow \
LANGFLOW_AUTO_LOGIN=false \
langflow run --host 0.0.0.0 --port 7860
# Prueba local efímera, sin instalar
uvx langflow run
Langflow vs Dify vs n8n
| Aspecto | Langflow | Dify | n8n |
|---|
| Enfoque | Flujos y agentes estilo LangChain | Plataforma de LLMOps (RAG, prompts) | Automatización general + nodos de IA |
| Estilo | Lienzo visual | Estudio de aplicación + flujo | Automatización de flujo |
| Puntos finales | API + MCP | API + aplicaciones de chat | Webhooks/automatización |
| Mejor para | Prototipos de gráficos de agente/RAG | Entrega de aplicaciones de LLM con ops | Pegar entre 500+ servicios |
Recursos