Saltar a contenido

Funciones

AgenticOS te da lo siguiente.

El código define, la configuración compone

Esa única frase es todo el diseño, y describe dos mitades que a propósito no son el mismo trabajo.

Un equipo de negocio compone agents en un navegador. Instrucciones, un modelo, un conjunto de capabilities, un budget — nada de Python, ni pull request, ni release. El spec es un documento, así que se versiona al publicarlo y se exporta como YAML a tu propio repositorio de git.

A la consola le basta con un navegador. La aplicación de escritorio envuelve esa misma consola para quien la quiera en el dock - con una mascota y un atajo de captura de pantalla - y es un complemento, no una segunda forma de ejecutar la plataforma.

Los ingenieros amplían lo que hay para componer. Una capability es Python tipado y probado en este repositorio: una tool que el modelo puede llamar, un guardrail, una estrategia de compactación, un conector. Añades una y, desde ese momento, es un interruptor en el Builder de todo el mundo.

La regla entre las dos mitades es la parte que sostiene el edificio:

La configuración solo puede alcanzar lo que el código registró

Que es exactamente lo que hace seguro poner un Builder no-code en manos de alguien que no es ingeniero. No puede inventarse una tool, ampliar un scope ni alcanzar un sistema que nadie ha cableado — lo peor que puede hacer es montar cosas que ya estaban aprobadas.

Así que el techo no es un archivo de configuración. Es lo que tus ingenieros pongan en el registry, y la plataforma es Apache-2.0, así que eso incluye todo lo que escribas para tu propio caso de uso.

Lo que quieres Lo que haces
Otra respuesta de un agent Edita las instrucciones y publica. Segundos, sin ingeniero
Una tool para un producto SaaS Apunta a un servidor MCP. Normalmente, nada de código
Una tool que no ha escrito nadie Añade una capability — Python tipado, y aparece en el Builder
Otra ingesta, otro canal u otro conector Amplía la plataforma; el mismo patrón cada vez
Todo el conjunto amoldado a un proceso Fórkalo. Es tu despliegue y tu código fuente

La separación es justo el objetivo

Quien sabe lo que el agent debería decir rara vez es quien tiene acceso de commit — y quien sabe escribir una tool no debería pasarse la semana cambiando redacciones. Esta es la línea que permite a los dos trabajar sin esperar al otro.

Por qué esto se llama un sistema operativo

Porque la palabra es una especificación y no una etiqueta: procesos, límites de recursos, control de acceso, drivers, un sistema de archivos, una sola shell para muchas interfaces y un registro de auditoría. De cada uno hay un mecanismo en esta página. Los siete, y cómo medir cualquier otro producto con ellos →

Construido en una UI, versionado al publicar

Construyes el agent en el navegador. Cuando lo publicas, el spec se congela como una versión y esa versión es la que se ejecuta — un borrador que sigues editando no llega nunca a nadie.

Toda versión publicada sigue siendo legible, así que qué aspecto tenía este agent en marzo es una pregunta con respuesta.

Exportable a tu propio repositorio

El spec se exporta como YAML. Haz commit de él, revísalo en un pull request, compara dos versiones, restaura una. Es tu archivo, en tu historial de git, en un formato que no necesita AgenticOS para leerse.

La importación va en sentido contrario, así que un spec escrito a mano es un agent de pleno derecho.

Lo que un agent puede hacer de verdad

Lo decides tú activando cosas, de una en una, en el Builder. Nada de esto es un plugin que alguien instala, un archivo de Python que alguien despliega ni un prompt que alguien espera que el modelo obedezca — un agent no puede alcanzar una capability que está desactivada, diga lo que diga en sus instrucciones.

El agent puede… Qué activar
Responder a partir de lo que tu empresa sabe — tus documentos, tus procedimientos escritos y lo que se haya adjuntado a esta conversación Knowledge search · Skills · Context
Recordar, y consultarlo — llevar notas de una conversación a otra, recuperar un dato por su significado, o encontrar lo que se dijo realmente en una conversación pasada y releerlo Memory · Memory (mem0) · Past conversations
Ir a averiguarlo — buscar en la web, leer una página como es debido, o conducir un navegador real por un sitio que exige clics Web search · Read web pages · Web browser
Hacer el trabajo, no describirlo — ejecutar Python sobre un archivo, mantener un workspace con una shell, dibujar un gráfico, generar una imagen, leer un texto en voz alta o hacer un clip corto Calculations · Sandbox · Charts · Image generation · Text to speech · Video generation
Afrontar trabajo demasiado grande para una sola respuesta — delegar en especialistas, llevar una lista de tareas, pensar más antes de responder, sostener una conversación larga sin perder su principio Delegation · Planning · Thinking · Long conversations
No salirse de la raya — censurar o bloquear lo que no debe pasar, limitar lo que una tool puede devolver, saber qué día es hoy Guardrails · Tool output limits · Date and time

Cada una trae sus propios ajustes, su propio scope de permisos y — cuando actúa sobre el mundo exterior — su propio ajuste de aprobación. Activar una es una decisión que alguien toma sobre este agent, no un cambio en la plataforma.

Cada capability, sus tools y su configuración →

Cualquier modelo, de 28 providers

OpenAI, Anthropic, Google, Groq, Mistral, Bedrock, Vertex, un Ollama en tu propio hardware, un proxy LiteLLM por delante de todo ello.

Un perfil de modelo nombra el modelo, sus parámetros y sus fallbacks; los agents apuntan al perfil. Cambia el perfil y todos los agents que lo usan se mueven con él — sin republicar un solo spec.

Las claves son por organización, están selladas en el vault y ningún endpoint las devuelve jamás.

Modelos y providers →

Cualquier servidor MCP, por URL

Conecta un servidor y sus tools aparecen en la Toolbox, con espacio de nombres propio para que dos servidores que ofrecen search no choquen.

Hay más de 4.700 servidores en la galería: la cifra que muestra la página MCP servers. Los más habituales - GitHub, Linear, Notion, Slack, Stripe, Postgres - llegan con sus flujos de OAuth ya cableados, porque aquí alguien conectó cada uno de ellos y lo comprobó. El resto están replicados del registro público de MCP y se pueden buscar por nombre: a esos no los ha revisado nadie de aquí, la lista dice de qué tipo es cada fila, y una entrada que una comprobación encontró caída, rota o duplicada no aparece.

Info

Por eso el catálogo de capabilities es corto y seguirá siéndolo. Una integración con un producto SaaS es una conexión MCP, no un módulo de Python que alguien de este repositorio tenga que mantener contra la API de ese producto.

Conexiones MCP →

Conocimiento que se queda en tu hardware

Sube documentos, o sincroniza una carpeta de Google Drive o un bucket de S3. AgenticOS los parsea, los trocea en chunks, los embebe en pgvector y los guarda en tu Postgres.

Cómo los lee lo decides tú, por colección y con posibilidad de anularlo en cada subida — algo poco habitual, y donde de verdad se gana la calidad del retrieval:

Parser de PDF pymupdf — local, rápido y el único que extrae las imágenes incrustadas para describirlas · liteparse — local y consciente del layout, mantiene las tablas como rejillas ASCII en lugar de aplanarlas · llamaparse — un servicio en la nube que se factura por página y devuelve markdown
Chunking recursive, markdown o fixed, con tu propio tamaño y solapamiento
OCR A demanda o automático, con un idioma
Imágenes en documentos Descritas por un perfil de modelo que tú eliges, con tu propio prompt

Los embeddings llevan una clave por organización. Un vector escrito para un tenant no lo puede leer otro, y eso lo impone el esquema en lugar de una cláusula WHERE que alguien tenga que recordar.

El modelo de embedding queda fijado al crear una colección, porque dos modelos del mismo ancho escriben en espacios distintos que la búsqueda seguiría comparando.

Procesamiento de archivos → · Skills →

Un agent, todas las superficies

Publica una vez. El mismo runner responde en todas estas:

  • Chat web en la consola
  • Una página alojada cuyo enlace puedes mandarle a alguien
  • Un widget embebible para tu propio sitio
  • La API HTTP, y un WebSocket en crudo para streaming
  • Slack, Telegram y Mattermost, donde una @mention se ejecuta como la persona que la envió — no como el bot

La transcripción de voz también funciona en ellas con el propio provider de la organización: dictado en el chat web, en una página alojada y en el widget, y notas de voz transcritas en Slack, Telegram y Mattermost.

Las llamadas de voz permiten a una persona hablar con un agent publicado e interrumpirlo, en el chat web, en una página alojada o en el widget. El agent conserva sus herramientas, su conocimiento, sus aprobaciones y sus budgets, cada turno se guarda como texto en la conversación y no se almacena ningún audio. Las llamadas están apagadas hasta que una organización las enciende, y tienen sus propios límites de duración y de minutos mensuales. Los modelos en tiempo real de OpenAI están probados en vivo; Azure OpenAI, Gemini Live y xAI todavía no están verificados en vivo.

Superficies → · Conversaciones de voz →

Budgets que de verdad paran un run

Se comprueba antes de cada petición al modelo, no se suma después.

Un run que falla registra igualmente lo que gastó, porque un budget que solo cuenta los éxitos no es un budget. Las alertas se disparan en los umbrales que tú fijes, por agent.

Aprobación donde quieras a una persona

Elige qué tools esperan a una persona antes de ejecutarse: por capability, anulado por tool, y por servidor MCP. Nada espera hasta que lo pidas, así que un run en un canal o en un horario nunca se aparca en una puerta que nadie eligió.

Una aprobación se decide una sola vez. Una segunda decisión sobre una aprobación ya decidida se rechaza — lo que suena obvio hasta que has visto la race condition que lo hace necesario.

Governance →

Permisos en el código, roles compuestos a partir de ellos

Los puntos de llamada comprueban permisos, nunca nombres de rol. Un rol es un conjunto de permisos sacados de un catálogo, y una concesión (grant) amplía lo que una persona puede hacer con una fila.

Una concesión nunca reduce. Un Viewer con una concesión explícita de edit sobre un agent puede editar ese agent — y nada más.

Permisos →

Secretos sellados por organización

Claves de provider, tokens de bot, credenciales MCP — un solo mecanismo, app/core/vault.py, y deliberadamente ningún segundo.

Un texto cifrado copiado de la fila de base de datos de un tenant no se puede descifrar para otro. Ninguna respuesta, línea de log ni entrada de auditoría lleva jamás una clave en claro.

Secretos y el vault →

Multi-tenant, en el esquema

El aislamiento entre organizaciones son constraints y claves, no convención. Los tests interesantes de este repositorio son los que comprueban un rechazo: una lectura entre tenants, un scope no concedido, un budget superado, una segunda decisión sobre una aprobación ya decidida.

Triggers, para que un agent se ejecute sin ti

Programa un run, o dispara uno con un evento. El mismo spec, el mismo budget, el mismo rastro de auditoría — solo que sin nadie tecleando.

Triggers →

Autoalojado, y silencioso

Docker Compose, tu Postgres, tu Redis, tu hardware.

Nada llama a casa. Los precios de los modelos vienen de una instantánea incluida en la release, y las únicas peticiones salientes son las que hacen tus agents.

Código abierto

Apache 2.0, auditable y forkable. El formato del spec está versionado, así que un documento que exportes hoy seguirá cargando mañana.

Instálalo → · Construye tu primer agent →