<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="assets/Opfor_white%20text.svg" />
<source media="(prefers-color-scheme: light)" srcset="assets/Opfor_black%20text.svg" />
<img src="https://raw.githubusercontent.com/keyvaluesoftwaresystems/agent-opfor/HEAD/assets/Opfor_black%20text.svg" alt="OPFOR" width="250" />
</picture>
</p>
<p align="center">
<strong>面向AI智能体、LLM应用和MCP服务器的开源对抗仿真工具。</strong><br/>
像真实攻击者一样测试你的AI——从命令行、IDE或浏览器扩展(团队中任何人都可使用)即可完成。
</p>
<p align="center">
<a href="https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-Apache_2.0-444441?style=flat&labelColor=3d3d3a" alt="License: Apache 2.0"></a>
<a href="https://github.com/KeyValueSoftwareSystems/agent-opfor/stargazers"><img src="https://img.shields.io/github/stars/KeyValueSoftwareSystems/agent-opfor?style=flat&labelColor=3d3d3a&color=444441" alt="GitHub stars"></a>
<a href="https://discord.gg/Sb8xfmrjjW"><img src="https://img.shields.io/badge/Discord-join-5865F2?style=flat&logo=discord&logoColor=white&labelColor=3d3d3a" alt="Discord"></a>
<a href="#evaluator-coverage"><img src="https://img.shields.io/badge/OWASP-LLM%20+%20Agentic%20+%20MCP%20+%20API-185FA5?style=flat&labelColor=3d3d3a" alt="OWASP coverage"></a>
</p>
<p align="center">
<a href="https://trendshift.io/repositories/75655?utm_source=trendshift-badge&utm_medium=badge&utm_campaign=badge-trendshift-75655" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/trendshift/repositories/75655/daily?language=TypeScript" alt="KeyValueSoftwareSystems%2Fagent-opfor | Trendshift" width="250" height="55"/></a>
</p>
<p align="center">
<a href="https://agentopfor.ai/">网站</a> ·
<a href="https://docs.agentopfor.ai">文档</a> ·
<a href="https://github.com/KeyValueSoftwareSystems/agent-opfor">GitHub</a> ·
<a href="https://chromewebstore.google.com/detail/blkflfeicejfnbecanjaolbllmoobenp">浏览器扩展</a> ·
<a href="https://discord.gg/Sb8xfmrjjW">Discord</a>
</p>
OPFOR 是 "Opposition Force"(对抗部队)的缩写——这是一个军事术语,指在训练中扮演敌军的单位,让其他部队在真正的攻击来临之前感受真实攻击的样子。我们根据这个理念命名了该工具:要更好地防御AI智能体,必须先攻击它们。
<p align="center">
<img src="https://raw.githubusercontent.com/keyvaluesoftwaresystems/agent-opfor/HEAD/assets/opfor-high-level.svg" alt="OPFOR 工作原理" width="860" />
</p>
## 为什么我们构建了这个工具
在过去十年中,我们为90家初创公司交付了130个产品。在最近18个月中,几乎每一个产品都包含了AI智能体——而每个团队在测试时都遇到了同样的障碍。
于是我们构建了 OPFOR。首先为了我们自己。现在开源。
Apache 2.0 许可证。来自印度。
## 快速开始
```bash
npm install -g @keyvaluesystems/agent-opfor-cli
export OPENAI_API_KEY=your-key # 或 GEMINI_API_KEY、ANTHROPIC_API_KEY 等
```
**一步完成**——运行设置向导并立即开始扫描:
```bash
opfor run
```
**两步完成**——保存可重复使用或提交到 CI 的配置:
```bash
opfor setup # 向导将配置保存到 .opfor/configs/
opfor run --config .opfor/configs/<file> # 随时使用保存的配置运行
```
https://github.com/user-attachments/assets/a6a3cff2-2cf9-4486-944e-ac0163e7ea04
## OPFOR 能做什么
OPFOR 对AI智能体的完整攻击面进行红队测试——包括提示、工具、MCP服务器、记忆和多轮推理。它针对 OWASP LLM Top 10、OWASP Agentic AI Top 10、OWASP MCP Top 10、OWASP API安全以及欧盟AI法案偏见套件生成定向攻击,向目标发起攻击,并用LLM评估每个响应。
这一领域的大多数红队工具只擅长一件事——要么是一个探测库、一个开发者评估器、一个程序化框架。OPFOR 在一款工具中覆盖更多方面:
- **面向非开发者的浏览器扩展**——团队中的任何人都可以对已部署的聊天机器人进行红队测试,不需要代码、环境变量或 YAML
- **以 MCP 服务器方式运行 OPFOR**——让 Cursor 或 Claude Desktop 中的AI编码智能体通过自然语言对你的其他智能体进行红队测试
- **单一工具覆盖完整 OWASP**——LLM Top 10、Agentic AI Top 10、MCP Top 10、API安全 Top 10
- **无黑箱**——每个攻击提示、请求、响应和评估判定都会被记录;可复现、可审计、可分支
- **专为智能体设计,而非仅模型**——从第一天起就针对工具调用、MCP、记忆和多轮状态设计
- **可观测性感知**——与 Langfuse 和 Netra 集成,使LLM评估器不仅能看到AI智能体的最终回复,还能看到其内部行为
## 五种运行 OPFOR 的方式
团队中不同的人需要不同的入口点。OPFOR 提供五种。
| 模式 | 方式 | 最适合 |
| --------------------------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| 🖥️ **CLI** | `opfor setup` → `opfor run` | 工程师、CI/CD、终端优先的工作流 |
| 🌐 **浏览器扩展** | 安装扩展,在任何聊天界面上点击图标 | 产品经理、设计师、QA、安全分析师——任何不能或不愿意编写代码的人 |
| 🤖 **MCP 服务器** | 在 Cursor 或 Claude Desktop 中注册 opfor,然后在聊天中提问 | 用于测试其他智能体的AI编码智能体 |
| ⚡ **技能** | `/opfor-setup` · `/opfor-run` · `/opfor-mcp-setup` · `/opfor-mcp-run` | 希望在 IDE 内一键测试的开发者 |
| 📦 **SDK** | `npm install @keyvaluesystems/agent-opfor-sdk`,然后在代码中调用 `run` / `hunt` | 程序化红队测试和自定义工作流 |
所有五种模式共享相同的评估器、攻击模板和判断逻辑。
→ [CLI 参考](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/docs/cli.md) · [浏览器扩展设置](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/docs/browser-extension.md) · [MCP 设置](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/docs/mcp.md) · [技能设置](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/docs/skills.md) · [SDK 参考](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/docs/sdk.md) · [会话处理](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/docs/sessions.md)
## 工作原理
<p align="center">
<img src="https://raw.githubusercontent.com/keyvaluesoftwaresystems/agent-opfor/HEAD/assets/opfor-execution-flow.svg" alt="opfor run 执行流程" width="860" />
</p>
当你运行扫描时,opfor 会:
1. **获取目标信息**——连接到你的智能体,检测可用的工具、MCP端点、能力
2. **按类别规划攻击**——为所选套件中的每个评估器生成定向提示
3. **模拟攻击**——运行多轮对抗式对话(真实请求,真实响应)
4. **用评估器进行评估**——LLM评估器对每个响应进行分类,给出通过/失败加推理
5. **生成报告**——HTML 用于浏览,JSON 用于 CI/CD,所有工件均已记录以实现可复现性
每次运行都会在 `.opfor/reports/run-report-<compactTs>-<slug>-<shortId>/` 下创建自己的子文件夹,包含 `<slug>-report.html` 和 `<slug>-report.json`。自主 `opfor hunt` 运行使用相同的布局,位于 `hunt-report-<compactTs>-<slug>-<shortId>/` 下。
## 评估器覆盖范围
OPFOR 内置了映射到行业标准的精选套件。可以选择一个套件或运行单个评估器。
| 套件 ID | 标准 | 关注点 |
| --------------------- | ----------------------- | ---------------------------------------------------------------------- |
| `owasp-llm-top10` | OWASP LLM Top 10 (2025) | 提示注入、越狱、敏感信息披露、系统提示泄露 |
| `owasp-agentic-ai` | OWASP Agentic AI Top 10 | 过度授权、工具滥用、智能体目标劫持、记忆投毒 |
| `owasp-mcp-top10` | OWASP MCP Top 10 (2025) | 秘密暴露、权限升级、工具描述注入、SSRF |
| `owasp-api` | OWASP API Security Top 10 | BOLA、BFLA、SQL注入 |
| `eu-ai-act-bias` | 欧盟AI法案——偏见 | 年龄、性别、种族、残疾 |
→ [完整评估器参考及OWASP映射](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/docs/evaluators.md)
## 可观测性感知的测试
将 OPFOR 接入你的可观测性栈后,LLM评估器不仅能看到最终响应,还能看到每个工具调用、检索和中间推理步骤。开箱即用,OPFOR 与 **[Langfuse](https://langfuse.com)** 和 **[Netra](https://getnetra.ai)** 集成。
```json
"telemetry": {
"provider": "langfuse",
"langfuse": { "baseUrl": "https://cloud.langfuse.com" }
}
```
这能捕获仅靠输入/输出测试无法发现的问题——例如 PII 泄露到工具调用中但从未到达用户、MCP 中的权限提升不改变响应文本、智能体检索了未授权数据但输出了干净的回复。
→ [可观测性感知测试指南](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/docs/telemetry.md)
## 自主红队测试
`opfor hunt` 完全跳过配置文件。给它一个端点和一个目标,一个多智能体系统——指挥官、操作员、侦察兵——会自动运行适应性攻击活动:侦察、策略、多轮探测、报告。与 `opfor run` 不同,这些智能体仅运行在 Claude 上(通过 Claude API 密钥、`claude setup-token` 或本地 `claude login` 会话)——你的目标可以是任何东西。
```bash
opfor hunt \
--endpoint "https://your-agent.com/v1/chat" \
--objective "寻找越狱、系统提示泄露和安全规避。"
```
添加 `--ui` 可在实时仪表板中观察攻击树的展开。
→ [完整参考](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/docs/hunt.md)
## 浏览器扩展——对聊天机器人进行红队测试
浏览器扩展是 OPFOR 的无代码路径。从 Chrome Web Store 安装,打开任何聊天界面,点击 OPFOR 图标,选择一个套件,然后观看它运行。
https://github.com/user-attachments/assets/80c2692f-b18b-4899-99df-e7eb8d50b02a
它会自动检测聊天界面,像你打字一样发送攻击提示,观察响应,完成后下载 HTML 报告。不需要 CLI、目标设置或 YAML。
这是每个产品团队中那些不打开终端的成员所使用的路径。
→ [从 Chrome Web Store 安装](https://chromewebstore.google.com/detail/blkflfeicejfnbecanjaolbllmoobenp) · [设置指南](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/docs/browser-extension.md)
## SDK——将红队测试嵌入代码
SDK 是 OPFOR 的程序化路径。安装 `@keyvaluesystems/agent-opfor-sdk`,调用 `run` 或 `hunt`,即可获得结构化结果——不需要 CLI、配置文件或子进程。
```typescript
import { Opfor } from "@keyvaluesystems/agent-opfor-sdk";
const opfor = new Opfor({ apiKey: process.env.ANTHROPIC_API_KEY });
const results = await opfor.run({
target: { url: "https://api.example.com/chat" },
suite: "owasp-llm-top10",
});
```
可在 CI、测试套件或任何需要在不离开 TypeScript 的情况下进行红队测试的地方使用。
→ [SDK 参考](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/docs/sdk.md)
## 示例
| 示例 | 描述 |
| ------------------------------------------------------------ | -------------------------------------------------------- |
| [vanilla-chat](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/tests/e2e/agents/vanilla-chat) | 普通客户支持聊天机器人——测试 LLM 级别漏洞 |
| [customer-support](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/tests/e2e/agents/customer-support) | 带 PostgreSQL 的工具调用智能体——测试 BOLA、BFLA、RBAC、PII |
| [vulnerable-server](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/tests/e2e/mcp/vulnerable-server) | 带有故意漏洞的示例 MCP 服务器 |
## 支持的 LLM 提供商
| 提供商 | 环境变量 | 默认模型 |
| ----------------- | ------------------------------ | --------------------------------- |
| Groq | `GROQ_API_KEY` | `llama-3.3-70b-versatile` |
| OpenAI | `OPENAI_API_KEY` | `gpt-4o-mini` |
| Anthropic | `ANTHROPIC_API_KEY` | `claude-3-5-haiku-20241022` |
| Google | `GOOGLE_GENERATIVE_AI_API_KEY` | `gemini-2.0-flash` |
| OpenAI 兼容 | `OPFOR_API_KEY` + `baseURL` | LiteLLM、OpenRouter、Azure、Ollama |
## 贡献
请阅读 [CONTRIBUTING.md](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/CONTRIBUTING.md) 了解我们的行为准则以及提交拉取请求的流程。
## 作者
由 [KeyValue Software Systems](https://keyvalue.systems) 团队构建。如有任何疑问,请联系 [[email protected]](mailto:[email protected])。
## 安全性
仅在你拥有或已获授权测试的系统上使用 OPFOR。若要在 OPFOR 自身中报告漏洞,请参阅 [SECURITY.md](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/SECURITY.md)——不要公开提交问题。
## 许可
OPFOR 采用 Apache 2.0 许可证——详情请参阅 [LICENSE](https://github.com/keyvaluesoftwaresystems/agent-opfor/blob/master/LICENSE) 文件。
---
<p align="center">
由 <a href="https://keyvalue.systems">KeyValue</a> 用心构建 ❤️
</p>