Saltar al contenido principal

Arquitectura canónica

Lo que se despliega es un swarm gobernado. Puede ser un agente o muchos; lo que no cambia es el gobierno: identidad registrada, frontera que no se cruza, procedencia de cada entregable y juicio sobre el resultado.

El dominio de cliente es cualquier institución — ministerio, banco, hospital, despacho, universidad, equipo de operaciones. La arquitectura no privilegia un sector: privilegia que la unidad desplegada tenga frontera y responsable.

Cada agents-host representa una unidad organizacional soberana: su propia identidad, memoria, Task Queue, gobernanza, agentes y capacidad de federar. El conjunto de hosts federados es la organización completa.

agents-host es la unidad de escalado y de entrega. No se escala añadiendo escritorios virtuales a un host central: se escala desplegando nuevos agents-host. La Task Queue es local por host; la coordinación entre unidades no pasa por una cola global sino por federación.

Simular no es operar. Existe un vecindario académico que simula sociedades de agentes a escala para estudiar comportamiento. Esta arquitectura despliega para trabajar: los agentes reciben un encargo real y devuelven un entregable con sello, fuentes y autor.

Arnés y exoarnés

El arnés del agente (runtime intercambiable) es el andamiaje del agente individual: bucle del modelo, herramientas/MCP, memoria procedimental, sesiones, documento de identidad como ancla y Task Queue local.

Self-Improving Society es el exoarnés — la capa institucional que envuelve a todos los agentes: identidad registrada, memoria social, juicio, gobernanza, reproducción y observabilidad.

Un agente sin el exoarnés es un proceso. Con él, es un ciudadano de una institución.

En material externo se declara el sentido: exoarnés, en el sentido del exoesqueleto — la capa institucional que envuelve al arnés del agente. Cuando el interlocutor viene de la tradición meta-harness, el término es equivalente.

flowchart TB
    subgraph HARNESS["Arnés del agente (por agente — intercambiable)"]
        LOOP["Bucle del modelo + herramientas/MCP"]
        SOUL["Documento de identidad — ancla (B)"]
        PMEM["Memoria procedimental + habilidades locales (A)"]
        KLOC[("Task Queue local soberana por host")]
    end
    subgraph EXO["Exoarnés (la institución)"]
        REG[("Registro de identidad: hosts, specs, confianza, aprobaciones")]
        MEM["Memoria: recuperación privada/episódica + hechos sociales"]
        JUD["Juicio: evaluador, sello borrador, escalera fitness F0–F5"]
        GOV["Volición gobernada: aprobaciones, presupuestos (L1–L8)"]
        REPRO["Reproducción: ciclo de vida, presets, brazo gateado"]
        PERC["Percepción: telemetría, grafo social"]
        VOICE["Conversation Gateway"]
    end
    subgraph SUB["Sustrato compartido"]
        LLMR["LLM Router"]
        VDB[("VectorDB")]
        PG[("Base relacional de metadatos")]
        OBJ[("Almacén de objetos")]
    end
    HARNESS --> PERC
    HARNESS --> MEM
    LOOP --> LLMR
    JUD --> KLOC
    REPRO --> HARNESS
    VOICE --> HARNESS
    MEM --> VDB
    REG --> PG

Vista de alto nivel

flowchart TB
    Operator[Operador humano] --> CLI[society CLI / Society Builder]
    Operator --> UI[Consola]
    Operator --> WebUI[Conversation UI]

    subgraph HostA["agents-host A (unidad soberana)"]
        KA[("Task Queue")]
        PA["perfiles"]
        HostApiA["Agent API\nchat · tareas · snapshot del host"]
        KA --- PA --> HostApiA
    end

    subgraph HostB["agents-host B (otra jurisdicción)"]
        KB[("Task Queue")]
        PB["perfiles"]
        HostApiB["Agent API"]
        KB --- PB --> HostApiB
    end

    subgraph Control["Plano de control"]
        Chat[Conversation Gateway]
        Fleet[fleet-manager]
        Gov[governance]
        Eval[evaluator]
        Tel["Backend de la Consola"]
        Exec["Brazo gateado\nsin puerto publicado"]
    end

    subgraph Shared["Sustrato compartido"]
        LLM[LLM Router]
        Vec[(VectorDB)]
        DB[(Base relacional de metadatos)]
        Obj[(Almacén de objetos)]
        Onto["Banco de ontología\nred interna"]
    end

    WebUI --> Chat
    CLI --> Fleet
    Fleet --> HostApiA
    Fleet --> HostApiB
    Chat --> HostApiA
    Chat --> HostApiB
    Tel --> HostApiA
    Tel --> HostApiB
    Tel --> Exec
    Exec -. "solo specs aprobados" .-> HostA
    UI --> Tel
    Tel --> Onto

    HostA <-. "A2A — dirigido, token por llamante" .-> HostB

    HostA --> Shared
    HostB --> Shared
    Eval --> DB
    Gov --> DB

El tráfico entre hosts es auditado, no firmado criptográficamente en el transporte actual: la confianza cross-host descansa en política, tokens bearer por llamante y fronteras de red.

Dentro de un agents-host

Responsabilidades: mantener el directorio de datos del runtime; correr la Task Queue local; gestionar los perfiles de agente; exponer la Agent API (chat por perfil, listado y ejecución de tareas, snapshot del host).

Un perfil se compone de: documento de identidad (ancla B), configuración (modelo, proveedor, MCPs), credenciales aisladas, corpus declarativo privado (A), habilidades locales (A), memoria de runtime (A) y sesiones (B).

flowchart TB
    subgraph Host["agents-host"]
        TaskQueue[("Task Queue")]
        Snapshot["Host Snapshot API\nchat · tareas · internos"]
        subgraph Agents["agentes — volumen de documentos privados"]
            A1["Agente A\nidentidad + config + docs privados (A/B)"]
            A2["Agente B\nidentidad + config + docs privados (A/B)"]
        end
        MCPs["Herramientas MCP compartidas\nRAG · Skills · Artefactos · Hechos · Telemetría · Visión"]
    end
    Snapshot --> TaskQueue
    Snapshot --> Agents
    A1 --> LLMRouter[LLM Router]
    A2 --> LLMRouter
    A1 --> MCPs
    A2 --> MCPs
    MCPs --> VectorDB[(VectorDB)]
    MCPs --> ObjStorage[(Almacén de objetos)]
    Host -. "bajo demanda" .-> Runtime["agents-runtime\nescritorio virtual"]

Sustrato compartido vs. dedicado

Sustrato compartido (piloto por defecto): un solo LLM Router, VectorDB, almacén de objetos y base relacional físicos; aislamiento lógico por namespaces, colecciones, buckets y metadatos tenant/host/perfil.

Sustrato dedicado: instancias por host o por tenant cuando la regulación o el riesgo lo exijan.

Pieza canónicaPapel
Base relacional de metadatosFuente persistente: agentes, objetivos, aprobaciones, auditoría
VectorDBRecuperación semántica, aislada por colección
Almacén de objetosEntregables y evidencia
LLM RouterUna interfaz hacia muchos proveedores, con presupuesto
Conversation GatewaySuperficie compatible con la API de chat-completions
ConsolaOperar + Explorar (grafo operacional vivo)
Brazo gateadoCrea y destruye instituciones; sin puerto publicado
Banco de ontologíaCatálogo RDF/SHACL/SPARQL; no es el grafo vivo

Fronteras

Frontera de host. Cada agents-host tiene su disco, su Task Queue, sus credenciales y sus perfiles. La cola local no se comparte. La biblioteca vectorial privada de un host no cruza a otro sin exportación explícita y aprobación humana.

Frontera cerebro → gate → brazo. El brazo gateado aplica el despliegue físico de instituciones y rechaza un spec que no esté aprobado. Los componentes que proponen no ejecutan: el gate real exige el estado approved.

Frontera de identidad. Un agente no es un nombre: es el par (host, nombre), en forma de identificador de miembro al estilo X-Road (INSTANCIA/CLASE/miembro/subsistema). La ambigüedad se resuelve con políticas distintas según el servicio: en caminos de gobernanza y evaluación se rechaza; en enlaces decorativos se advierte y se deja vacío.

Capas de soberanía

Soberana — por host, no se comparte sin federación. Task Queue local · perfiles (identidad, configuración, credenciales) · recuperación privada por host y perfil · memoria y sesiones · perímetro de red del contenedor.

De plataforma — compartida o dedicada según política. Base relacional · VectorDB · almacén de objetos · LLM Router · banco de ontología. Hoy el aislamiento es por instalación: un stack dedicado por cliente.

Federada — circula entre hosts con procedencia intacta. Skills publicadas · hechos sociales compartibles · biblioteca pública exportable (rag_public) · tareas federadas y handoffs · política de confianza entre hosts.

Metáfora de biblioteca: metadatos de sociedad = registro civil y biblioteca pública de la polis; corpus privado del agente = biblioteca privada del individuo; skills compartidas = estante público de habilidades reutilizables; hechos auditables = hallazgos compartibles con procedencia.

Cuatro capas de conocimiento (no se colapsan)

CapaPregunta que respondeQué no es
Grafo operacional vivo¿Qué está pasando ahora en esta institución?No es un almacén: se recalcula en cada petición
Banco de ontología¿Qué significa y es esto válido según el catálogo?El contrato semántico (PROV-O, ORG, OWL-Time, SHACL)
Grafo compilado del código¿Cómo está hecho el software?No es verdad de runtime
Contexto episódico¿Qué ocurrió en esta sesión, en este tramo?No sustituye el grafo operacional

Sustituir el panel de operación por el explorador del catálogo sería cambiar un sistema en marcha por un visor de un grafo que ya existe. Se integran; no se funden.

El vocabulario del catálogo es cerrado: tipos de nodo o arista que el código emita y la ontología no declare fallan la validación en el pipeline de calidad.

Interoperabilidad

A2A v1.0 — la unidad expuesta es el contenedor, no el agente individual. Es dirigido (el mapa sale de políticas de confianza), no descubrimiento abierto. Exponerse exige dos gestos deliberados: un token y una declaración de host.

MCP. La plataforma es fuerte como cliente y limitada como servidor: los MCP propios son stdio-only, sin HTTP/SSE — solo los alcanza el proceso del agente.

Restricciones no negociables

  • La Task Queue local se accede solo desde su agents-host.
  • Cada perfil tiene colección de recuperación propia. No se comparten entre perfiles.
  • La biblioteca privada de un host no cruza a otro sin exportación explícita y aprobación humana.
  • Skills y hechos circulan entre hosts con procedencia intacta.
  • El arquitecto propone; no provisiona. El despliegue exige spec approved.
  • No hay auto-mejora sobre pesos del modelo.