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 在导入时对框架内部进行 monkey-patch(猴子补丁),这与 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+ 种模式,多语言 (英/韩/中/日)

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 模型框架

数十毫秒 – 秒 (CPU)

Guardrails AI, NeMo Guardrails, LLM Guard

云 API 服务

40–250 ms

N/A

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

选择治理

第一个具有“否定选择”检测功能的开源库。 其他治理工具监控智能体“做什么”。Agent-Aegis 还监控智能体“选择不做什么” — 即在人类看到之前它们悄悄排除的选项。

基于 Santander AI Lab 的 “选择即权力” 框架:智能体不仅通过执行动作,还通过过滤选项来行使隐蔽权力。

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

三方结构:智能体声明 (不可信) 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

策略更改与代码更改具有相同的严谨性:差异对比、测试、审查、合并。

快速入门

第 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、韩国 RRN、API 密钥等),带有 Luhn/mod-97 验证

提示词注入拦截

10 类攻击,85+ 种模式,多语言 (英/韩/中/日)

规则包生态

可通过社区 YAML 包扩展 (@aegis/pii-detection, @aegis/prompt-injection)

可配置操作

脱敏拦截警告记录 — 按部署、按类别配置

支柱 2:策略引擎

带有完整治理流水线 (评估 --> 批准 --> 执行 --> 验证 --> 审计) 的声明式 YAML 规则。

能力

详情

Glob 匹配

首个匹配胜出,通配符模式 (delete*, bulk_*)

智能条件

time_after, weekdays, param_gt, param_contains, 正则,语义

4 级风险模型

/ / / 严重,支持按规则覆盖

审批门控

CLI、Slack、Discord、Telegram、电子邮件、Webhook 或自定义处理程序

审计追踪

自动 SQLite 日志记录。导出:JSONL、Webhook 或通过 CLI/API 查询

支柱 3:开放标准

使 Aegis 成为平台而非仅仅是工具的规范。

标准

作用

AGEF (智能体治理事件格式)

治理事件的标准 JSON 模式 — 7 种事件类型,哈希链接证据链。AI 治理界的 SARIF。

AGP (智能体治理协议)

智能体与治理系统之间的通信协议。MCP 标准化智能体“能做什么”;AGP 标准化智能体“不能做什么”。

规则包

社区驱动的护栏规则。使用 aegis install <pack> 安装。

流水线

每个动作都会经过 5 个阶段。这是自动发生的 — 你只需调用 `a

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