Langflow - Construtor Visual de Agentes IA e RAG
Langflow é um construtor visual open-source baseado em Python para aplicações LLM. Você monta agentes, cadeias e pipelines RAG arrastando e conectando componentes em uma tela, testa-os em um playground ao vivo e depois expõe qualquer fluxo como um endpoint de API ou MCP. É agnóstico de modelo (OpenAI, Anthropic, modelos locais via Ollama, etc.) e se baseia no ecossistema LangChain.
Instalação
| Método | Comando |
|---|
| uv (recomendado) | uv pip install langflow |
| pip | pip install langflow |
| Executa após instalar | langflow run (ou python -m langflow run) |
| uvx (sem instalar) | uvx langflow run |
| Docker | docker run -it --rm -p 7860:7860 langflowai/langflow:latest |
| Aplicativo Desktop | Baixe do site oficial (macOS/Windows) |
Requer Python 3.10–3.13. Após langflow run, abra http://localhost:7860.
Executando o Servidor
| Comando | Descrição |
|---|
langflow run | Inicia a UI + API em 127.0.0.1:7860 |
langflow run --host 0.0.0.0 --port 7860 | Liga a todas as interfaces / porta customizada |
langflow run --env-file .env | Carrega variáveis de ambiente de um arquivo |
langflow run --dev | Modo desenvolvedor/hot-reload |
langflow --help | Referência completa da CLI |
langflow api-key | Cria uma chave de API para acesso programático |
langflow migration | Executa migrações de banco de dados |
Conceitos Principais
| Termo | Significado |
|---|
| Flow | Um gráfico de componentes conectados = um aplicativo/pipeline |
| Componente | Um nó (modelo, prompt, retriever, ferramenta, agente, I/O) |
| Porta / Edge | Conexão tipada entre componentes entrada/saída |
| Playground | Painel integrado chat/executar para testar um fluxo interativamente |
| Projeto | Um workspace agrupando múltiplos fluxos |
| Variáveis Globais | Segredos armazenados (chaves de API) reutilizáveis entre fluxos |
Blocos de Construção
| Categoria | Exemplos |
|---|
| Entradas/Saídas | Chat Input, Chat Output, Text Input |
| Modelos | OpenAI, Anthropic, Google, Ollama, Groq, HuggingFace |
| Prompts | Prompt template, system message |
| Dados / RAG | File loader, URL, Split Text, Vector Store (Chroma, Qdrant, Astra, pgvector), Embeddings |
| Agentes | Componente Agent com tool calling |
| Ferramentas | Web search, Python REPL, API request, MCP tools |
| Lógica | Conditional router, loop, pass-through |
Fluxo RAG Típico
File / URL → Split Text → Embeddings → Vector Store (ingest)
Chat Input → Vector Store (search) → Prompt → Model → Chat Output
Construa na tela, abra o Playground, faça uma pergunta e Langflow executa o gráfico de ponta a ponta.
Usando Fluxos do Código
Todo fluxo obtém uma API auto-gerada. Pela UI, clique em API (ou Share → API access) para copiar um trecho:
import requests
url = "http://localhost:7860/api/v1/run/<FLOW_ID>"
payload = {"input_value": "O que está em meus docs?", "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())
# Mesma chamada com 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":"olá","output_type":"chat","input_type":"chat"}'
Integração MCP
| Capacidade | Como |
|---|
| Expõe fluxos como ferramentas MCP | Cada Projeto envia um servidor MCP; aponte um cliente MCP (Claude Desktop, Cursor) para ele |
| Consome ferramentas MCP externas | Adiciona o componente MCP Tools e conecta uma URL/comando de servidor |
Ambiente & Configuração
| Variável | Propósito |
|---|
LANGFLOW_HOST / LANGFLOW_PORT | Endereço de ligação e porta |
LANGFLOW_DATABASE_URL | Usa Postgres em vez do SQLite padrão |
LANGFLOW_AUTO_LOGIN=false | Requer login (multi-usuário) |
LANGFLOW_SUPERUSER / LANGFLOW_SUPERUSER_PASSWORD | Semeia uma conta admin |
LANGFLOW_SECRET_KEY | Chave de criptografia para credenciais armazenadas |
OPENAI_API_KEY, ANTHROPIC_API_KEY, … | Chaves de provedor (ou defina como Variáveis Globais) |
Importar / Exportar
| Ação | Como |
|---|
| Exporta um fluxo | Menu de Fluxo → Export → .json |
| Importa um fluxo | New → Import o .json |
| Controle de versão | Commit JSON de fluxo exportado para seu repo |
Fluxos de Trabalho Comuns
# Gira para uma equipe em um servidor com Postgres + auth
LANGFLOW_DATABASE_URL=postgresql://user:pass@db:5432/langflow \
LANGFLOW_AUTO_LOGIN=false \
langflow run --host 0.0.0.0 --port 7860
# Trial local efêmero, sem instalar
uvx langflow run
Langflow vs Dify vs n8n
| Aspecto | Langflow | Dify | n8n |
|---|
| Foco | Fluxos & agentes estilo LangChain | Plataforma app LLMOps (RAG, prompts) | Automação geral + nós IA |
| Estilo | Tela visual | Estúdio de app + workflow | Automação de workflow |
| Endpoints | API + MCP | API + chat apps | Webhooks/automação |
| Melhor para | Prototipagem de grafos de agente/RAG | Entrega de apps LLM com ops | Cola entre 500+ serviços |
Recursos