Skip to main content
Glama

체험하기 (30초)

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`.

이것으로 끝입니다. 이제 보호되지 않은 AI 호출이 어디에 있는지 정확히 알 수 있습니다.

CI에 추가

GitHub Actions 워크플로우에 한 줄만 추가하세요:

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

모든 PR이 스캔됩니다. 거버넌스가 적용되지 않은 AI 호출은 병합이 차단됩니다. 모든 옵션 보기.


자동 계측

한 줄의 코드로 모든 프로젝트에 가드레일을 추가하세요. 리팩토링, 래퍼, 설정 파일이 필요 없습니다.

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)

또는 코드 변경 없이 환경 변수만 설정하세요:

AEGIS_INSTRUMENT=1 python my_agent.py

Aegis는 Sentry가 오류 추적에 사용하는 것과 동일한 방식으로, 임포트 시점에 프레임워크 내부를 몽키 패치합니다. 기존 코드는 그대로 유지됩니다.

작동 원리

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

모든 호출은 입력과 출력 모두에서 검사됩니다. 차단된 콘텐츠는 AegisGuardrailError를 발생시킵니다(경고 또는 로그로 설정 가능).

지원 프레임워크

프레임워크

패치 대상

상태

LangChain

BaseChatModel.invoke/ainvoke, BaseTool.invoke/ainvoke

안정

CrewAI

Crew.kickoff/kickoff_async, 전역 BeforeToolCallHook

안정

OpenAI Agents SDK

Runner.run, Runner.run_sync

안정

OpenAI API

Completions.create (채팅 및 완성)

안정

Anthropic API

Messages.create

안정

LiteLLM

completion, acompletion

안정

Google GenAI (Gemini)

Models.generate_content (신규) + GenerativeModel.generate_content (레거시)

안정

Pydantic AI

Agent.run, Agent.run_sync

안정

LlamaIndex

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

안정

Instructor

Instructor.create, AsyncInstructor.create

안정

DSPy

Module.__call__, LM.forward/aforward

안정

기본 가드레일

모든 가드레일은 결정론적(LLM 호출 없음)이며, 밀리초 미만으로 작동하고 별도의 설정이 필요 없습니다:

가드레일

기본 동작

감지 대상

프롬프트 주입

차단

10개 공격 카테고리, 85개 이상의 패턴, 다국어(EN/KO/ZH/JA)

PII 탐지

경고

13개 카테고리(이메일, 신용카드, 주민등록번호, IBAN, API 키 등)

프롬프트 유출

경고

시스템 프롬프트 추출 시도

독성

경고 (차단 옵션 제공)

유해, 폭력적 또는 모욕적인 콘텐츠

성능

모든 가드레일은 결정론적 정규식을 실행하므로 LLM 호출이나 네트워크 왕복이 없습니다. LRU 캐싱을 통해 반복적인 검사(예: 시스템 프롬프트)는 사실상 비용이 발생하지 않습니다.

시나리오

콜드(첫 호출)

웜(캐시됨)

비고

짧은 텍스트 (45자)

342 us

< 1 us

일반적인 사용자 메시지

중간 텍스트 (300자)

3.7 ms

< 1 us

일반적인 에이전트 지시

적대적 입력

1.3 ms

< 1 us

다중 패턴 주입 시도

LLM 호출당 현실적 수치

2.65 ms

시스템 프롬프트(캐시됨) + 사용자 입력 + 응답

LLM 지연 시간의 0.53% (500ms API 왕복 시간 대비). 목표: < 1%. 결합된 가드레일 스택 = 입력 및 출력 모두에서 주입 + PII 검사 (호출당 4회 스캔).

python benchmarks/bench_guardrails.py를 실행하여 재현할 수 있습니다.

대안과의 비교 (2026년 3월 기준)

Aegis는 CI 통합 성능 회귀 게이트(pytest-benchmark)를 갖춘 유일한 가드레일 라이브러리입니다. 대부분의 대안은 ML 모델이나 외부 API에 의존하여 검사당 10~1000배 더 많은 지연 시간을 추가합니다.

접근 방식

일반적인 오버헤드

CI 성능 게이트

예시

프로세스 내 정규식 + LRU 캐시 (Aegis)

2.65 ms 콜드 / < 1 μs 웜

ML 모델 프레임워크

수십 ms – 수 초 (CPU)

아니오

Guardrails AI, NeMo Guardrails, LLM Guard

클라우드 API 서비스

40–250 ms

해당 없음

Lakera Guard

프록시 / 게이트웨이

100–250 ms+

아니오

Lasso MCP Gateway

왜 차이가 날까요? Aegis 가드레일은 컴파일된 패턴과 LRU 결과 캐싱을 사용하는 결정론적 정규식입니다. 모델 추론이나 네트워크 호출이 없습니다. ML 분류기나 외부 API를 사용하는 대안들은 모든 요청마다 그 비용을 지불해야 합니다.

세밀한 제어

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()

선택 거버넌스

부정 탐지(selection-by-negation)를 지원하는 최초의 오픈 소스 라이브러리입니다. 다른 거버넌스 도구는 에이전트가 무엇을 하는지 모니터링합니다. Agent-Aegis는 에이전트가 무엇을 하지 않기로 선택하는지도 모니터링합니다. 즉, 인간이 보기 전에 에이전트가 조용히 제거한 옵션들을 감시합니다.

Santander AI Lab의 "Selection as Power" 프레임워크를 기반으로 합니다. 에이전트는 단순히 작업을 실행하는 것뿐만 아니라 옵션을 필터링함으로써 은밀한 권력을 행사합니다.

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)

기능

설명

ActionClaim

3자 구조: 에이전트 선언(신뢰할 수 없음) vs 시스템 평가(독립적) vs 위임 체인

정당성 격차

비대칭 격차 탐지 — 과소 보고만 계산. 승인 / 에스컬레이션 / 차단

선택 감사

4가지 탐지 유형: 높은 제거율, 더 나은 옵션 제거, 부당한 제거, 체계적 배제

커밋-공개

에이전트가 실행 전 전체 옵션 세트를 커밋 — 사후 합리화 방지

회로 차단기

QDV 메트릭으로 실패 알림, 스레드 안전, 구성 가능한 복구

이것이 중요한 이유: 항상 지시를 따르지만 제시하기 전에 불편한 옵션을 필터링하는 에이전트는 공개적으로 거부하는 에이전트보다 더 위험합니다. Aegis는 런타임에 이 패턴을 탐지하는 최초의 도구입니다.


정책 CI/CD

다른 도구는 제공하지 않는 기능입니다. 보안 도구는 런타임에 보호합니다. Aegis는 정책 수명 주기까지 관리합니다. 변경 사항을 미리 보고, 회귀를 테스트하며, 프로덕션에 도달하기 전에 CI/CD 병합을 제어합니다.

aegis plan — 배포 전 영향 미리보기

AI 에이전트 정책을 위한 terraform plan과 같습니다. 과거 감사 데이터를 재생하여 정확히 무엇이 변경될지 보여줍니다.

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 — 정책 회귀 테스트

예상 결과를 정의하고, 테스트 스위트를 자동 생성하며, 의도치 않은 부작용을 포착합니다.

# 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

CI/CD 통합

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

정책 변경 사항은 코드 변경 사항과 동일한 엄격함(diff, 테스트, 검토, 병합)을 거칩니다.


빠른 시작

1단계: 설치

pip install agent-aegis

2단계: 통합 수준 선택

수준 1: 자동 계측(권장) -- 한 줄로 모든 것을 제어:

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

수준 2: 전체 보안 스택으로 초기화 -- 가드레일 + 정책 엔진 + 감사:

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

수준 3: 타겟 패치 -- 특정 API 제어:

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():
    ...

수준 4: YAML 설정 -- 필요할 때 완벽한 제어:

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

수준 5: 전체 Runtime() 제어 -- 사용자 정의 실행기, 승인 게이트 등:

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())

3단계: 결과 확인

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

세 가지 핵심 기둥

Aegis는 세 가지 기둥을 기반으로 구축되었습니다. 이들은 단순한 정책 검사기가 아닌 완전한 AI 보안 프레임워크를 구성합니다.

기둥 1: 런타임 가드레일

모든 입력과 출력에서 자동으로 실행되는 콘텐츠 수준의 보호 기능입니다.

기능

세부 정보

PII 탐지 및 마스킹

13개 카테고리(이메일, 신용카드, 주민등록번호, IBAN, 한국 주민등록번호, API 키 등) 및 Luhn/mod-97 검증

프롬프트 주입 차단

10개 공격 카테고리, 85개 이상의 패턴, 다국어(영어, 한국어, 중국어, 일본어)

규칙 팩 생태계

커뮤니티 YAML 팩을 통해 확장 가능 (@aegis/pii-detection, @aegis/prompt-injection)

**

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