
N° 05Para fabricación
El taller que funciona con las luces apagadas.
Fresadoras, láseres e impresoras transmiten a un gemelo digital. Los agentes ejecutan los trabajos que les permites. Cada comando queda escrito antes de llegar a la máquina.
Lámina 05 · Una fresadora de tres ejes fuera de horario, iluminada solo por su propia luz de trabajo
Un solo modelo
Cada máquina es un dispositivo con canales.
Una fresadora, un láser, una impresora y la cámara que los vigila son lo mismo en CommandAGI: un dispositivo con canales — una línea de G-code, un flujo de estado, un flujo de video. Los sitúas como unidades en un mundo que reproduce tu taller.
Los drivers hablan el protocolo propio de cada controlador, a través de una única interfaz de sesión:
- CNC: GRBL 1.1 por USB, FluidNC y grblHAL por TCP, Smoothieware, LinuxCNC 2.9.
- Impresoras: Marlin, Klipper a través de Moonraker, PrusaLink, OctoPrint, Duet / RepRapFirmware, Repetier-Server.
- Láseres: los verbos láser de GRBL, Smoothieware, Klipper y Duet, con anidado y G-code de lámina en la app vectorial.

Lámina 06 · El gemelo junto a la máquina que sigue
El gemelo sigue a la máquina, no al plan.
El gemelo digital dibuja lo que reporta el controlador — posición, línea, avance, alarmas — y marca cada desviación de más de medio milímetro. Lo simulado y lo real llevan etiqueta, y nunca se mezclan.
Escrito antes de enviarse.
Cada acción se añade al flujo de la ejecución, con el principal que la envió, antes de llamar al driver. Una confirmación no es una posición. Un enlace perdido se registra como estado desconocido — y nada se reintenta nunca en silencio.
Si un agente decide volver a intentarlo, esa decisión es un comando registrado por sí mismo.
02:14:07.180 note agent:night-shift: run_program bracket-v3.gcode 02:14:07.192 command G21 G90 02:14:07.204 ack ok 02:14:07.260 command G1 X112.4 Y38.05 F1200 02:14:07.274 ack ok 02:14:09.910 state state: unknown (link lost) 02:14:12.330 event link back · Idle 02:14:12.402 note agent:night-shift: send_command $H
Autoridad
La autoridad es un permiso permanente.
Decides una vez qué puede tocar un agente: qué mundo, qué unidades, qué canales, qué verbos, durante cuánto tiempo. Dentro de ese permiso arma la máquina, ejecuta programas y envía comandos en tiempo real — sin diálogos de confirmación a las 2 de la madrugada.
Los límites los impone el driver, no una persona. Los verbos de parada, retención y emergencia siempre están permitidos a cualquiera que tenga algún permiso sobre la unidad.
commandagi grant add --principal agent:night-shift \
--world shop --unit mill-1 --channel gcode \
--verb open --verb arm --verb run --for 8h --note "night shift"
Cámaras
Las cámaras también son canales.
Una cámara USB, una pantalla o una ESP32-CAM es un canal más de una unidad. Su video se registra en la misma ejecución que el G-code, con el mismo reloj, así que una reproducción muestra lo que se le ordenó a la máquina y lo que hizo.
El panel de muro de cámaras pone todos los flujos registrados en una sola pantalla.
Lámina 07 · Una cámara sujeta al pórtico, mirando a lo largo del corte
Contado, no proyectado.
Lo que hay hoy en el producto, según los números del repositorio.
- 26
- Drivers en el catálogo
CNC, impresoras, buses de servos, cámaras, shells y más — una sola interfaz de sesión.
- 4
- Verbos que puede dar un permiso
open, arm, run y send (abrir, armar, ejecutar y enviar). La parada nunca se niega.
- 5min
- Hasta que el armado caduca
Una sesión armada que queda inactiva se desarma sola.
- 0
- Reintentos silenciosos
Un comando físico se envía una vez. Reintentar es una decisión, y queda registrada.
Verificación
Decimos exactamente hasta dónde se ha probado.
Cada driver lleva una palabra que indica contra qué se ha verificado: none, loopback, bench o hardware. Hoy los drivers de fabricación dicen loopback — probados contra simulaciones de software fieles a cada protocolo. Todavía no se ha puesto en servicio ninguna máquina.
Cuando un driver funcione en una fresadora real en un banco real, dirá bench. No antes.
Trae tus máquinas.
Abre el banco de trabajo en tu navegador, sitúa tus máquinas en un mundo de simulación y ejecuta allí el trabajo primero.