aegis
Ausprobieren (30 Sekunden)
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`.Das ist alles. Du weißt jetzt genau, wo sich deine ungeschützten KI-Aufrufe befinden.
Zu CI hinzufügen
Eine Zeile in deinem GitHub Actions Workflow:
- uses: Acacian/aegis@v0.9.1
with:
command: scan
fail-on-ungoverned: trueJeder PR wird gescannt. Ungeregelte KI-Aufrufe blockieren den Merge. Alle Optionen ansehen.
Auto-Instrumentierung
Füge Schutzmaßnahmen zu jedem Projekt mit einer Zeile hinzu. Kein Refactoring, keine Wrapper, keine Konfigurationsdateien.
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)Oder ganz ohne Codeänderungen — setze einfach eine Umgebungsvariable:
AEGIS_INSTRUMENT=1 python my_agent.pyAegis führt beim Import ein Monkey-Patching der Framework-Interna durch, derselbe Ansatz, den Sentry für die Fehlerverfolgung verwendet. Dein bestehender Code bleibt unberührt.
Funktionsweise
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] --> responseJeder Aufruf wird sowohl bei der Eingabe als auch bei der Ausgabe überprüft. Blockierte Inhalte lösen einen AegisGuardrailError aus (konfigurierbar, um stattdessen zu warnen oder zu protokollieren).
Unterstützte Frameworks
Framework | Was wird gepatcht | Status |
LangChain |
| Stabil |
CrewAI |
| Stabil |
OpenAI Agents SDK |
| Stabil |
OpenAI API |
| Stabil |
Anthropic API |
| Stabil |
LiteLLM |
| Stabil |
Google GenAI (Gemini) |
| Stabil |
Pydantic AI |
| Stabil |
LlamaIndex |
| Stabil |
Instructor |
| Stabil |
DSPy |
| Stabil |
Standard-Schutzmaßnahmen
Alle Schutzmaßnahmen sind deterministisch (keine LLM-Aufrufe), dauern weniger als eine Millisekunde und erfordern keine Konfiguration:
Schutzmaßnahme | Standardaktion | Was sie erkennt |
Prompt-Injektion | Blockieren | 10 Angriffskategorien, 85+ Muster, mehrsprachig (EN/KO/ZH/JA) |
PII-Erkennung | Warnen | 13 Kategorien (E-Mail, Kreditkarte, SSN, IBAN, API-Schlüssel usw.) |
Prompt-Leak | Warnen | Versuche zur Extraktion von System-Prompts |
Toxizität | Warnen (optional blockieren) | Schädliche, gewalttätige oder beleidigende Inhalte |
Leistung
Alle Schutzmaßnahmen verwenden deterministische Regex — keine LLM-Aufrufe, keine Netzwerk-Roundtrips. LRU-Caching macht wiederholte Prüfungen (z. B. System-Prompts) effektiv kostenlos.
Szenario | Kalt (erster Aufruf) | Warm (gecached) | Hinweise |
Kurzer Text (45 Zeichen) | 342 µs | < 1 µs | Typische Benutzernachricht |
Mittlerer Text (300 Zeichen) | 3,7 ms | < 1 µs | Typische Agentenanweisung |
Adversariale Eingabe | 1,3 ms | < 1 µs | Multi-Muster-Injektionsversuch |
Realistisch pro LLM-Aufruf | 2,65 ms | — | System-Prompt (gecached) + Benutzereingabe + Antwort |
0,53 % der LLM-Latenz (vs. 500 ms API-Roundtrip). Ziel: < 1 %. Kombinierter Schutzstapel = Injektion + PII bei Eingabe und Ausgabe (4 Scans pro Aufruf).
Führe python benchmarks/bench_guardrails.py aus, um dies zu reproduzieren.
vs. Alternativen (Stand März 2026)
Aegis ist die einzige Schutzbibliothek mit CI-integrierten Leistungsregressions-Schleusen (pytest-benchmark). Die meisten Alternativen verlassen sich auf ML-Modelle oder externe APIs, was 10–1000x mehr Latenz pro Prüfung hinzufügt.
Ansatz | Typischer Overhead | CI-Leistungsschleuse | Beispiele |
In-Process Regex + LRU Cache (Aegis) | 2,65 ms kalt / < 1 μs warm | Ja | — |
ML-Modell-Frameworks | 10er ms – Sekunden (CPU) | Nein | |
Cloud-API-Dienste | 40–250 ms | N/A | |
Proxy / Gateway | 100–250 ms+ | Nein |
Warum der Unterschied? Aegis-Schutzmaßnahmen sind deterministische Regex mit kompilierten Mustern und LRU-Ergebnis-Caching — keine Modellinferenz, keine Netzwerkaufrufe. Alternativen, die ML-Klassifikatoren oder externe APIs verwenden, zahlen bei jeder Anfrage dafür.
Feinsteuerung
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()Auswahl-Governance
Die erste Open-Source-Bibliothek mit Erkennung durch Negationsauswahl. Andere Governance-Tools überwachen, was Agenten tun. Agent-Aegis überwacht auch, was Agenten entscheiden, nicht zu tun — die Optionen, die sie stillschweigend eliminieren, bevor Menschen sie sehen.
Basierend auf dem Framework "Selection as Power" des Santander AI Lab: Agenten üben verdeckte Macht durch Filterung von Optionen aus, nicht nur durch die Ausführung von Aktionen.
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)Fähigkeit | Beschreibung |
ActionClaim | Dreiteilige Struktur: vom Agenten deklariert (nicht vertrauenswürdig) vs. systembewertet (unabhängig) vs. Delegationskette |
Justification Gap | Asymmetrische Lückenerkennung — nur Unterberichterstattung zählt. APPROVE / ESCALATE / BLOCK |
Selection Audit | 4 Erkennungstypen: hohe Eliminierung, bessere Option eliminiert, ungerechtfertigte Eliminierung, systematische Exklusion |
Commit-Reveal | Agent verpflichtet sich vor der Ausführung auf den vollständigen Optionssatz — verhindert nachträgliche Rationalisierung |
Circuit Breaker | Fail-loud mit QDV-Metrik, thread-sicher, konfigurierbare Wiederherstellung |
Warum das wichtig ist: Ein Agent, der immer Anweisungen befolgt, aber unbequeme Optionen herausfiltert, bevor er sie präsentiert, ist gefährlicher als einer, der sich offen weigert. Aegis ist das erste Tool, das dieses Muster zur Laufzeit erkennt.
Richtlinien-CI/CD
Niemand sonst macht das. Sicherheitstools schützen zur Laufzeit. Aegis verwaltet auch den Richtlinienlebenszyklus — Änderungen in der Vorschau anzeigen, auf Regressionen testen und CI/CD-Merges schleusen, bevor etwas in die Produktion gelangt.
aegis plan — Auswirkungen vor der Bereitstellung in der Vorschau anzeigen
Wie terraform plan für KI-Agenten-Richtlinien. Spielt historische Audit-Daten ab, um genau zu zeigen, was sich ändern würde.
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 — Regressionstests für Richtlinien
Erwartete Ergebnisse definieren, Testsuiten automatisch generieren, unbeabsichtigte Nebenwirkungen abfangen.
# 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.yamlCI/CD-Integration
# .github/workflows/policy-check.yml
- uses: Acacian/aegis@main
with:
policy: aegis.yaml
tests: tests.yaml
fail-on-regression: trueRichtlinienänderungen erhalten die gleiche Strenge wie Codeänderungen: Diff, Test, Review, Merge.
Schnellstart
Schritt 1: Installieren
pip install agent-aegisSchritt 2: Wähle dein Integrationslevel
Level 1: Auto-Instrumentierung (empfohlen) -- eine Zeile, regelt alles:
import aegis
aegis.auto_instrument()
# All 11 supported frameworks are now governed.Level 2: Initialisierung mit vollem Sicherheitsstapel -- Schutzmaßnahmen + Richtlinien-Engine + Audit:
import aegis
aegis.auto_instrument()
# Discovers aegis.yaml, activates policy engine, audit logging, cost tracking.Level 3: Gezieltes Patchen -- spezifische APIs regeln:
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():
...Level 4: YAML-Konfiguration -- volle Kontrolle, wenn du sie brauchst:
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: blockLevel 5: Volle Runtime()-Kontrolle -- benutzerdefinierte Executoren, Genehmigungsschleusen, alles:
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())Schritt 3: Sehen, was passiert ist
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 blockedDrei Säulen
Aegis basiert auf drei Säulen. Zusammen bilden sie ein vollständiges KI-Sicherheitsframework — nicht nur einen Richtlinienprüfer.
Säule 1: Laufzeit-Schutzmaßnahmen
Schutz auf Inhaltsebene, der automatisch bei jeder Eingabe und Ausgabe ausgeführt wird.
Fähigkeit | Detail |
PII-Erkennung & Maskierung | 13 Kategorien (E-Mail, Kreditkarte, SSN, IBAN, koreanische RRN, API-Schlüssel usw.) mit Luhn/mod-97-Validierung |
Prompt-Injektionsblockierung | 10 Angriffskategorien, 85+ Muster, mehrsprachig (Englisch, Koreanisch, Chinesisch, Japanisch) |
Regelpaket-Ökosystem | Erweiterbar über Community-YAML-Pakete ( |
Konfigurierbare Aktionen |
|
Säule 2: Richtlinien-Engine
Deklarative YAML-Regeln mit der vollständigen Governance-Pipeline (EVALUATE --> APPROVE --> EXECUTE --> VERIFY --> AUDIT).
| Fähigkeit | Detail |
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