aegis
试用 (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.pyAegis 在导入时对框架内部进行 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 |
| 稳定 |
CrewAI |
| 稳定 |
OpenAI Agents SDK |
| 稳定 |
OpenAI API |
| 稳定 |
Anthropic API |
| 稳定 |
LiteLLM |
| 稳定 |
Google GenAI (Gemini) |
| 稳定 |
Pydantic AI |
| 稳定 |
LlamaIndex |
| 稳定 |
Instructor |
| 稳定 |
DSPy |
| 稳定 |
默认护栏
所有护栏都是确定性的(无需 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) | 否 | |
云 API 服务 | 40–250 ms | N/A | |
代理 / 网关 | 100–250 ms+ | 否 |
为什么差距这么大? 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.yamlCI/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 包扩展 ( |
可配置操作 |
|
支柱 2:策略引擎
带有完整治理流水线 (评估 --> 批准 --> 执行 --> 验证 --> 审计) 的声明式 YAML 规则。
能力 | 详情 |
Glob 匹配 | 首个匹配胜出,通配符模式 ( |
智能条件 |
|
4 级风险模型 |
|
审批门控 | CLI、Slack、Discord、Telegram、电子邮件、Webhook 或自定义处理程序 |
审计追踪 | 自动 SQLite 日志记录。导出:JSONL、Webhook 或通过 CLI/API 查询 |
支柱 3:开放标准
使 Aegis 成为平台而非仅仅是工具的规范。
标准 | 作用 |
AGEF (智能体治理事件格式) | 治理事件的标准 JSON 模式 — 7 种事件类型,哈希链接证据链。AI 治理界的 SARIF。 |
AGP (智能体治理协议) | 智能体与治理系统之间的通信协议。MCP 标准化智能体“能做什么”;AGP 标准化智能体“不能做什么”。 |
规则包 | 社区驱动的护栏规则。使用 |
流水线
每个动作都会经过 5 个阶段。这是自动发生的 — 你只需调用 `a
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