Skip to main content
Glama

Hermes Brain

Orquestación multi-agente para Hermes Agent

Despliega agentes Hermes en paralelo. Dales un cerebro compartido. Lanza en un solo comando.Respaldado por SQLite, coordinado por Python, cero tokens gastados en coordinación.

License: MIT Python Node.js Hermes MCP

Instalación · Inicio rápido · Cómo funciona · CLI · Herramientas · Banco de memoria · Desarrollo


Instalación

Opción 1 — bootstrap desde el código fuente (recomendado para Hermes)

curl -fsSL https://raw.githubusercontent.com/DevvGwardo/brain-mcp/main/install.sh | bash

El instalador:

  1. Compila el servidor MCP de Node.js (brain-mcp)

  2. Instala el paquete de orquestación de Python (hermes-brain)

  3. Registra el cerebro como un servidor MCP en Hermes

Opción 2 — instalación manual

git clone https://github.com/DevvGwardo/brain-mcp.git
cd brain-mcp
npm install
npm run build
pip install -e .
hermes mcp add brain --command node --args "$PWD/dist/index.js"

Nota: el paquete npm aún no está publicado, por lo que la ruta de instalación del repositorio es la ruta soportada por ahora.

Verificación:

hermes mcp list | grep brain
hermes mcp test brain
hermes-brain --help

Requisitos previos: Python 3.10+, Node.js 18+, Hermes Agent

¿Compartiendo con amigos? El cerebro de cada persona es su propia base de datos SQLite aislada; no se necesita configuración de red. La misma línea de comando funciona en cualquier lugar.

Usuarios de Docker: Despliega agentes con layout: "headless" ya que los paneles de tmux no pueden renderizarse en un contenedor sin cabeza:

brain_wake({ task: "...", layout: "headless" })

Inicio rápido

Un comando para orquestar una flota de agentes Hermes:

hermes-brain "Build a REST API with auth, users, and posts" \
  --agents api-routes auth-layer db-models tests

Lo que sucede:

  1. El conductor de Python despliega 4 agentes Hermes en segundo plano (hermes -q)

  2. Cada agente reclama sus archivos, publica contratos, escribe código y envía latidos (heartbeats)

  3. El conductor ejecuta una puerta de integración — compila el proyecto, redirige los errores a los agentes responsables mediante DM

  4. Los agentes se autocorrigen. La puerta reintenta hasta que esté limpio.

  5. Resumen impreso: agentes, contratos, memorias, métricas, listo.

Más formas de ejecutarlo:

# Auto-named agents
hermes-brain "Add error handling to the whole codebase"

# Mix models per task
hermes-brain "Build a game" --agents engine ui store --model claude-sonnet-4-5

# Cheap model for boilerplate
hermes-brain "Generate 10 test files" --model claude-haiku-4-5

# JSON pipeline with multiple phases
hermes-brain --config pipeline.json

O desde dentro de Hermes (interactivo):

hermes> Use register, then wake to spawn 3 agents
        that each refactor a different module.

Cómo funciona

graph TB
    subgraph "Python Conductor"
        CLI["hermes-brain CLI"]
        ORCH["Orchestrator<br/><small>spawn · wait · gate · retry</small>"]
    end

    subgraph "Hermes Agents"
        direction LR
        H1["Agent 1<br/><small>hermes -q</small>"]
        H2["Agent 2<br/><small>hermes -q</small>"]
        H3["Agent 3<br/><small>hermes -q</small>"]
    end

    CLI --> ORCH
    ORCH -->|spawn| H1
    ORCH -->|spawn| H2
    ORCH -->|spawn| H3

    subgraph "Brain (shared SQLite)"
        DB[("brain.db")]
        PULSE["Heartbeats"]
        MX["Mutex Locks"]
        KV["Shared State"]
        CON["Contracts"]
        MEM["Memory"]
        PLAN["Task DAG"]
    end

    ORCH <--> DB
    H1 <--> DB
    H2 <--> DB
    H3 <--> DB

    subgraph "Integration Gate"
        GATE["tsc · mypy · cargo · go vet"]
        ROUTE["DM errors → agents"]
    end

    ORCH --> GATE
    GATE --> ROUTE
    ROUTE -.->|DM| H1
    ROUTE -.->|DM| H2

    style CLI fill:#9333EA,stroke:#7C3AED,color:#fff
    style ORCH fill:#9333EA,stroke:#7C3AED,color:#fff
    style H1 fill:#3B82F6,stroke:#2563EB,color:#fff
    style H2 fill:#10B981,stroke:#059669,color:#fff
    style H3 fill:#F59E0B,stroke:#D97706,color:#000
    style DB fill:#1E293B,stroke:#334155,color:#fff
    style GATE fill:#EF4444,stroke:#DC2626,color:#fff

Arquitectura

Este diagrama muestra la arquitectura interna de brain-mcp y cómo interactúan sus componentes:

graph TB
    subgraph "External Clients"
        HERMES["Hermes CLI"]
        CLAUDE["Claude Code"]
        ANY["Any MCP Client"]
    end

    subgraph "brain-mcp (Node.js)"
        SERVER["src/index.ts<br/>MCP Request Router"]
        CONDUCTOR["brain-conductor<br/>Zero-token Orchestration CLI"]
        GATE["src/gate.ts<br/>Integration Gate"]
    end

    subgraph "pi-agent-core Runtime"
        PI_CORE["src/pi-core-agent.ts<br/>In-process Agent Runner"]
        PI_CORE_TOOLS["src/pi-core-tools.ts<br/>14 Brain Tools as AgentTools"]
        PI_AGENT["pi-agent-core Agent<br/>model + tools + events"]
    end

    subgraph "BrainDB (SQLite)"
        DB[("brain.db<br/>sessions, state, messages,<br/>claims, contracts, memory")]
    end

    HERMES & CLAUDE & ANY --> SERVER
    SERVER <--> DB
    SERVER --> CONDUCTOR
    CONDUCTOR --> PI_CORE
    PI_CORE --> PI_CORE_TOOLS
    PI_CORE --> PI_AGENT
    PI_CORE_TOOLS --> DB
    PI_AGENT -->|beforeToolCall<br/>pulse| DB
    CONDUCTOR --> GATE
    GATE -->|DM errors| CONDUCTOR

    style HERMES fill:#FF6B6B,stroke:#DC2626,color:#fff
    style CLAUDE fill:#3B82F6,stroke:#2563EB,color:#fff
    style ANY fill:#7C3AED,stroke:#6D28D9,color:#fff
    style SERVER fill:#1E293B,stroke:#334155,color:#fff
    style CONDUCTOR fill:#9333EA,stroke:#7C3AED,color:#fff
    style GATE fill:#EF4444,stroke:#DC2626,color:#fff
    style PI_CORE fill:#10B981,stroke:#059669,color:#fff
    style PI_CORE_TOOLS fill:#059669,stroke:#047857,color:#fff
    style PI_AGENT fill:#06B6D4,stroke:#0891B2,color:#fff
    style DB fill:#1E293B,stroke:#334155,color:#fff

pi-agent-core es el tiempo de ejecución del agente LLM — maneja el bucle de interacción del modelo, la ejecución de herramientas y la suscripción a eventos. brain-mcp proporciona la capa de coordinación (estado, mensajería, latidos, bloqueos, contratos) como herramientas que llaman los agentes pi. El conductor une todo con fases, puertas y diseño de tmux.

Coordinación de cero tokens. El conductor es Python puro — los tokens de LLM solo se gastan en el trabajo real. Los latidos, reclamos, contratos, puertas y reintentos se ejecutan localmente.

Sin servidor que gestionar. Cada agente abre su propia conexión stdio al cerebro. El modo WAL de SQLite maneja el acceso concurrente de forma segura.

Mismo cerebro, cualquier CLI. Hermes, Claude Code, MiniMax — todos los clientes acceden a la misma base de datos SQLite. Una flota mixta de agentes Hermes + Claude puede coordinarse en la misma tarea.


La CLI hermes-brain

hermes-brain <task> [options]

Flag

Predeterminado

Qué hace

--agents <nombres...>

agent-1 agent-2

Nombres de agentes a desplegar en paralelo

--model <id>

claude-sonnet-4-5

Modelo pasado a cada agente

--no-gate

desactivado

Saltar la puerta de integración

--retries <n>

3

Intentos máximos de reintento de puerta

--timeout <segundos>

600

Tiempo de espera por agente

--config <archivo.json>

Cargar una tubería multifase

--db-path <ruta>

~/.claude/brain/brain.db

Base de datos del cerebro personalizada

Archivo de configuración de tubería

{
  "task": "Build a todo app",
  "model": "claude-sonnet-4-5",
  "gate": true,
  "max_gate_retries": 3,
  "phases": [
    {
      "name": "foundation",
      "parallel": true,
      "agents": [
        { "name": "types",  "files": ["src/types/"], "task": "Define all TS types" },
        { "name": "db",     "files": ["src/db/"],    "task": "Set up Prisma schema" }
      ]
    },
    {
      "name": "feature",
      "parallel": true,
      "agents": [
        { "name": "api",    "files": ["src/api/"],   "task": "REST endpoints" },
        { "name": "ui",     "files": ["src/ui/"],    "task": "React components" }
      ]
    },
    {
      "name": "quality",
      "parallel": true,
      "agents": [
        { "name": "tests",  "task": "Write unit + integration tests" }
      ]
    }
  ]
}

Las fases se ejecutan secuencialmente. Los agentes dentro de una fase se ejecutan en paralelo. La puerta de integración se ejecuta entre fases.


Herramientas del cerebro

Más de 35 herramientas en 12 categorías. Todas disponibles para Hermes, Claude Code y cualquier agente compatible con MCP.

Identidad y salud

Herramienta

Qué hace

brain_register

Nombrar esta sesión

brain_sessions

Listar sesiones activas

brain_status

Mostrar información de sesión + sala

brain_pulse

Latido con estado + progreso (devuelve DMs pendientes)

brain_agents

Salud en vivo de todos los agentes (estado, antigüedad del latido, reclamos)

Mensajería

Herramienta

Qué hace

brain_post

Publicar en un canal

brain_read

Leer de un canal

brain_dm

Mensaje directo a otro agente

brain_inbox

Leer tus DMs

Estado compartido y memoria

Herramienta

Qué hace

brain_set / brain_get

Almacén efímero clave-valor

brain_keys / brain_delete

Listar / eliminar claves

brain_remember

Almacenar conocimiento persistente (sobrevive a brain_clear)

brain_recall

Buscar memorias de sesiones anteriores

brain_forget

Eliminar memorias obsoletas

Bloqueo de archivos

Herramienta

Qué hace

brain_claim

Bloquear un archivo/recurso (mutex basado en TTL)

brain_release

Desbloquear

brain_claims

Listar bloqueos activos

Contratos (previene errores de integración)

Herramienta

Qué hace

brain_contract_set

Publicar lo que tu módulo proporciona / espera

brain_contract_get

Leer contratos de otros agentes antes de programar

brain_contract_check

Validar todos los contratos — detecta desajustes de parámetros, funciones faltantes

Puerta de integración

Herramienta

Qué hace

brain_gate

Ejecutar compilación + verificación de contrato, enviar errores por DM a los agentes responsables

brain_auto_gate

Ejecutar puerta en bucle, esperar correcciones, reintentar hasta que esté limpio

Planificación de tareas (DAG)

Herramienta

Qué hace

brain_plan

Crear un DAG de tareas con dependencias

brain_plan_next

Obtener tareas cuyas dependencias están satisfechas

brain_plan_update

Marcar tarea como hecha/fallida (promueve automáticamente a los dependientes)

brain_plan_status

Progreso general

brain_workflow_compile

Convertir un objetivo en lenguaje natural en fases, agentes, alcances de archivos y configuración del conductor

brain_workflow_apply

Persistir el flujo de trabajo compilado en el estado del cerebro + un DAG de tareas, opcionalmente escribir JSON del conductor

Orquestación

Herramienta

Qué hace

brain_wake

Desplegar un nuevo agente (hermes, claude o headless)

brain_swarm

Desplegar múltiples agentes en una llamada

brain_respawn

Reemplazar un agente fallido con contexto de recuperación

brain_metrics

Tasas de éxito, duración, conteo de errores por agente

Libro mayor de contexto (evita perder el rastro)

Herramienta

Qué hace

brain_context_push

Registrar acción/descubrimiento/decisión/error

brain_context_get

Leer el libro mayor

brain_context_summary

Vista condensada para recuperación de contexto

brain_checkpoint

Guardar estado de trabajo completo

brain_checkpoint_restore

Recuperar después de la compresión de contexto


Protocolo de latido y contrato

Cada agente desplegado sigue dos protocolos que el orquestador hace cumplir:

Latido (Heartbeat) — los agentes llaman a brain_pulse cada 2-3 llamadas de herramientas con su estado y una breve nota de progreso. El conductor usa esto para:

  • Mostrar el estado en vivo en la terminal (● trabajando — editando src/api/routes.ts)

  • Detectar agentes estancados (sin pulso en 60s → obsoleto)

  • Entregar DMs pendientes como valores de retorno del pulso (sin viaje de ida y vuelta adicional)

Contratos — antes de que los agentes escriban código, llaman a brain_contract_get para ver qué exportan otros agentes. Después de escribir, publican su propio contrato con brain_contract_set. Antes de marcar como hecho, brain_contract_check valida toda la flota — detecta:

  • Desajustes en la firma de funciones (se esperaban 2 argumentos, se obtuvieron 3)

  • Exportaciones faltantes (el agente A importa getUser pero el agente B nunca lo exportó)

  • Deriva de tipos (se esperaba User, se obtuvo {name, email})

Esta es la clave para igualar la calidad de integración de un solo agente con una flota paralela.


Puerta de integración

sequenceDiagram
    participant O as Orchestrator
    participant C as Compiler
    participant DB as Brain DB
    participant A as Agent

    O->>C: Run tsc / mypy / cargo / go vet
    C-->>O: Errors with file:line:message

    O->>DB: Query: who claimed this file?
    DB-->>O: Agent X owned src/api/routes.ts

    O->>A: DM: "Fix these errors in your files"
    Note over A: Agent reads DM on next pulse
    Note over A: Fixes code, pulses done

    O->>C: Re-run compiler
    C-->>O: Clean
    O->>DB: Record metrics

La puerta detecta automáticamente el lenguaje del proyecto y ejecuta el verificador apropiado:

Lenguaje

Verificador

TypeScript

npx tsc --noEmit

Python

mypy

Rust

cargo check

Go

go vet

Los errores se analizan, se comparan con el agente que reclamó el archivo fallido y se redirigen como un DM. Los agentes recogen sus errores en el siguiente pulso y se autocorrigen. El bucle reintenta hasta --retries veces antes de rendirse.


Flotas mixtas

La base de datos del cerebro se comparte entre todos los clientes MCP. Un solo proyecto puede tener:

graph LR
    subgraph "Fleet"
        direction TB
        HA["Hermes Agent<br/><small>fast local inference</small>"]
        CC["Claude Code<br/><small>deep reasoning</small>"]
        MM["MiniMax<br/><small>cheap boilerplate</small>"]
    end

    subgraph "Brain"
        DB[("brain.db")]
    end

    HA <--> DB
    CC <--> DB
    MM <--> DB

    style HA fill:#F59E0B,stroke:#D97706,color:#000
    style CC fill:#9333EA,stroke:#7C3AED,color:#fff
    style MM fill:#3B82F6,stroke:#2563EB,color:#fff
    style DB fill:#1E293B,stroke:#334155,color:#fff

Enruta por tipo de tarea. Usa Hermes para trabajo rutinario, Claude para decisiones arquitectónicas, modelos más baratos para código repetitivo — todo coordinándose a través del mismo cerebro, compartiendo contratos, puertas y memoria.

Desde Claude Code:

brain_wake({ task: "...", cli: "hermes", layout: "headless" })
brain_wake({ task: "...", cli: "claude", layout: "horizontal" })

Avanzado

Todo lo siguiente cubre la profundidad técnica completa.


Rendimiento

Ejecuta los benchmarks tú mismo:

node benchmark.mjs        # SQLite direct layer (1000 iterations)
node benchmark-mcp.mjs    # MCP tool layer (30 iterations per tool)

Capa directa de SQLite (2026-04-06, M4 Pro, modo WAL)

Operación

prom

p50

p95

p99

rendimiento

session_register

0.021ms

0.011ms

0.027ms

0.039ms

~47K/s

message_post (1 msg)

0.014ms

0.011ms

0.019ms

0.031ms

~70K/s

message_read (50 msgs)

0.042ms

0.042ms

0.045ms

0.066ms

~24K/s

state_get

0.002ms

0.002ms

0.002ms

0.003ms

~570K/s

claim_query (all)

0.001ms

0.001ms

0.002ms

0.002ms

~670K/s

heartbeat_pulse (update)

0.002ms

0.002ms

0.002ms

0.003ms

~464K/s

session_query (by id)

0.002ms

0.002ms

0.002ms

0.003ms

~455K/s

SQLite directo: cada operación de coordinación central es de sub-milisegundos. El almacén KV (state_get) mantiene ~570K lecturas/s. La coordinación de alta frecuencia (latidos, reclamos, estado) se mantiene muy por debajo de 1ms.

Capa de herramientas MCP (2026-04-06, stdio JSON-RPC, 30 llamadas cada una)

Herramienta

prom

p50

p95

mín

máx

brain_status

12.2ms

12.0ms

15.6ms

8.8ms

21.2ms

brain_sessions

1.9ms

1.7ms

3.6ms

0.9ms

4.7ms

brain_keys

1.6ms

1.6ms

2.6ms

0.8ms

4.5ms

brain_claims

2.0ms

1.8ms

3.4ms

1.2ms

4.9ms

brain_metrics

2.0ms

1.9ms

4.0ms

1.1ms

4.4ms

Las llamadas a herramientas MCP incluyen encuadre JSON-RPC, IPC stdio, despacho de herramientas TypeScript y consulta SQLite. La mayoría de las herramientas responden en 1-2ms una vez que el servidor está caliente. brain_status es más lento (12ms) porque agrega datos

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest 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/DevvGwardo/brain-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server