Cómo domar el zoológico de agentes de IA con Nasiko
Cuando ejecutas un único agente en Python para pruebas, todo funciona de manera predecible. Añade un segundo en TypeScript, un tercero en Go, y comienzan los problemas. Los agentes empiezan a llamarse directamente entre sí, las claves de API de los modelos se dispersan por configuraciones y logs, y cuando un diálogo entra en bucle, los tokens se van por miles en un par de minutos.

El equipo de Nasiko-Labs abordó esto del mismo modo en que los ingenieros de red abordan los microservicios. El proyecto Nasiko sirve como plano de control unificado para agentes, gestionando enrutamiento, autorización, protección contra bucles infinitos y recolección de telemetría. Los propios agentes están aislados del mundo exterior y se comunican estrictamente a través de la especificación A2A (Agent-to-Agent v1.0).

Qué puede hacer esta plataforma
Todo el sistema está diseñado en torno a la idea de un único punto de entrada. Los agentes físicamente no aceptan conexiones entrantes del exterior. Cada solicitud entre agentes pasa a través del servidor, donde se verifican las reglas de acceso y se deducen los límites.
Enrutamiento inteligente de llamadas
El cliente o agente llamador no necesita conocer el ID específico del servicio destino. Dentro de Nasiko, una tubería de tres etapas selecciona el ejecutor. Primero, el sistema filtra candidatos por similitud vectorial de descripciones, luego los reordena según el contexto del diálogo actual, y un LLM ligero separado toma la decisión final.
Gestión segura de claves y enrutador LLM
En lugar de hardcodear OPENAI_API_KEY en variables de entorno de cada contenedor, a los agentes se les emite una dirección interna OPENAI_BASE_URL y un token de corta duración. El enrutador proxy interno sustituye la clave correcta del proveedor sobre la marcha. Los secretos nunca terminan en logs o código de contenedor.
Protección contra bucles infinitos y cascadas
Si dos agentes deciden hacerse ping-pong indefinidamente, el saldo de tokens se agota rápidamente. Nasiko mantiene contadores en Redis para la profundidad del grafo de llamadas, límites de ramificación, tiempos de espera y presupuestos de tokens por sesión. En cuanto la profundidad de la cadena excede el umbral establecido, el servidor aborta la ejecución.
Puerta de enlace de herramientas del protocolo MCP
Para conectar herramientas externas, existe una puerta de enlace MCP integrada. Agrega conectores (por ejemplo, Composio o servidores MCP personalizados) y proporciona a los agentes una única URL para llamadas de funciones con control de acceso por agente.
Arquitectura y stack
El backend está escrito en Rust y se compila en un binario único usando el framework Axum. Se utilizan componentes probados para el almacenamiento de estado:
- PostgreSQL almacena usuarios, configuraciones de agentes y secretos cifrados (AES-256-GCM).
- Redis gestiona los contadores de llamadas y la protección contra ciclos.
- El registro OCI integrado almacena imágenes de contenedores en almacenamiento compatible con S3.
- El stack de OpenTelemetry, Tempo y Loki recopila trazas distribuidas y logs para cada paso.
Cualquier solicitud entre agentes se convierte en un span de OTel. El panel de control muestra inmediatamente cuántos tokens se usaron en un paso específico y cuánto costó la llamada en céntimos.
Inicio rápido con Docker
Para levantar todo el stack, no se requiere conocimiento de Rust. Solo necesitas Docker Engine con el plugin Compose V2.
Primero, clona el repositorio y crea el archivo de entorno:
git clone https://github.com/Nasiko-Labs/nasiko.git
cd nasiko
cp .env.example .env
En .env, debes especificar tu clave de OpenAI y la contraseña del administrador:
OPENAI_API_KEY=sk-...
ADMIN_PASSWORD=strong_password_here
Después de eso, levanta la infraestructura:
docker compose up -d
El primer inicio tardará unos minutos, ya que el servidor Rust se compila dentro del contenedor. El panel de control estará disponible en http://localhost:8080.
Trabajo a través de CLI
Para desarrolladores, existe una utilidad de consola nasiko. Se instala a través de Cargo:
cargo install --path cli/
Crear y lanzar un nuevo agente requiere cuatro comandos:
# Подключаемся к локальному кластеру
nasiko connect http://localhost:8080
nasiko auth login
# Создаем проект из шаблона
nasiko new openai assistant-bot
cd assistant-bot
# Собираем и деплоим
nasiko deploy .
# Проверяем работу в чате
nasiko chat --agent assistant-bot "Привет, чем ты можешь помочь?"
El comando deploy construye automáticamente el contenedor, lo sube al registro integrado de Nasiko y registra el agente con el enrutador.
Dónde resulta útil
El proyecto está dirigido a equipos que han superado los scripts simples de LangChain y están construyendo sistemas de producción con docenas de agentes especializados.
Aquí hay escenarios típicos donde Nasiko ahorra tiempo:
- Pipelines multi-agente donde los agentes son escritos por diferentes equipos en diferentes lenguajes (Python, Node.js, Go).
- Sistemas con requisitos estrictos de seguridad donde las claves API de producción no pueden entregarse a entornos de ejecución externos.
- Monitoreo de costos de LLM por tareas específicas y usuarios sin análisis manual de logs.
En resumen
Nasiko parece un intento maduro de empaquetar la capa de red y la observabilidad de sistemas multi-agente en una herramienta compacta. No hay intento de forzar un DSL personalizado para escribir prompts: eres libre de escribir lógica en cualquier framework, siempre que supports la especificación A2A v1.0.
Si estás cansado de cablear manualmente microservicios de agentes y contar tokens a través de paneles fragmentados de OpenAI y Anthropic, el proyecto definitivamente vale la pena ejecutarlo localmente y probarlo. Para producción, ten en cuenta el acoplamiento ajustado al runtime de Docker en la versión de código abierto, pero para desarrollo local y entornos de staging internos, ya es una opción viable.
Proyectos relacionados