aymandakir-gh/gh-aegis
GitHub: aymandakir-gh/gh-aegis
一款基于纯规则引擎的零 ML 防护中间件,用于在大语言模型调用的输入、输出及工具执行阶段检测并拦截 OWASP LLM Top 10 安全威胁。
Stars: 0 | Forks: 0
# gh-aegis
[](https://www.npmjs.com/package/gh-aegis)
[](https://github.com/aymandakir-gh/gh-aegis/actions/workflows/ci.yml)
[](./LICENSE)
[](https://nodejs.org)
[](#为什么是零-ml)
**一个针对 [OWASP LLM Top 10](https://genai.owasp.org/llm-top-10/) 的确定性、零 ML 防护工具。**
`gh-aegis` 包装了你的 LLM 调用,并在模型看到 **用户输入** 前对其进行检查,在用户看到 **模型输出** 前对其进行检查,并在你的 agent 运行 **工具调用** 前对其进行检查。没有模型,没有推理,没有网络,没有遥测 —— 只有 regex + 一个能在微秒内返回判定并且 **从不抛出异常** 的规则引擎。每一条规则都是可审计的;每一个结果都是可复现的。
```
import { createAegisGuard } from "gh-aegis";
const aegis = createAegisGuard({ enabled: true });
const result = await aegis.scan(userMessage, { scope: "input" });
if (!result.safe) throw new Error(`Blocked: ${result.threatType}`);
```
- 🛡️ **8 个 OWASP 类别** — LLM01, LLM02, LLM04, LLM05, LLM06, LLM07, LLM08, LLM10(见 [映射](#owasp-llm-top-10-coverage))。
- 🔒 **PII 与密钥脱敏** — 获取一份安全的模型输出 `sanitized` 副本。
- 🧩 **声明式策略** — 通过一个经过校验的 JSON 文件来开关检测器/作用域/阈值/脱敏。
- 🔌 **即插即用集成** — Express, Fastify, Vercel AI SDK, LangChain,以及流式输出防护。
- 🖥️ **CLI + playground** — `npx gh-aegis scan app.log`,外加一个本地的零网络直观演示。
- 📊 **可复现基准测试** — `npm run bench` 报告在已提交数据集上的 precision/recall/F1;如果出现倒退,CI 会失败。
- 📦 **零运行时依赖。**
## 安装
```
npm install gh-aegis
```
要求 Node ≥ 18。以 ESM 形式提供,并附带 TypeScript 类型。
## OWASP LLM Top 10 覆盖范围
| OWASP | 捕获内容 | `ThreatType` | 作用域 |
|---|---|---|---|
| **LLM01** Prompt Injection | “忽略之前的指令”,`` 注入,DAN/`[JAILBREAK]`,“developer mode”,“disable your guardrails”,“override your safety” | `PROMPT_INJECTION`, `JAILBREAK` | 输入 |
| **LLM02** 不安全的输出 / PII | 电子邮件,电话,IBAN,OpenAI/Stripe/GitHub/Anthropic 密钥,codice fiscale,Bearer token — **检测并脱敏** | `PII_OUTPUT` | 输出 |
| **LLM04** 数据与模型投毒 | 不可见 Unicode 负载走私 — Tags-block “ASCII 走私” (U+E00xx),bidi 覆盖 (Trojan Source),隐藏在单词中的零宽字符 | `DATA_POISONING` | 输入, 输出 |
| **LLM05** 不当的输出处理 | 指向下游渲染器的活动内容 — `