Abraham Hernández Castro

En producción · 2 plantas

Defabric

Un ERP multi-tenant para plantas de empaque flexible, con una capa de agentes Claude donde cada escritura espera a una persona.

Rol
Fundador y líder de producto
Años
ene 2026 – hoy
Estado
En producción en 2 plantas
Stack
Claude API · React · Node · three.js / R3F · SSE
defabric · IA → Planta
Vista «Planta» de Defabric: planta 3D isométrica con departamentos, máquinas y marcadores de agentes, y un registro de qué agente delegó a cuál.
UI real de producción (captura animada) · tenant demo «Ana Demo» · sin datos de clientes ni de trabajadores
01 · Problema

Una planta entera en un ERP, y agentes que nunca escriben solos.

Un ERP para empaque flexible tiene que cubrir toda la planta: ventas, planeación y lotes, calidad, almacén, compras, RH, nómina y administración. La meta era que la gente pidiera trabajo en lenguaje natural y que los agentes hicieran el trabajo de buscar y proponer, sin que un modelo escribiera jamás en datos de producción por su cuenta.

Eso define la arquitectura: los agentes leen y proponen; las personas confirman; el servidor vuelve a verificar.

02 · El sistema

Una jerarquía de agentes con una sola puerta de salida: tú.

FIG 1 · Arquitectura de la capa de agentes01 / 06
Capa de agentes de DefabricUna persona pide algo desde el chat o un kiosco. El agente Director delega en los jefes de departamento, que delegan en los coordinadores de cada centro de trabajo. Los coordinadores usan herramientas de lectura o herramientas propose_* que solo crean un borrador con bitácora. La persona confirma el borrador, que entonces corre con su propio token contra la API del ERP. El consumo de tokens se mide por usuario y por agente, y el progreso llega en vivo por SSE.SURFACESAGENT LAYER · CLAUDETOOLS = TEAM ∩ USER PERMISSIONSperson · chat / kioskDirectorProductionQualityPurchasingHRExtrusionPrintingcoordinatorsread · pending_to_makepropose_* → draft + audit log✓ Confirm · your tokenERP APIsame endpoints as UIlive progress · SSEmetertokens · user · agent
Diagrama simplificado (4 de los departamentos, 2 de los coordinadores). Nombres de herramientas simplificados.
  1. Una persona pregunta

    Desde el chat del ERP o un kiosco de planta, en lenguaje natural. La petición llega al agente Director.

  2. El Director delega

    No hace todo él: delega en el jefe del departamento que corresponde (Producción, Calidad, Compras, RH…).

  3. Los jefes delegan en coordinadores

    Cada centro de trabajo (Extrusión, Impresión…) tiene un coordinador con contexto y herramientas propias.

  4. Herramientas acotadas

    Un agente solo ve las herramientas de su equipo intersectadas con los permisos del usuario. Las de lectura corren; las propose_* no escriben: crean un borrador con bitácora.

  5. La persona confirma

    Al pulsar Confirmar, la acción corre con el token de esa persona, contra los mismos endpoints y permisos que la pantalla. Borrador de un solo uso, vence en 15 min y se re-verifica.

  6. Todo se mide y se ve

    El progreso del agente llega en vivo por SSE y el consumo de tokens se registra por usuario y por agente.

03 · Cómo trabajan los agentes

Una tarea, de la pregunta al Confirmar.

traza · tenant demoilustrativa
you       › "What's pending on Extrusion 1? Re-plan it if needed."director  → production.lead            delegateproduction→ extrusion.coord            delegateextrusion · pending_to_make(center: "Extrusion 1")          ✓ read · demo dataextrusion · propose_schedule(order: DEMO-1042, …)          → draft · no write · single-use · 15:00⏸ awaiting human approvalyou       ✓ Confirm · runs with your tokenapi       re-verify → unchanged → write ok · audit
tools/propose.tsboceto · pendiente extracto real
// Shape of a gated tool (simplified sketch, not production code)
export const proposeSchedule = defineTool({
  name: "propose_schedule",
  team: ["production"],             // ∩ user permissions
  requires: "production.schedule.write",
  async run(input, ctx) {
    // never writes: creates a draft the user must confirm
    return ctx.drafts.create({
      action: "schedule.update", input,
      singleUse: true, expiresIn: "15m",
      snapshot: await ctx.read.order(input.order),
    });
  },
});

La traza es una repetición ilustrativa con datos demo; el boceto muestra la forma, no el código real (pendiente un extracto sanitizado del repositorio).

04 · Puertas humanas y salvaguardas

Pruébalo: confirma un borrador.

Simulador · tenant demo
Borrador · espera tu Confirmar15:00
Acción
schedule.update
Pedido
DEMO-1042
Línea
Extrusión 1
Propuso
extrusion.coord

    Lo que el agente no puede hacer sin una persona: cualquier escritura. Programas, correcciones del checador, préstamos y órdenes de producción esperan una confirmación explícita, con bitácora.

    Y cómo lo hace cumplir el código: el agente no tiene endpoints de escritura; solo el botón Confirmar los llama, con el token de quien lo pulsa.

    Borradores, no escrituras

    Las herramientas propose_* solo crean un borrador y una entrada de bitácora.

    Tu token, tus permisos

    Confirmar ejecuta con la sesión de la persona, contra los mismos endpoints que la pantalla.

    Un uso, 15 minutos

    Cada borrador se usa una vez y vence a los 15 minutos.

    Re-verificado al confirmar

    Si el pedido cambió desde el borrador, se rechaza.

    Herramientas acotadas

    Equipo del agente ∩ permisos del usuario.

    Medido

    Consumo de tokens por usuario y por agente.

    Extra · planta 3D

    Recorre una planta estilizada y ve a los agentes delegar.

    Recreación low-poly inspirada en la vista Planta real, con datos demo. Carga solo si la abres.

    Explorar en 3D
    El personaje 3D de Abraham con chaleco de seguridad en una planta de empaque flexible, sostiene una laptop con un tablero
    Personaje generado con IA
    05 · Resultados

    Solo lo que tiene fuente.

    QuéValorFuente
    Plantas en producción2Dato propio · 2026
    Módulos del ERP8Dato propio: ventas, planeación y lotes, calidad, almacén, compras, RH, nómina, administración
    Escrituras de agentes sin confirmación humana0Por diseño: los agentes no tienen endpoints de escritura
    Tiempo ahorrado por solicitudAún no medido—
    Tasa de aceptación de borradoresAún no medido—
    06 · Stack

    Con qué está hecho.

    Claude API · tool useSubagentes jerárquicosReactNode.jsthree.js · React Three FiberServer-Sent EventsAlmacenamiento de objetosKioscos de planta
    Siguiente caso
    MNDA Studio

    ¿Construyes agentes para operaciones reales? Hablemos.