Skip to main content
Glama

Pruébalo (30 segundos)

pip install agent-aegis
aegis scan .
Scanning . for ungoverned AI calls...

  src/agent.py:12     openai.ChatCompletion.create()    NO GUARDRAIL
  src/agent.py:34     langchain.ChatOpenAI.invoke()      NO GUARDRAIL
  src/tools.py:8      anthropic.messages.create()        NO GUARDRAIL
  src/pipeline.py:21  crew.kickoff()                     NO GUARDRAIL

  4 ungoverned AI calls found in 3 files.
  Run `aegis.auto_instrument()` to add guardrails, or create a policy with `aegis init`.

Eso es todo. Ahora sabes exactamente dónde están tus llamadas de IA sin protección.

Añadir a CI

Una línea en tu flujo de trabajo de GitHub Actions:

- uses: Acacian/aegis@v0.9.1
  with:
    command: scan
    fail-on-ungoverned: true

Cada PR es escaneada. Las llamadas de IA sin gobierno bloquean la fusión. Ver todas las opciones.


Auto-instrumentación

Añade barreras de seguridad a cualquier proyecto en una línea. Sin refactorización, sin envoltorios, sin archivos de configuración.

import aegis
aegis.auto_instrument()

# That's it. Every LangChain, CrewAI, OpenAI, Anthropic, LiteLLM,
# Google GenAI, Pydantic AI, LlamaIndex, Instructor, and DSPy
# call in your application now passes through:
#   - Prompt injection detection (blocks attacks)
#   - PII detection (warns on personal data exposure)
#   - Prompt leak detection (warns on system prompt extraction)
#   - Toxicity detection (warns — opt-in to block)
#   - Full audit trail (every call logged)

O cero cambios de código: simplemente establece una variable de entorno:

AEGIS_INSTRUMENT=1 python my_agent.py

Aegis aplica parches dinámicos (monkey-patching) a los internos del framework en tiempo de importación, el mismo enfoque utilizado por Sentry para el seguimiento de errores. Tu código existente permanece intacto.

Cómo funciona

Your code                          Aegis layer (invisible)
---------                          -----------------------
chain.invoke("Hello")       -->    [input guardrails] --> LangChain --> [output guardrails] --> response
Runner.run(agent, "query")  -->    [input guardrails] --> OpenAI SDK --> [output guardrails] --> response
crew.kickoff()              -->    [task guardrails]  --> CrewAI     --> [tool guardrails]   --> response
client.chat.completions()   -->    [input guardrails] --> OpenAI API --> [output guardrails] --> response

Cada llamada se verifica tanto en la entrada como en la salida. El contenido bloqueado genera un AegisGuardrailError (configurable para advertir o registrar en su lugar).

Frameworks soportados

Framework

Qué se parchea

Estado

LangChain

BaseChatModel.invoke/ainvoke, BaseTool.invoke/ainvoke

Estable

CrewAI

Crew.kickoff/kickoff_async, global BeforeToolCallHook

Estable

OpenAI Agents SDK

Runner.run, Runner.run_sync

Estable

OpenAI API

Completions.create (chat & completions)

Estable

Anthropic API

Messages.create

Estable

LiteLLM

completion, acompletion

Estable

Google GenAI (Gemini)

Models.generate_content (nuevo) + GenerativeModel.generate_content (legado)

Estable

Pydantic AI

Agent.run, Agent.run_sync

Estable

LlamaIndex

LLM.chat/achat/complete/acomplete, BaseQueryEngine.query/aquery

Estable

Instructor

Instructor.create, AsyncInstructor.create

Estable

DSPy

Module.__call__, LM.forward/aforward

Estable

Barreras de seguridad predeterminadas

Todas las barreras son deterministas (sin llamadas a LLM), sub-milisegundo y no requieren configuración:

Barrera

Acción predeterminada

Qué detecta

Inyección de prompts

Bloquear

10 categorías de ataque, más de 85 patrones, multilingüe (EN/KO/ZH/JA)

Detección de PII

Advertir

13 categorías (correo, tarjeta de crédito, SSN, IBAN, claves API, etc.)

Fuga de prompts

Advertir

Intentos de extracción de prompts del sistema

Toxicidad

Advertir (opcional bloquear)

Contenido dañino, violento o abusivo

Rendimiento

Todas las barreras ejecutan expresiones regulares deterministas: sin llamadas a LLM, sin viajes de ida y vuelta a la red. El almacenamiento en caché LRU hace que las comprobaciones repetidas (por ejemplo, prompts del sistema) sean efectivamente gratuitas.

Escenario

Frío (primera llamada)

Caliente (caché)

Notas

Texto corto (45 car.)

342 us

< 1 us

Mensaje de usuario típico

Texto medio (300 car.)

3.7 ms

< 1 us

Instrucción de agente típica

Entrada adversaria

1.3 ms

< 1 us

Intento de inyección multipatrón

Realista por llamada LLM

2.65 ms

Prompt del sistema (caché) + entrada usuario + respuesta

0.53% de la latencia de LLM (frente a 500ms de viaje de ida y vuelta de API). Objetivo: < 1%. Pila de barreras combinada = inyección + PII tanto en entrada como en salida (4 escaneos por llamada).

Ejecuta python benchmarks/bench_guardrails.py para reproducir.

vs. Alternativas (a marzo de 2026)

Aegis es la única biblioteca de barreras de seguridad con puertas de regresión de rendimiento integradas en CI (pytest-benchmark). La mayoría de las alternativas dependen de modelos ML o APIs externas, añadiendo 10–1000 veces más latencia por comprobación.

Enfoque

Sobrecarga típica

Puerta de rendimiento CI

Ejemplos

Regex en proceso + caché LRU (Aegis)

2.65 ms frío / < 1 μs caliente

Frameworks de modelos ML

Decenas de ms – segundos (CPU)

No

Guardrails AI, NeMo Guardrails, LLM Guard

Servicios API en la nube

40–250 ms

N/A

Lakera Guard

Proxy / gateway

100–250 ms+

No

Lasso MCP Gateway

¿Por qué la brecha? Las barreras de Aegis son expresiones regulares deterministas con patrones compilados y caché de resultados LRU: sin inferencia de modelos, sin llamadas de red. Las alternativas que usan clasificadores ML o APIs externas pagan por ello en cada solicitud.

Control de grano fino

from aegis.instrument import auto_instrument, patch_langchain, status, reset

# Instrument only specific frameworks
auto_instrument(frameworks=["langchain", "openai_agents"])

# Customize behavior
auto_instrument(
    on_block="warn",       # "raise" (default), "warn", or "log"
    guardrails="default",  # or "none" for audit-only mode
    audit=True,            # log every call
)

# Instrument a single framework
patch_langchain()

# Check what's instrumented
print(status())
# {"active": True, "frameworks": {"langchain": {"patched": True, ...}}, "guardrails": 4}

# Clean removal — restore all original methods
reset()

Gobernanza de selección

La primera biblioteca de código abierto con detección de selección por negación. Otras herramientas de gobernanza monitorean lo que los agentes hacen. Agent-Aegis también monitorea lo que los agentes eligen no hacer: las opciones que eliminan silenciosamente antes de que los humanos las vean.

Basado en el framework "Selection as Power" del Santander AI Lab: los agentes ejercen poder encubierto mediante el filtrado de opciones, no solo mediante la ejecución de acciones.

from aegis.core import ActionClaim, ClaimAssessor, DeclaredFields

# Agent declares what it intends to do (untrusted)
claim = ActionClaim(
    declared=DeclaredFields(
        proposed_transition="delete_records",
        target="production_db",
        justification="cleanup old data",
    )
)

# Aegis independently assesses actual impact (6-dimensional)
assessor = ClaimAssessor()
result = assessor.assess(claim)
# result.verdict -> BLOCK
# result.assessed.justification_gap -> 0.385 (agent under-reported impact)

Capacidad

Descripción

ActionClaim

Estructura tripartita: declarado por el agente (no confiable) vs evaluado por el sistema (independiente) vs cadena de delegación

Brecha de justificación

Detección de brecha asimétrica: solo cuenta la sub-notificación. APROBAR / ESCALAR / BLOQUEAR

Auditoría de selección

4 tipos de detección: alta eliminación, mejor opción eliminada, eliminación injustificada, exclusión sistemática

Comprometer-Revelar

El agente compromete el conjunto completo de opciones antes de la ejecución: evita la racionalización post-hoc

Disyuntor

Fallo ruidoso con métrica QDV, seguro para hilos, recuperación configurable

Por qué importa esto: Un agente que siempre sigue instrucciones pero filtra opciones inconvenientes antes de presentarlas es más peligroso que uno que se niega abiertamente. Aegis es la primera herramienta que detecta este patrón en tiempo de ejecución.


CI/CD de políticas

Nadie más hace esto. Las herramientas de seguridad protegen en tiempo de ejecución. Aegis también gestiona el ciclo de vida de las políticas: previsualiza cambios, prueba regresiones y bloquea fusiones de CI/CD antes de que algo llegue a producción.

aegis plan — Previsualiza el impacto antes de desplegar

Como terraform plan para políticas de agentes de IA. Reproduce datos históricos de auditoría para mostrar exactamente qué cambiaría.

aegis plan current.yaml proposed.yaml --audit-db aegis_audit.db

# Policy Impact Analysis
# =====================
#   Rules: 2 added, 1 removed, 3 modified
#   Impact (replayed 1,247 actions):
#     23 actions would change from AUTO → BLOCK
#      7 actions would change from APPROVE → BLOCK
#
#   CI mode: aegis plan current.yaml proposed.yaml --ci  (exit 1 if breaking)

aegis test — Pruebas de regresión para políticas

Define resultados esperados, genera suites de prueba automáticamente, detecta efectos secundarios no deseados.

# Auto-generate test suite from policy
aegis test policy.yaml --generate --generate-output tests.yaml

# Run in CI — exit 1 on failure
aegis test policy.yaml tests.yaml

# Regression test between old and new policy
aegis test new-policy.yaml tests.yaml --regression old-policy.yaml

Integración CI/CD

# .github/workflows/policy-check.yml
- uses: Acacian/aegis@main
  with:
    policy: aegis.yaml
    tests: tests.yaml
    fail-on-regression: true

Los cambios de política reciben el mismo rigor que los cambios de código: diff, prueba, revisión, fusión.


Inicio rápido

Paso 1: Instalar

pip install agent-aegis

Paso 2: Elige tu nivel de integración

Nivel 1: Auto-instrumentar (recomendado) -- una línea, gobierna todo:

import aegis
aegis.auto_instrument()
# All 11 supported frameworks are now governed.

Nivel 2: Iniciar con pila de seguridad completa -- barreras + motor de políticas + auditoría:

import aegis
aegis.auto_instrument()
# Discovers aegis.yaml, activates policy engine, audit logging, cost tracking.

Nivel 3: Parcheo dirigido -- gobierna APIs específicas:

import aegis
aegis.patch_openai()    # Only OpenAI calls
aegis.patch_anthropic() # Only Anthropic calls

# Or use the decorator for custom functions
@aegis.guard
def my_agent_function():
    ...

Nivel 4: Configuración YAML -- control total cuando lo necesites:

aegis init  # Creates aegis.yaml with sensible defaults
# aegis.yaml
guardrails:
  pii: { enabled: true, action: mask }
  injection: { enabled: true, action: block, sensitivity: medium }

policy:
  version: "1"
  defaults:
    risk_level: medium
    approval: approve
  rules:
    - name: read_safe
      match: { type: "read*" }
      risk_level: low
      approval: auto
    - name: bulk_ops_need_approval
      match: { type: "bulk_*" }
      conditions:
        param_gt: { count: 100 }
      risk_level: high
      approval: approve
    - name: no_deletes
      match: { type: "delete*" }
      risk_level: critical
      approval: block

Nivel 5: Control total de Runtime() -- ejecutores personalizados, puertas de aprobación, todo:

import asyncio
from aegis import Action, Policy, Runtime
from aegis.adapters.base import BaseExecutor
from aegis.core.result import Result, ResultStatus

class MyExecutor(BaseExecutor):
    async def execute(self, action):
        print(f"  Executing: {action.type} -> {action.target}")
        return Result(action=action, status=ResultStatus.SUCCESS)

async def main():
    async with Runtime(
        executor=MyExecutor(),
        policy=Policy.from_yaml("policy.yaml"),
    ) as runtime:
        plan = runtime.plan([
            Action("read", "crm", description="Fetch contacts"),
            Action("bulk_update", "crm", params={"count": 150}),
            Action("delete", "crm", description="Drop table"),
        ])
        results = await runtime.execute(plan)

asyncio.run(main())

Paso 3: Mira qué sucedió

aegis audit
  ID  Session       Action        Target   Risk      Decision    Result
  1   a1b2c3d4...   read          crm      LOW       auto        success
  2   a1b2c3d4...   bulk_update   crm      HIGH      approved    success
  3   a1b2c3d4...   delete        crm      CRITICAL  block       blocked

Tres pilares

Aegis se basa en tres pilares. Juntos forman un framework de seguridad de IA completo, no solo un verificador de políticas.

Pilar 1: Barreras de seguridad en tiempo de ejecución

Protección a nivel de contenido que se ejecuta automáticamente en cada entrada y salida.

Capacidad

Detalle

Detección y enmascaramiento de PII

13 categorías (correo, tarjeta de crédito, SSN, IBAN, RRN coreano, claves API, etc.) con validación Luhn/mod-97

Bloqueo de inyección de prompts

10 categorías de ataque, más de 85 patrones, multilingüe (inglés, coreano, chino, japonés)

Ecosistema de paquetes de reglas

Extensible mediante paquetes YAML comunitarios (@aegis/pii-detection, @aegis/prompt-injection)

Acciones configurables

mask, block, warn, log — por despliegue, por categoría

Pilar 2: Motor de políticas

Reglas YAML declarativas con el pipeline de gobernanza completo (EVALUAR --> APROBAR --> EJECUTAR --> VERIFICAR --> AUDITAR).

Capacidad

Detalle

Coincidencia Glob

Gana la primera coincidencia, patrones comodín (delete*, bulk_*)

Condiciones inteligentes

time_after, weekdays, param_gt, param_contains, regex, semántico

Modelo de riesgo de 4 niveles

low / medium / high / critical con anulaciones por regla

**Pu

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

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/Acacian/aegis'

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