Network AI
Network-AI
Orquestador multi-agente para TypeScript/Node.js: estado compartido, barreras de seguridad, presupuestos y coordinación entre marcos
Network-AI es un orquestador multi-agente para TypeScript/Node.js que añade coordinación, barreras de seguridad y gobernanza a cualquier pila de agentes de IA.
Pizarra compartida con bloqueo — el proceso atómico
proponer → validar → confirmarevita condiciones de carrera y fallos de cerebro dividido entre agentes paralelos.Barreras de seguridad y presupuestos — gobernanza FSM, límites de tokens por agente, pistas de auditoría HMAC / Ed25519 y control de permisos.
17 adaptadores — LangChain (+ streaming), AutoGen, CrewAI, OpenAI Assistants, LlamaIndex, Semantic Kernel, Haystack, DSPy, Agno, MCP, Personalizado (+ streaming), OpenClaw, A2A, Codex, MiniMax, NemoClaw y APS — sin código de pegamento, sin dependencia de un solo proveedor.
Memoria de proyecto persistente (Capa 3) —
context_manager.pyinyecta decisiones, objetivos, pila, hitos y patrones prohibidos en cada prompt del sistema para que los agentes siempre tengan el contexto completo del proyecto.
El modo de fallo silencioso en sistemas multi-agente: los agentes paralelos que escriben en la misma clave utilizan por defecto la última escritura ganadora — el resultado de un agente sobrescribe silenciosamente al de otro en pleno vuelo. El resultado es un estado de cerebro dividido: gastos dobles, decisiones contradictorias, contexto corrupto, sin que se lance ningún error. El mutex
proponer → validar → confirmarde Network-AI evita esto en la capa de coordinación, antes de que cualquier escritura llegue al estado compartido.
Utiliza Network-AI como:
Una biblioteca de TypeScript/Node.js —
import { createSwarmOrchestrator } from 'network-ai'Un servidor MCP —
npx network-ai-server --port 3001Una CLI —
network-ai bb get status/network-ai audit tailUna habilidad OpenClaw —
clawhub install network-ai
Inicio rápido en 5 minutos → | Arquitectura → | Todos los adaptadores → | Benchmarks →
⚡ Pruébalo en 60 segundos
npm install network-aiimport { LockedBlackboard } from 'network-ai';
const board = new LockedBlackboard('.');
const id = board.propose('status', { ready: true }, 'agent-1');
board.validate(id, 'agent-1');
board.commit(id);
console.log(board.read('status')); // { ready: true }Dos agentes, escrituras atómicas, sin condiciones de carrera. Eso es todo.
¿Quieres la prueba de estrés completa? Sin clave API, ~3 segundos:
npx ts-node examples/08-control-plane-stress-demo.tsEjecuta desalojo por prioridad, control de permisos AuthGuardian, gobernanza FSM y monitoreo de cumplimiento — todo sin una sola llamada a LLM.
Si te ahorra una condición de carrera, una ⭐ ayuda a otros a encontrarlo.
Qué incluye
✅ Estado compartido atómico |
|
✅ Presupuestos de tokens | Límites estrictos por agente con seguimiento de gasto en tiempo real |
✅ Control de permisos | Tokens firmados con HMAC / Ed25519, con alcance por agente y recurso |
✅ Registro de auditoría de solo adición | Cada escritura, concesión y transición firmada y registrada |
✅ 17 adaptadores de marcos | LangChain, CrewAI, AutoGen, MCP, Codex, APS y 11 más — sin dependencia de proveedor |
✅ Gobernanza FSM | Detención forzada de agentes en límites de estado, aplicación de tiempos de espera |
✅ Monitoreo de cumplimiento | Detección de violaciones en tiempo real (abuso de herramientas, turnos, tiempos de espera) |
✅ Orquestación de QA | Repetición de escenarios, bucles de retroalimentación, seguimiento de regresión, detección de contradicciones |
✅ Inicialización diferida de adaptadores | Carga perezosa de adaptadores en el primer uso — costo de inicio cero para marcos no utilizados |
✅ Middleware de ganchos | Ganchos |
✅ Control de flujo | Pausar / reanudar / limitar escrituras en la pizarra |
✅ Composición de habilidades | Meta-operaciones |
✅ Búsqueda de memoria semántica | Almacén vectorial BYOE con similitud de coseno sobre datos de la pizarra |
✅ Tubería de fases | Flujos de trabajo multifase con puertas de aprobación humana |
✅ Filtrado de confianza | Puntuación de resultados multi-agente, validación de umbrales y agregación de consenso |
✅ Ganchos basados en coincidencias | Patrones Glob en agente/acción/herramienta para filtrado de ganchos dirigido |
✅ Fan-out / fan-in | Generación de agentes paralelos con estrategias de agregación conectables |
✅ Sandbox de tiempo de ejecución de agentes | Ejecución de shell en sandbox con aplicación de políticas y puertas de aprobación |
✅ Consola interactiva | Panel TUI para monitoreo en vivo, control de agentes, gestión de pizarra/presupuesto/FSM |
✅ Modo tubería | Protocolo JSON stdin/stdout para control programático de IA a orquestador |
✅ Agente de estrategia | Meta-orquestador con grupos de agentes elásticos, partición de carga de trabajo y escalado adaptativo |
✅ Descomponedor de objetivos | Objetivo impulsado por LLM → DAG de tareas → ejecución paralela con una línea |
✅ Nativo de TypeScript | Modo estricto ES2022, cero dependencias nativas |
Por qué los equipos usan Network-AI
Problema | Cómo lo resuelve Network-AI |
Condiciones de carrera en agentes paralelos | Pizarra atómica: |
Gasto excesivo / costos descontrolados |
|
Sin visibilidad de lo que hicieron los agentes | Registro de auditoría firmado con HMAC / Ed25519 en cada escritura, concesión de permisos y transición FSM |
Atrapado en un solo marco de IA | 17 adaptadores — mezcla LangChain + AutoGen + CrewAI + Codex + MiniMax + NemoClaw + APS + personalizado en un enjambre |
Agentes escalando más allá de su alcance |
|
Agentes sin contexto de proyecto entre ejecuciones |
|
Sin seguimiento de regresión en la calidad de salida |
|
Arquitectura
%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#1e293b', 'primaryTextColor': '#e2e8f0', 'primaryBorderColor': '#475569', 'lineColor': '#94a3b8', 'clusterBkg': '#0f172a', 'clusterBorder': '#334155', 'edgeLabelBackground': '#1e293b', 'edgeLabelColor': '#cbd5e1', 'titleColor': '#e2e8f0'}}}%%
flowchart TD
classDef app fill:#1e3a5f,stroke:#3b82f6,color:#bfdbfe,font-weight:bold
classDef security fill:#451a03,stroke:#d97706,color:#fde68a
classDef routing fill:#14532d,stroke:#16a34a,color:#bbf7d0
classDef quality fill:#3b0764,stroke:#9333ea,color:#e9d5ff
classDef blackboard fill:#0c4a6e,stroke:#0284c7,color:#bae6fd
classDef adapters fill:#064e3b,stroke:#059669,color:#a7f3d0
classDef audit fill:#1e293b,stroke:#475569,color:#94a3b8
App["Your Application"]:::app
App -->|"createSwarmOrchestrator()"| SO
subgraph SO["SwarmOrchestrator"]
AG["AuthGuardian\n(HMAC / Ed25519 permission tokens)"]:::security
AR["AdapterRegistry\n(route tasks to frameworks)"]:::routing
QG["QualityGateAgent\n(validate blackboard writes)"]:::quality
QA["QAOrchestratorAgent\n(scenario replay, regression tracking)"]:::quality
BB["SharedBlackboard\n(shared agent state)\npropose → validate → commit\nfilesystem mutex"]:::blackboard
AD["Adapters — plug any framework in, swap freely\nLangChain · AutoGen · CrewAI · MCP · LlamaIndex · …"]:::adapters
AG -->|"grant / deny"| AR
AR -->|"tasks dispatched"| AD
AD -->|"writes results"| BB
QG -->|"validates"| BB
QA -->|"orchestrates"| QG
end
SO --> AUDIT["data/audit_log.jsonl\n(HMAC / Ed25519-signed)"]:::audit
FederatedBudgetes una exportación independiente — instáncialo por separado y opcionalmente conéctalo a un backend de pizarra para la aplicación de presupuestos de tokens entre nodos.
ProjectContextManageres un ayudante de Python de Capa 3 (scripts/context_manager.py) que inyecta objetivos, decisiones e hitos persistentes del proyecto en los prompts del sistema de los agentes — ver ARCHITECTURE.md § Layer 3.
→ Arquitectura completa, viaje FSM y protocolo de entrega
Instalación
npm install network-aiSin dependencias nativas, sin paso de compilación. Los adaptadores no tienen dependencias (BYOC — trae tu propio cliente).
Uso como servidor MCP
Inicia el servidor (no requiere configuración, cero dependencias):
npx network-ai-server --port 3001
# or from source:
npx ts-node bin/mcp-server.ts --port 3001Luego conecta cualquier cliente compatible con MCP.
Claude Desktop — añade a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"network-ai": {
"url": "http://localhost:3001/sse"
}
}
}Cursor / Cline / cualquier cliente MCP basado en SSE — apunta a la misma URL:
{
"mcpServers": {
"network-ai": {
"url": "http://localhost:3001/sse"
}
}
}Verifica que se esté ejecutando:
curl http://localhost:3001/health # { "status": "ok", "tools": <n>, "uptime": <ms> }
curl http://localhost:3001/tools # full tool listHerramientas expuestas a través de MCP:
blackboard_read/blackboard_write/blackboard_list/blackboard_delete/blackboard_existsbudget_status/budget_spend/budget_reset— seguimiento federado de tokenstoken_create/token_validate/token_revoke— tokens de permiso firmados con HMAC / Ed25519audit_query— consulta el registro de auditoría de solo adiciónconfig_get/config_set— configuración del orquestador en vivoagent_list/agent_spawn/agent_stop— ciclo de vida del agentefsm_transition— escribe transiciones de estado FSM en la pizarra
Cada herramienta toma un parámetro agent_id — todas las escrituras están verificadas por identidad y con alcance de espacio de nombres, exactamente como en la API de TypeScript.
Opciones: --no-budget, --no-token, --no-control, --ceiling <n>, --board <name>, --audit-log <path>.
CLI
Controla Network-AI directamente desde la terminal — no se requiere servidor. La CLI importa el mismo motor central utilizado por el servidor MCP.
# One-off commands (no server needed)
npx ts-node bin/cli.ts bb set status running --agent cli
npx ts-node bin/cli.ts bb get status
npx ts-node bin/cli.ts bb snapshot
# After npm install -g network-ai:
network-ai bb list
network-ai audit tail # live-stream the audit log
network-ai auth token my-bot --resource blackboardGrupo de comandos | Qué controla |
| Pizarra — obtener, establecer, eliminar, listar, instantánea, proponer, confirmar, abortar |
| AuthGuardian — emitir tokens, revocar, verificar permisos |
| FederatedBudget — estado de gasto, establecer límite |
| Registro de auditoría — imprimir, seguimiento en vivo, borrar |
Flags globales en cada comando: --data <path> (directorio de datos, por defecto ./data) · --json (salida legible por máquina)
→ Referencia completa en QUICKSTART.md § CLI
Dos agentes, un estado compartido — sin condiciones de carrera
El verdadero diferenciador es la coordinación. Esto es lo que ninguna solución de un solo marco maneja: dos agentes escribiendo en el mismo recurso simultáneamente, de forma atómica, sin corromperse entre sí.
import { LockedBlackboard, CustomAdapter, createSwarmOrchestrator } from 'network-ai';
const board = new LockedBlackboard('.');
const adapter = new CustomAdapter();
// Agent 1: writes its analysis result atomically
adapter.registerHandler('analyst', async () => {
const id = board.propose('report:status', { phase: 'analysis', complete: true }, 'analyst');
board.validate(id, 'analyst');
board.commit(id); // file-system mutex — no race condition possible
return { result: 'analysis written' };
});
// Agent 2: runs concurrently, writes to its own key safely
adapter.registerHandler('reviewer', async () => {
const id = board.propose('report:review', { approved: true }, 'reviewer');
board.validate(id, 'reviewer');
board.commit(id);
const analysis = board.read('report:status');
return { result: `reviewed phase=${analysis?.phase}` };
});
createSwarmOrchestrator({ adapters: [{ adapter }] });
// Both fire concurrently — mutex guarantees no write is ever lost
const [, ] = await Promise.all([
adapter.executeAgent('analyst', { action: 'run', params: {} }, { agentId: 'analyst' }),
adapter.executeAgent('reviewer', { action: 'run', params: {} }, { agentId: 'reviewer' }),
]);
console.log(board.read('report:status')); // { phase: 'analysis', complete: true }
console.log(board.read('report:review')); // { approved: true }Añade presupuestos, permisos y agentes entre marcos con el mismo patrón. → QUICKSTART.md
Demostración — Prueba de estrés del plano de control (sin clave API)
Se ejecuta en ~3 segundos. Demuestra las primitivas de coordinación sin ninguna llamada a LLM.
npm run demo -- --08Lo que muestra: bloqueo atómico de pizarra, desalojo por prioridad (la prioridad 3 gana sobre la prioridad 0 en la misma clave), puerta de permisos AuthGuardian (bloqueado → justificado → concedido con token), parada forzada FSM a 700 ms, captura de violación de cumplimiento en vivo (TOOL_ABUSE, TURN_TAKING, RESPONSE_TIMEOUT, JOURNEY_TIMEOUT) y seguimiento de FederatedBudget — todo sin una sola llamada a API.

Tubería de IA de 8 agentes (requiere OPENAI_API_KEY — construye un servicio de procesamiento de pagos de extremo a extremo):
npm run demo -- --07
Enjambre de sandbox NemoClaw (sin clave API) — 3 agentes en sandboxes aislados de NVIDIA NemoClaw con políticas de red de denegación por defecto:
npx ts-node examples/10-nemoclaw-sandbox-swarm.tsLatest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jovancoding/network-ai'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
](