Sobre el proyecto
AgentPod es un centro de mando portátil para entornos de ejecución de agentes de IA: un lugar único para gestionar los entornos donde viven los agentes, sin importar dónde se ejecuten. Para cada entorno gestiona el sistema de archivos, registros, terminal, configuración, salud, ciclo de vida, limpieza y aprovisionamiento, a través de máquinas, marcos y límites de red. Es de adjunción primero: lo apuntas a entornos que ya ejecutas, o le permites aprovisionar otros nuevos.
La arquitectura tiene tres niveles. La consola orientada al operador es una SPA estática de SvelteKit que se comunica con el centro a través de HTTPS y WSS. El centro está construido sobre Bun, Hono y Postgres (vía Drizzle) y actúa como registro de nodos/estaciones, corredor de conexiones, servicio de inscripción y autenticación (Better Auth), registro de auditoría y actividad, y host controlador de aprovisionamiento. El agente de nodo es un binario estático de Go instalado por host que se conecta *hacia afuera* al centro a través de WSS, por lo que funciona detrás de NAT y CGNAT sin abrir puertos entrantes. Cada agente de nodo ejecuta descriptores de marcos y ejecuta verbos de contrato localmente.
AgentPod incluye descriptores para varios marcos de agentes — Hermes, OpenClaw, Claude Code, Codex, OpenCode y Pi — registrados en `apps/node-agent/cmd/agentpod-node/registry.go`. Cada descriptor envuelve la CLI o API nativa del marco para enumerar entornos, localizar configuración, registros y espacio de trabajo, e implementar operaciones de ciclo de vida sin reinventar la introspección de cada marco.
El despliegue es sencillo: ejecuta el centro con Postgres y Bun (auto-migración en el primer inicio), construye la consola con pnpm y despliega la salida estática en Cloudflare Pages o cualquier host estático en un subdominio del dominio registrable del centro (para que la cookie de sesión de Better Auth permanezca en el mismo sitio), luego inscribe agentes de nodo en los hosts objetivo con un script de instalación canalizado por curl que crea un servicio systemd. Los binarios precompilados para linux/darwin × amd64/arm64 se publican en cada etiqueta `v*` mediante GitHub Actions.
El estado es de un solo operador: una cuenta de administrador, el registro se cierra después del primer usuario, versiones etiquetadas `v0.1.x`. El límite de aislamiento de inquilinos ha llegado: una tabla `tenants`, `tenant_id` en cada tabla con ámbito, y un helper `tenantScope()` que se niega a construir una consulta sin uno, fijado por pruebas unitarias. Todo hoy se ejecuta bajo el inquilino de arranque único `fleet_00000000000000000000`; lo que queda es lo que usa el límite: organizaciones, principales y facturación. El producto anterior basado en OpenCode está congelado en la etiqueta `v0.0.4-opencode` con documentación archivada bajo `docs/archive/`. Licencia MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.