Markdown como Protocolo para Interfaz de Usuario Agéntica con Ejecución en Flujo

Un desarrollador construyó un prototipo que explora cómo combinar la interfaz de usuario generativa con la ejecución de código para agentes de IA utilizando Markdown como protocolo unificado. El sistema transmite texto, código ejecutable y datos en una sola respuesta, con el código ejecutándose incrementalmente a medida que llega.
El Protocolo: Markdown con Tres Tipos de Bloques
El enfoque utiliza la sintaxis estándar de Markdown que los LLM ya entienden, evitando la necesidad de enseñar nuevos formatos. Define tres tipos de bloques:
- Bloques de texto: Formato Markdown simple que se transmite al usuario
- Cercas de código:
```tsx agent.runejecuta código TypeScript/JSX en el servidor en un contexto persistente - Cercas de datos:
```json agent.data => "id"transmite datos JSON a componentes de interfaz de usuario
Estos bloques pueden intercalarse en cualquier orden dentro de una sola respuesta. El analizador los maneja incrementalmente a medida que llegan los tokens del LLM.
Ejecución en Streaming
El código se ejecuta declaración por declaración a medida que el LLM lo genera, sin esperar a que se cierre la cerca de código completa. Esto permite que las llamadas API comiencen, la interfaz de usuario se renderice y los errores surjan mientras el LLM aún está enviando tokens. El desarrollador construyó bun-streaming-exec para manejar esto, usando vm.Script con envoltura personalizada ya que la ejecución en streaming no es una primitiva estándar del entorno de ejecución.
Interfaz de Usuario Agéntica con Primitiva mount()
El sistema utiliza React para la generación de interfaz de usuario ya que los LLM tienen una amplia exposición a componentes React y JSX. La primitiva central es mount():
mount({
ui: () => <Card>¡Hola desde el agente!</Card>
});Cuando el LLM genera este código y el servidor lo ejecuta, mount() serializa el componente React y lo envía al cliente para renderizarlo dentro de la interfaz de chat.
Patrones de Flujo de Datos
El prototipo implementa cuatro patrones distintos para el movimiento de datos:
- Cliente → Servidor (formularios): El agente puede esperar la entrada del usuario a través de formularios
- Servidor → Cliente (datos transmitidos): Las cercas de datos transmiten JSON directamente a las interfaces de usuario montadas
- Servidor → LLM (console.log): La salida de
console.logy las excepciones se retroalimentan al LLM como un nuevo turno - LLM → Servidor → Cliente (ciclo completo): Ciclos completos donde el LLM genera código que obtiene datos y renderiza interfaz de usuario con esos datos
Bucle de Retroalimentación
El sistema utiliza console.log como mecanismo para que el agente hable consigo mismo. Cuando el LLM genera Markdown con bloques de código, el texto se transmite al usuario mientras el código se ejecuta incrementalmente. Cualquier salida de console.* o excepciones se retroalimentan al LLM como un nuevo turno. Si no hay salida ni excepciones, el sistema espera una nueva consulta del usuario.
Esto permite que el agente reaccione a su propia ejecución, como verificar recuentos de mensajes o pausar para esperar la entrada del usuario antes de continuar.
📖 Leer la fuente completa: HN AI Agents
👀 Ver también

HomeButler: Gestión de laboratorio doméstico sin tokens para agentes OpenClaw
HomeButler es un único binario de Go que permite a los agentes OpenClaw gestionar la infraestructura del homelab sin claves API ni tokens. Se ejecuta localmente y mantiene todas las operaciones en tu red.

SynapsCAD: Aplicación de escritorio de código abierto para OpenSCAD con integración de Claude AI
SynapsCAD es una aplicación de escritorio de código abierto que combina un editor de código OpenSCAD, una ventana gráfica 3D en tiempo real y un asistente de IA. Construida completamente en Rust con Bevy 0.15 y egui, admite la integración de la API de Claude para la programación de CAD 3D mediante lenguaje natural.

MegaClaw: Configuración de OpenClaw en Contenedores con Playwright y Homebrew
MegaClaw es una configuración de Podman de dos imágenes para OpenClaw que aborda problemas comunes de instalación como errores de permisos y dependencias faltantes. Utiliza una construcción multi-etapa con Playwright y Homebrew preinstalados, e integra la configuración del usuario en una imagen de tiempo de ejecución.

Compresión LLM sin Pérdidas con Codebook: Reducción de RAM del 10-25% mediante Empaquetamiento Bit a Bit
El código de prueba de concepto de un desarrollador demuestra la compresión sin pérdida de LLM empaquetando pesos fp16 en bloques, logrando una reducción de RAM del 10-25% con el compromiso de aproximadamente reducir a la mitad la velocidad de inferencia. El enfoque identifica que la mayoría de los modelos solo usan 12-13 bits de valores únicos a pesar de la representación de 16 bits de fp16.