The Forge AI · Informe Técnico

Fase 0 — Infraestructura Base

Todo lo que se construyó para que los agentes puedan operar: entorno, servicios, base de datos, monitoreo y conexiones entre fases.

10 servicios OK
1 WARN (opcional)
5 contenedores Docker
2 workflows N8N activos
24 tablas Supabase
📅 Ejecutada: 2026-05-13

¿Qué es la Fase 0?

Fase 0 es la cimentación. No genera ingresos directamente, pero sin ella ninguna de las fases siguientes puede funcionar. Es el equivalente a instalar la electricidad, el agua y las tuberías antes de construir la casa.

🏗️

Infraestructura local

5 servicios en Docker que replican en tu laptop lo que en producción correría en servidores.

🔌

Conexiones verificadas

Cada credencial fue probada contra el servicio real. Nada quedó como "pendiente" o "PENDIENTE" en el .env.

🛡️

Blindaje operacional

Pre-commit hook, backup nocturno, health check automatizado y contrato con SLA incorporado.

Contenedores Docker

Una sola red interna n8n_local_default conecta todos los servicios. Los contenedores se hablan entre sí por nombre (ej: postgres, redis) sin exponer puertos innecesarios al exterior.

Red Docker — n8n_local_default
n8n_local_default (externa)
n8n
n8nio/n8n
:5678
postgres
postgres:15-alpine
:5432
redis
redis:7-alpine
:6379
evolution-api
evoapicloud/v2.3.7
:8080
qdrant ✦
qdrant:v1.14.1
:6333 · :6334
Dependencias de arranque
redis & postgres → n8n
postgres → evolution-api
qdrant → independiente
Volúmenes persistentes
C:/n8n_local → workflows N8N
redis_data → sesiones y debounce
postgres_data → memoria agentes
evolution_instances → instancias WA
qdrant_storage → vectores Mem0
ServicioRolAccedido porDato que guarda
n8n Motor de automatización y webhooks Navegador, Evolution API, agentes Python Workflows, credenciales, ejecuciones
postgres Base de datos relacional local N8N (nodo PostgreSQL), Evolution API Historial de chats WA, memoria de sesión N8N
redis Estado de sesión y debounce N8N internamente Estado de conversaciones activas, colas
evolution-api Gateway WhatsApp (envío y recepción) N8N via webhook, agentes Python Instancias WA, sesiones QR
qdrant ✦ Vector store para memoria semántica Mem0 (Python), agentes CrewAI Embeddings de memorias de agentes por industria

✦ Agregado en Fase 0 (no estaba en el plan original)

Supabase

La fuente de verdad de toda la agencia. Todos los agentes leen y escriben aquí. El proyecto está en us-east-1 (aws-1), accedido via pooler de conexiones.

Schema principal — 001_schema_v3.sql

Clientes y proyectos
users · clients · projects · project_checkpoints · products
Leads y ventas
leads · lead_messages · payments · meta_progress
AI y calidad
agent_memories · quality_audits · cost_tracking · assets
Operacional
site_monitoring · motivational_messages

Blindaje — 002_versioning_blindaje.sql

Budget Gate
Función check_and_decrement_budget() bloquea operaciones costosas cuando el presupuesto está agotado. Vista project_budget_status.
Versionado con historial
project_context con trigger automático que mueve versiones anteriores a project_context_history. Nunca se pierde contexto.
Vision Sanity Check
Columnas extra en leads + tabla scraper_health para verificar que el sistema de scraping está funcionando correctamente.
Vistas disponibles para queries rápidas
project_costs lead_pipeline current_month_revenue clients_with_debt project_budget_status

N8N — Workflows activos

N8N es el cerebro de orquestación. Recibe webhooks, ejecuta lógica condicional, llama a APIs y notifica a Telegram. Corre en localhost:5678 (siempre local, nunca via URL pública para checks internos).

● ACTIVO NCyyhvQBeytdX8BU

Forge — Smoke Test

Monitoreo automático cada 6 horas. Chequea N8N, Evolution API y Supabase en paralelo. Reporta el estado a Telegram.

Flujo
Cron 6h
3 checksen paralelo
Reporte
Telegram
● ACTIVO 7QTFPppsb7PXX0BE

Forge — Telegram Checkpoint Handler

Escucha mensajes de Misael en Telegram. Procesa aprobaciones y rechazos de checkpoints del pipeline. Solo responde al chat_id autorizado.

/aprobar /rechazar [motivo] /status /help /cancelar
Al aprobar o rechazar → actualiza Supabase via RPC process_checkpoint_response → responde confirmación.
Credencial configurada en N8N
4BD4uwQT8ukFlnk2 — Forge Telegram Bot (telegramApi) — bot: @theforgeaii_bot

Mem0 + Qdrant — Memoria semántica

Los agentes de IA no olvidan entre conversaciones. Mem0 convierte hechos importantes en vectores y los guarda en Qdrant. Al siguiente proyecto, el agente ya sabe que "a los clientes de Caracas les gusta X" o "Misael no aprueba sites con más de 3 colores".

🧠

Mem0 v2.0.2

Librería Python que abstrae el vector store. Un agente hace mem0.add("el cliente prefiere diseño minimalista", user_id="cliente-123") y queda guardado.

📦

Qdrant v1.14.1

Base de datos vectorial corriendo en Docker. Puerto 6333 (REST + UI) y 6334 (gRPC). Colección forge_memories activa.

🔢

Gemini Embeddings

Modelo text-embedding-004 convierte texto en vectores de 768 dimensiones. Gratis hasta cuota de Gemini API.

Memorias base sembradas al inicializar
OKIdentidad del sistemaThe Forge AI, agencia digital, Caracas Venezuela
OKInfo de MisaelUsuario principal, aprueba checkpoints, zona horaria América/Caracas
OKSLA de checkpoints24h sin respuesta = aprobación automática
OKVideo default = falseVideo es upgrade de pago (+$50 al cliente). No incluir por defecto.
OKBudget gate activoVerificar presupuesto antes de operaciones costosas (Vertex AI)

Scripts del sistema

5 scripts Python + 1 batch para automatizar tareas operacionales. Todos en scripts/.

validate_env.py sin dependencias externas
Valida que el .env tiene todas las keys necesarias para Fase 0 antes de arrancar.
Lee el archivo línea por línea (stdlib puro). Verifica que ninguna key crítica tenga valor "PENDIENTE". Chequea que el service account JSON existe en disco. Resultado: [OK] Todas las keys de Fase 0 estan presentes.
health_check.py
--quick--notify
Verifica conectividad real con los 11 servicios del stack. No solo valida texto — hace llamadas HTTP y TCP reales.
Postgres (socket TCP) · Redis (PING/PONG) · Evolution API (HTTP + instancias) · N8N (healthz via localhost) · Supabase REST (query tabla users) · Telegram (getMe) · Cloudflare (tokens/verify) · GCP Service Account (JSON parse) · LangSmith (HTTP) · Vertex AI (--quick lo omite).

Fix clave: usa N8N_LOCAL_URL=http://localhost:5678, nunca N8N_URL (que va por Cloudflare Access y devuelve 403).
setup_mem0.py ejecutar una vez
Inicializa Mem0 con Qdrant local y Gemini embeddings. Siembra las 5 memorias base del sistema.
Crea las colecciones forge_memories y mem0migrations en Qdrant. Guarda la configuración en config/mem0_config.json con los user_ids por agente.
backup.py diario 3:00 AM
Backup nocturno automático a Supabase Storage. 4 operaciones en secuencia.
1. pg_dump de Postgres local → gzip → supabase/assets/backups/postgres/FECHA.sql.gz
2. Export workflows N8N via API → gzip → supabase/assets/backups/n8n/FECHA.json.gz
3. Instancias Evolution API → supabase/assets/backups/evolution/FECHA.json
4. Verificación de que .env.example no tiene keys reales

Notifica resultado completo a Telegram. Si la laptop explota, los datos están en Supabase.
install_hooks.sh seguridad git
Instala pre-commit hook que bloquea git commit si detecta archivos sensibles.
Bloquea: .env, config/*.json, patrones de JWT (eyJ), API keys de Cloudflare (cfat_, cfut_), tokens de LangSmith. Si intenta commitear un secreto, el commit falla con error descriptivo.

Cloudflare — Token forge-ai-master

Token de API creado específicamente para la agencia. 19 permisos cuidadosamente seleccionados para cubrir todas las fases sin dar acceso innecesario.

Permisos de Cuenta
EDITCloudflare Pages← crítico deploy
EDITWorkers Scripts
EDITWorkers KV Storage
EDITWorkers R2 Storage
EDITWorkers Observability
EDITAccess: Org. y grupos
READConfiguración de cuenta
Permisos de Zona (todas)
EDITDNS← crítico dominios
EDITConfiguración de zona
EDITSSL y certificados
EDITReglas de página
EDITWorkers Routes
PURGEPurga de caché

Health Check — Resultado final

Ejecutado el 2026-05-13 contra todos los servicios con credenciales reales.

OKPostgres local (:5432)Puerto accesible · 94ms
OKRedis local (:6379)PONG recibido · 343ms
OKEvolution API (:8080)HTTP 200 · 1 instancia activa · 2140ms
OKN8N Health (localhost)HTTP 200 · 2093ms
OKN8N APIWorkflows registrados · 3218ms
OKSupabase RESTHTTP 200 · tabla users OK · 1842ms
WARNSupabase DB (directa)psycopg2 no instalado — no es necesario (usamos REST)
OKTelegram Bot@theforgeaii_bot · The Forge AI · 2969ms
OKCloudflare APIToken forge-ai-master: active · 358ms
OKGCP Service Accountvertex-express@calculadoras-caracas · project OK
OKLangSmithHTTP 200 · trazabilidad activa · 562ms
10
OK
de 11 servicios verificados
1
WARN
psycopg2 (opcional)
0
FAIL
ningún servicio caído

Conexión con las fases siguientes

Cada pieza de Fase 0 fue diseñada para servir a una o más fases posteriores. Nada se construyó "por construir".

0
CERRADA

Fase 0 — Infraestructura base

Lo que acabas de leer. Todo el suelo sobre el que se construye el resto.

Docker ✓ Supabase 24 tablas ✓ N8N operativo ✓ Cloudflare ✓ Mem0 + Qdrant ✓ Telegram bot ✓ Backup nocturno ✓
SIGUIENTE

Fase 1 — Pipeline básico (primer cliente real)

Misael llena el brief de un cliente → los agentes generan el sitio → se despliega en Cloudflare Pages con dominio custom → Misael aprueba en Telegram.

Usa de Fase 0:
N8N webhook → trigger Supabase → guarda proyecto Telegram → checkpoints Cloudflare Pages API → deploy Mem0 → aprende del cliente Vertex AI Gemini → genera HTML Evolution API → notif WA
Pendientes antes de Fase 1: Vincular número WhatsApp en Evolution API · Crear credenciales Supabase y Evolution en N8N UI · Confirmar GCP billing alert en $333.
2
FASE 2

Fase 2 — Chatbots IA para clientes

Cada sitio desplegado en Fase 1 puede tener un chatbot IA que responde preguntas del negocio del cliente 24/7 via WhatsApp o widget web.

Usa de Fase 0:
Evolution API → canal WA del chatbot Qdrant → RAG con docs del cliente Mem0 → memoria por usuario final Supabase → agent_memories Redis → estado de sesión N8N → orquestación de conversación
3
FASE 3

Fase 3 — Scraping PRO + prospección masiva

El sistema encuentra leads (negocios en Caracas sin web o con web mala), los enriquece automáticamente, los puntúa 0–100 y Misael manda el primer mensaje vía WhatsApp.

Usa de Fase 0:
Supabase → tablas leads, lead_messages, scraper_health Supabase → vision sanity check Evolution API → envío WA manual N8N → pipeline de enriquecimiento Vertex AI → análisis de sitio del lead LangSmith → trazabilidad del agente
4
FASE 4

Fase 4 — Marketing físico + equipo humano

Tarjetas NFC, flyers QR, visitas a negocios. El equipo humano cierra ventas que los agentes identificaron. El sistema rastrea cada cierre.

Usa de Fase 0:
Supabase → payments, meta_progress Telegram → notificaciones al equipo Cloudflare Pages → microsites QR Backup → historial de clientes
5
FASE 5

Fase 5 — Dashboard propio + escala

Un dashboard interno Next.js para ver leads, proyectos, ingresos, health del sistema y métricas de la agencia en tiempo real. Todo alimentado por Supabase.

Usa de Fase 0:
Supabase → TODAS las vistas y tablas Cloudflare Pages → deploy del dashboard Workers → edge functions del dashboard Cloudflare Access → protege el dashboard Qdrant UI → inspector de memorias LangSmith → métricas de agentes

Flujo de datos — Vista global

Cómo se mueven los datos entre los componentes de Fase 0 cuando llega un proyecto.

📱
Misael
Llena brief N8N form
N8N
Orquesta el pipeline
🤖
Agentes CrewAI
Generan contenido y HTML
☁️
Cloudflare Pages
Publica el sitio
Persiste en
Supabase Qdrant / Mem0 Postgres local
Notifica via
Telegram WhatsApp (Evolution)
Traza en
LangSmith