diffuzar
Blueprint v0.1 · Architecture
Autonomous Distribution Agent

Un empleado de marketing que investiga, decide y ejecuta — no que recomienda.

Documento de arquitectura y modelo de datos para el MVP. Define cómo el agente convierte una URL y un objetivo en distribución real, medida y aprendida — sin que el humano ejecute cada tarea.

“Make the right people discover what you built.”
WEDGE · X · LinkedIn · Blog/SEO
AUTONOMÍA · Semi-auto + 1-click approval
MOAT · Memoria + Atribución por-negocio
FECHA · 2026-08-22
El ciclo fundamental

Un solo loop que nunca se detiene

Todo el producto es este ciclo ejecutándose de forma continua. El MVP existe para demostrar que el agente puede recorrerlo entero, de punta a punta, sobre canales reales. Cada vuelta alimenta a la siguiente: esa retroalimentación es el foso competitivo.

01

Understand

Investiga la URL y construye el perfil de marketing del negocio.

02

Research

Rastrea tendencias, competidores, keywords y conversaciones vivas.

03

Plan

El Director traza estrategia y decide qué agentes activar.

04

Create

Genera contenido nativo por canal — no copia-pega entre plataformas.

05

Execute

Publica o deja listo para 1-click, según el capability gate.

06

Measure

Atribuye resultados reales, no solo vanity metrics.

07

Learn

Guarda qué funcionó y por qué en la memoria del negocio.

Learn → Research. Cada aprendizaje re-alimenta el research de la siguiente vuelta. El agente empieza cada ciclo sabiendo más sobre este negocio que en el anterior.
Arquitectura de agentes

Un director que coordina especialistas

El usuario nunca habla con los sub-agentes. Interactúa con un solo Marketing Director que interpreta el objetivo, elige qué especialistas activar y en qué orden, y consolida los resultados. Internamente, cada especialista es un agente con herramientas tipadas por capacidad.

Marketing Director Agent

Recibe objetivo + permisos. Decide estrategia, despacha especialistas, resuelve conflictos y reporta al humano. Es el único punto de contacto.

Orquestador
Descubre

Research

Tendencias, competidores, keywords, conversaciones y ventanas de oportunidad.

Decide

Strategy

Traduce objetivo en plan: canales, ángulos, cadencia, presupuesto.

Escribe

Content

Piezas nativas por canal: posts, hilos, artículos, landing copy.

Publica

Social

Adapta y publica en X y LinkedIn vía los channel adapters.

Posiciona

SEO

Artículos, metadata, schema, internal linking, seguimiento de rankings.

Prueba

Experiment

Variantes A/B/C/D de hooks, headlines, CTAs y horarios.

Mide

Analytics

Conecta acciones con clicks, leads, signups y revenue.

Recuerda

Memory

Persiste qué funcionó y por qué, indexado por embeddings.

Fase 2

Creator

Descubre creadores afines y prepara propuestas de colaboración.

Fase 2

Advertising

Google/Meta/TikTok Ads dentro del presupuesto máximo fijado.

Decisión de diseño

Los agentes de Fase 2 (Creator, Advertising, Video) existen en el contrato de interfaces desde el día 1, pero no se implementan hasta validar el loop. Añadir un agente no debe tocar el núcleo del Director — solo registrarlo con sus herramientas y su nivel de capacidad.

El corazón del producto

Capability Gate: cada acción pasa por aquí

Ningún agente actúa sobre el mundo directamente. Toda acción propuesta atraviesa un único gate que consulta los permisos del negocio y decide: ejecutar, pedir aprobación o bloquear. Esto es lo que hace que un dueño de negocio confíe lo suficiente para conceder autonomía — y lo que mantiene la plataforma dentro de lo legal y sostenible.

Entrada

Acción propuesta

Un agente quiere publicar un post, gastar $40, contactar un creador o responder una review.

Capability Gate

¿Qué permite el negocio?

Cruza tipo de acción · monto · canal · nivel de riesgo contra la política de permisos. Registra todo en el audit log.

Execute

Dentro de lo autónomo → se ejecuta y se registra. Aparece en el Activity Feed.

Request approval

Acción sensible → va al Approval Center. El humano aprueba con 1 click.

Block

Marcada como “Never” → se rechaza siempre, sin excepción.

Crear contenido · Publicar en social · SEO · Analizar competidores · Optimizar campañasAutonomous
Contactar creadores · Responder públicamente · Gastar > $25Approval
Cambiar precios del sitio · Cualquier acción marcada como límite duroNever

Por qué es fundacional, no un feature tardío

El gate y el audit log se construyen en la primera semana. Todo `agent.act()` pasa por él por contrato — no hay un camino alternativo. Así, subir un canal de “approval” a “autonomous” es un cambio de configuración, no de código, y el cliente gana confianza a su ritmo.

Modelo de datos

El schema, diseñado alrededor del moat

La memoria y la atribución no son tablas de último momento: el schema se organiza para que toda acción sea rastreable hasta un resultado de negocio y todo aprendizaje sea recuperable. Postgres relacional + pgvector para la memoria semántica. PK = clave primaria · = relación.

Identidad & facturación
userPK id
  • emailtext
  • nametext
  • created_attimestamptz
subscriptionPK id
  • → user_idfk
  • stripe_customertext
  • plan / statusenum
  • budget_capnumeric
channel_connectionPK id
  • → project_idfk
  • providerenum
  • oauth_tokensencrypted
  • scopes / statusjsonb
Negocio & estrategia
projectPK id
  • → user_idfk
  • name / urltext
  • autonomy_levelenum
business_profilePK id
  • → project_idfk
  • value_prop / icpjsonb
  • competitorsjsonb
  • tone / channelsjsonb
  • user_editedbool
missionPK id
  • → project_idfk
  • statementtext
  • target_metrictext
goalPK id
  • → mission_idfk
  • milestonetext
  • from / to / statusmixed
permission_policyPK id
  • → project_idfk
  • capabilityenum
  • levelauto|appr|never
  • thresholdnumeric
opportunityPK id
  • → project_idfk
  • kind / sourceenum
  • relevancenumeric
  • window_ends_attimestamptz
Ejecución
campaignPK id
  • → goal_idfk
  • angle / channelmixed
  • statusenum
contentPK id
  • → campaign_idfk
  • channel / formatenum
  • body / assetsjsonb
  • variant_offk?
experimentPK id
  • → campaign_idfk
  • hypothesistext
  • variants[]fk[]
  • winner_idfk?
publicationPK id
  • → content_idfk
  • external_id / urltext
  • published_attimestamptz
  • utmjsonb
action / audit_logPK id
  • → project_id, agentfk
  • type / payloadjsonb
  • gate_outcomeenum
  • created_attimestamptz
approvalPK id
  • → action_idfk
  • statuspending|ok|no
  • decided_by / atmixed
Aprendizaje & atribución · el foso
metricPK id
  • → publication_idfk
  • kindreach|click…
  • value / atmixed
attribution_eventPK id
  • → project_idfk
  • stageclick…revenue
  • → publication_idfk?
  • value / visitormixed
memoryPK id
  • → project_idfk
  • kind / summarytext
  • embeddingvector
  • evidencejsonb
Capa de canales

Adapters con una interfaz común

Cada canal implementa el mismo contrato — getAuthUrl(), publish(), getMetrics() — para que añadir un canal nuevo no toque el núcleo. Estos son los tres del wedge, elegidos porque su API permite auto-publicación real hoy. El diseño no asume APIs que no existen.

CanalAuto-publicarAuthNotas de viabilidadRol V1
X (Twitter)OAuth 2.0API de pago (~$100/mo tier básico). Post de texto/imagen estable.Auto
LinkedInOAuth 2.0Post personal y de página. Video/reel más limitado; algunas features requieren partnership.Auto
Blog / SEO propioInternoCanal sin fricción de API — publicamos en infra que controlamos. Ejecución real desde el minuto uno.Auto
Instagram / FacebookParcialGraph APISolo Business/Creator + App Review de Meta. Fase 2.Fase 2
TikTokParcialOAuth + auditContent Posting API requiere aprobación; a menudo solo “subir borrador”. Fase 2.Fase 2
YouTube ShortsOAuth 2.0Upload vía Data API con cuota diaria. Candidato temprano de Fase 2.Fase 2

Principio de desarrollo (sección 19 del brief)

Antes de implementar cualquier integración: verificar API oficial, OAuth, permisos, límites, costo, políticas anti-spam y reglas de publicación automática. Automatización legítima y sostenible — nunca bots de spam ni técnicas que provoquen suspensiones.

Resultados reales

De la acción al revenue, no a los likes

El objetivo no es generar contenido: es generar resultados. Cada publicación lleva UTMs y un pixel propio; cada visitante se sigue por etapas hasta — cuando el cliente conecta su Stripe vía webhook — el revenue atribuido. Esa cadena es lo que separa “marketing que se siente bien” de “marketing que se puede probar”.

Campaign Click Lead Signup Customer Revenue

Instrumentación

UTMs por publicación + pixel de primera parte en el sitio del cliente. Cada publication es rastreable.

Modelo propio

attribution_event une visitante → etapa → publicación. Atribución nuestra, no dependiente de cada plataforma.

Cierre del bucle

Webhook de Stripe del cliente conecta el pago con la campaña que lo originó. El dashboard muestra revenue, no vanity metrics.

Alcance V1

Qué entra — y qué esperamos deliberadamente

El MVP cierra el loop completo sobre una superficie mínima. No demuestra 20 features a medias: demuestra un ciclo entero funcionando sobre canales reales, con memoria y atribución de verdad. Todo lo demás son capas que se añaden después de validar.

En el MVP

  • Auth + proyecto + URL → análisis automático del negocio (editable por el usuario).
  • Objetivo, misión y goals intermedios.
  • Research Engine + detección de oportunidades con ventana temporal.
  • Strategy → Content → Calendar nativo por canal.
  • Conectar X + LinkedIn y publicar en Blog/SEO propio.
  • Publicación semi-auto con 1-click approval.
  • Capability gate + permisos + audit log + Approval Center.
  • Activity Feed — “tu agente está trabajando”.
  • Analytics + experiment tracking + Agent Memory.
  • Atribución Campaign→…→Revenue y Stripe subscriptions.

Fase 2+

  • Video y canales visuales: TikTok, Instagram Reels, YouTube Shorts.
  • Paid Advertising Agent: Google / Meta / TikTok Ads con CAC/ROAS.
  • Creator / Influencer discovery y outreach.
  • Full-auto por canal, activado a medida que sube la confianza.
  • Respuestas públicas a reviews y menciones.
  • SEO técnico avanzado: sitemap, schema masivo, refresh de contenido.

Dogfooding desde el día 1

Diffuzar es su primer cliente. Misión interna: “Make this product known without a traditional marketing agency.” Si consigue usuarios para sí mismo, tenemos evidencia de que consigue usuarios para otros — y de paso, datos reales, contenido y una demo pública.

Stack recomendado

Elegido para iterar rápido y vivir en el tiempo

El agente publica a las 9:15 y mide a las 11:40 — no es request/response, vive en el tiempo. Por eso el scheduler/worker es tan central como la base de datos. Propuesta, abierta a discusión antes de escribir código.

App / API
Next.js + TypeScriptUn solo repo, App Router. Front y API juntos para velocidad.
Base de datos
Postgres + pgvectorSupabase o Neon. Relacional para atribución, vectorial para memoria.
Jobs / tiempo
Inngest o BullMQ + RedisScheduling, retries y workflows durables del agente.
Agentes
Claude APILoop de agente con herramientas tipadas por capacidad.
Auth
Supabase Auth o ClerkSesión + gestión de OAuth de canales conectados.
Pagos
StripeSubscriptions del cliente + webhook para atribución de revenue.

Siguiente paso propuesto

Con esta arquitectura acordada, lo natural es: (1) validar contra un mapa de viabilidad de APIs real de X y LinkedIn, y (2) montar el scaffold — repo, Next.js + TS, Postgres, auth, Stripe — y el esqueleto del capability gate + audit log, que es la pieza de la que cuelga todo lo demás. Dime por cuál arrancamos.