Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

asilo-core

Implementación Python de referencia candidata para controles de sistemas multiagente. Aspira a traducir una revisión identificable de ASILO a contratos, decisiones de política, auditoría y revisión humana sin definir la metodología dentro del paquete.

Perfil Milpa: library (P5) · Distribución prevista: PyPI asilo-core · Estado: alpha parcial no publicable

TL;DR

  • enforce_schema ya valida resultados Pydantic sync/async y nunca reejecuta la función.
  • asilo status y asilo doctor informan capacidades sin red ni secretos.
  • guardrail, HITL, auditoría y comandos de dominio continúan bloqueados.
  • El scaffolding operativo vive hoy en kasai-crew scaffold; no se duplica aquí.
  • Empieza por Quickstart, diagramas e índice.

Documentación

Cuatro niveles, de lo general a lo particular, con ruta de lectura por perfil en docs/INDEX.md:

Perfil Empieza en
No técnico docs/01-manifiesto/ — la aduana: el modelo propone, la librería valida la forma
Arquitecto docs/02-diagramas/ — contexto, capas, secuencia, escalada humana
Operador docs/03-operacion/ — instalación, comandos, qué no está implementado
Auditor docs/04-contratos/ — API, axiomas, errores, ADR, fuentes de verdad

Sitio navegable (MkDocs Material, con el estándar documental de Horcón), desde la raíz del repo:

../horcon/.venv/bin/python -m horcon audit-docs .    # frontmatter, navegación, enlaces
../horcon/.venv/bin/python -m horcon docs build .    # ensambla tmp/site-src/ y construye tmp/site/
../horcon/.venv/bin/python -m horcon docs serve .    # sirve en 127.0.0.1

Diseño objetivo

Un agente autónomo puede producir información falsa, filtrar datos o solicitar acciones irreversibles. El diseño objetivo interpone controles entre el modelo y el mundo:

Control Mecanismo objetivo Estado actual
Esquema @enforce_schema valida forma contra Pydantic implementado; una ejecución, sin repairs
Política @guardrail obtiene una decisión antes de ejecutar stub; contrato pendiente
Revisión humana @hitl persiste, autoriza y reanuda una decisión stub; protocolo pendiente
Auditoría eventos minimizados y trazables inexistente

Un decorador dentro del mismo proceso no constituye por sí solo una frontera de seguridad: código con el mismo privilegio puede evitarlo. El enforcement real depende también del sistema consumidor, sus herramientas, credenciales y puntos de aplicación.

Qué protege cada pieza, y qué no

Pieza Qué protege hoy Qué NO protege
enforce_schema La forma del resultado contra un modelo Pydantic; una sola ejecución, sin reintentos Que el contenido sea verdadero, que esté autorizado, o que no lleve una instrucción escondida para el siguiente agente (ver docs/asilo/seguridad/aduana-llm.md)
guardrail, hitl Nada: son firmas con contrato escrito que lanzan NotImplementedError Cualquier cosa que su nombre sugiera; llamarlos no bloquea ni pausa nada todavía
asilo status / asilo doctor Informar, sin red, qué existe Que lo informado sea "seguro"; son diagnóstico, no control

Lo que debe poner quien consume esta librería: autenticación y autorización de quien invoca la acción, credenciales de mínimo privilegio, límites de red y un punto de aplicación fuera del proceso que pueda de verdad impedir la acción si el decorador falla o se evade.

Una lección concreta, tomada de un hallazgo real en el framework hermano Horcón y registrada en reports/2026-09-22-mejoras-desde-horcon.md: cuando exista una revisión humana real (hitl dejará de ser un stub), su aprobación no puede representarse con un booleano autodeclarado (approved: true) ni con un campo de texto que rellene el propio código que pide la aprobación. Ese diseño ya falló una vez en un sistema relacionado: un campo que declaraba quién firmaba se verificaba con la misma firma que lo emitía, así que cualquiera podía declararse revisor humano. Una aprobación debe llevar una referencia verificable a quien decide y una huella de qué se revisó exactamente, no la palabra del propio proceso que la solicita. Esto no está implementado hoy; es una condición que cualquier contrato futuro de hitl debe cumplir antes de aceptarse.

Instalación

El paquete aún no está publicado. El siguiente comando documenta la distribución prevista, no un paso que funcione hoy:

pip install asilo-core

API ejecutable: validación de esquema

from asilo.decorators import enforce_schema
from pydantic import BaseModel

class Reporte(BaseModel):
    titulo: str
    hallazgos: list[str]

@enforce_schema(Reporte)
def normalizar_reporte(payload: dict) -> Reporte:
    return payload

CLI y Agente Cero

El diagnóstico es ejecutable y no llama red:

asilo status
asilo doctor --json

asilo init, explain y run permanecen reservados y salen con código 2, sin traceback. Para preparar un repo, el recorrido vigente es kasai-crew scaffold --repo RUTA. Esto evita dos implementaciones distintas del Agente 0.

Estructura

Sigue el perfil library del doc 21 de Milpa: src/ layout (el paquete no vive en la raíz), tests/ con suite adversarial obligatoria por tratarse de un proyecto con LLM, y docs/asilo/ con los artefactos de gobernanza del propio SDK.

Estado de implementación

Alpha parcial. Los errores, la validación de esquema y el diagnóstico existen; política, auditoría, HITL durable y enforcement externo no. Ver docs/PLAN_IMPLEMENTACION.md para puertas y criterios de release. No usar este repo para proteger operaciones reales.

Licencia

Apache-2.0 — texto completo en LICENSE.

La marca ASILO no se licencia con el código (sección 6 de Apache-2.0); ver NOTICE.

Release files for asilo-core 0.1.0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for asilo-core 0.1.0a1
File Size Uploaded
asilo_core-0.1.0a1.tar.gz 86.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for asilo-core 0.1.0a1
File Interpreter ABI Platform
asilo_core-0.1.0a1-py3-none-any.whl Python 3 none any Details

Total release size: 102.5 kB

Release files / asilo_core-0.1.0a1.tar.gz

Download URL asilo_core-0.1.0a1.tar.gz
Size 86.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d10b4fbf65124a40201f66b62972a9d3f818df20a12d7b46c56b09004dd00a87
BLAKE2b-256 checksum
How to use checksums
c6f76ec7a023435658dce39640b9fe5698612835bacc246ded5ffc3a440d5051
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.5

Release files / asilo_core-0.1.0a1-py3-none-any.whl

Download URL asilo_core-0.1.0a1-py3-none-any.whl
Size 16.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c6d178ff0f630c752deb93ac4cdcab973daa519937bec0ee7e175caa732ad516
BLAKE2b-256 checksum
How to use checksums
3403f43fff17946336ddbb619f590bdd1d5ffe635232c1f1fe2e3fd0f7822397
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.5

Release history Release notifications | RSS feed

This release

0.1.0a1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page