技术文档摘要
<div align="center">
<a href="https://splx.ai">
<img src="https://github.com/splx-ai/agentic-radar/raw/main/docs/logo.png" alt="logo" width="600" height="auto" />
</a>
<p>
用于代理工作流的安全扫描器!
</p>
<!-- 标签 -->
<p>
<a href="https://github.com/splx-ai/agentic-radar/graphs/contributors">
<img src="https://img.shields.io/github/contributors/splx-ai/agentic-radar" alt="贡献者" />
</a>
<a href="">
<img src="https://img.shields.io/github/last-commit/splx-ai/agentic-radar" alt="最后更新" />
</a>
<a href="https://github.com/splx-ai/agentic-radar/network/members">
<img src="https://img.shields.io/github/forks/splx-ai/agentic-radar" alt="分支" />
</a>
<a href="https://github.com/splx-ai/agentic-radar/stargazers">
<img src="https://img.shields.io/github/stars/splx-ai/agentic-radar" alt="星标" />
</a>
<a href="https://github.com/splx-ai/agentic-radar/issues/">
<img src="https://img.shields.io/github/issues/splx-ai/agentic-radar" alt="开放问题" />
</a>
<a href="https://github.com/splx-ai/agentic-radar/blob/main/LICENSE">
<img src="https://img.shields.io/github/license/splx-ai/agentic-radar.svg" alt="许可证" />
</a>
<a href="https://pypi.org/project/agentic-radar">
<img src="https://img.shields.io/pypi/v/agentic-radar" alt="PyPI - 版本" />
</a>
<a href="https://pypi.org/project/agentic-radar">
<img src="https://static.pepy.tech/badge/agentic-radar" alt="PyPI - 下载量" />
</a>
<br />
<a href="https://discord.gg/tR2d54utZc">
<img src="https://img.shields.io/discord/1346578514177949767?style=for-the-badge&logo=discord&logoColor=white&label=Discord&labelColor=5865F2&color=555555" alt="Discord" />
</a>
<a href="https://join.slack.com/t/splxaicommunity/shared_invite/zt-31b3hc3mt-A0v78qztTIMSNBg6y~WOAA">
<img src="https://img.shields.io/badge/Slack-4A154B?style=for-the-badge&logo=slack&logoColor=white" alt="Slack" />
</a>
</p>
<h4>
<a href="https://github.com/splx-ai/agentic-radar/">查看演示</a>
<span> · </span>
<a href="https://github.com/splx-ai/agentic-radar">文档</a>
<span> · </span>
<a href="https://github.com/splx-ai/agentic-radar/issues/">报告错误</a>
<span> · </span>
<a href="https://github.com/splx-ai/agentic-radar/issues/">请求功能</a>
</h4>
</div>
<img src="docs/overview_image.png"/>
<!-- 目录 -->
<details>
<summary>目录</summary>
<ol>
<li>
<a href="#description-">描述</a>
</li>
<li>
<a href="#agentic-visualizer-">代理可视化器</a>
</li>
<li>
<a href="#getting-started-">开始使用</a>
<ul>
<li><a href="#prerequisites">先决条件</a></li>
<li><a href="#installation">安装</a></li>
</ul>
</li>
<li>
<a href="#advanced-installation">高级安装</a>
<ul>
<li><a href="#crewai-installation">CrewAI 安装</a></li>
<li><a href="#openai-agents-installation">OpenAI 代理安装</a></li>
</ul>
</li>
<li><a href="#usage">用法</a></li>
<li>
<a href="#advanced-features-">高级功能</a>
<ul>
<li><a href="#agentic-prompt-hardening">代理提示强化</a></li>
<li><a href="#-test-for-vulnerabilities-in-agentic-workflows">测试代理工作流中的漏洞</a></li>
<li><a href="#cicd-workflow">CI/CD 工作流</a></li>
</ul>
</li>
<li><a href="#roadmap-">路线图</a></li>
<li><a href="#blogs-and-tutorials-">博客和教程</a></li>
<li><a href="#community-">社区</a></li>
<li><a href="#frequently-asked-questions-">常见问题</a></li>
<li><a href="#contributing-">贡献</a></li>
<li><a href="#code-of-conduct-">行为准则</a></li>
<li><a href="#license-">许可证</a></li>
</ol>
</details>
描述 📝
代理雷达旨在分析和评估代理系统以获取安全性和操作洞察。它帮助开发者、研究人员和安全专业人员理解代理系统如何运作,并识别潜在的漏洞。
它允许用户为代理系统创建安全报告,包括:
- 工作流可视化 - 代理系统工作流的图表✅
- 工具识别 - 系统使用的所有外部和自定义工具列表✅
- MCP 服务器检测 - 系统代理使用的所有 MCP 服务器列表✅
- 漏洞映射 - 将已识别工具与已知漏洞连接起来的表格,提供安全概览✅
全面的 HTML 报告总结了所有发现,便于轻松审查和分享。
查看完整报告示例
代理雷达包括将检测到的漏洞映射到知名的安全框架 🛡️。
代理可视化器 🎆
如果您只关心可视化,请尝试 代理可视化器。
这是一个基于 Web 的工具,允许您以用户友好的方式可视化代理工作流。
开始使用 🚀
先决条件
没有!只需确保您的机器上安装了 Python(pip)。
安装
pip install agentic-radar
# 检查是否已安装
agentic-radar --version
某些功能需要额外安装,具体取决于目标代理框架。请参阅 以下内容。
高级安装
CrewAI 安装
当使用以下功能之一与 CrewAI 结合时,需要 CrewAI 扩展:
您可以通过运行以下命令来安装带有额外 CrewAI 依赖项的代理雷达:
pip install "agentic-radar[crewai]"
[!警告]
这将安装 crewai-tools 包,该包仅支持 Python 版本 >= 3.10 和 < 3.13。
如果您使用的是不同的 Python 版本,则工具描述可能不详细或完全缺失。
OpenAI 代理安装
当使用以下功能之一与 OpenAI 代理结合时,需要 OpenAI 代理扩展:
您可以通过运行以下命令来安装带有额外 OpenAI 代理依赖项的代理雷达:
pip install "agentic-radar[openai-agents]"
使用
代理雷达现在支持两个主要命令:
1. scan
扫描代码中的代理工作流并生成报告。
agentic-radar scan [OPTIONS] FRAMEWORK:{langgraph|crewai|n8n|openai-agents|autogen}
示例:
agentic-radar scan langgraph -i path/to/langgraph/example/folder -o report.html
2. test
测试代理工作流中的各种漏洞。
需要设置环境变量 OPENAI_API_KEY。
agentic-radar test [OPTIONS] FRAMEWORK:{openai-agents} ENTRYPOINT_SCRIPT_WITH_ARGS
示例:
agentic-radar test openai-agents "path/to/openai-agents/example.py"
有关此功能的更多信息,请参阅 此处。
高级功能 ✨
代理提示强化
代理提示强化会自动改进检测到的系统提示,并在报告中显示它们。它将简单的代理指令转换为遵循最佳提示工程实践的高质量结构化系统提示。
[!注意]
当前支持的框架(未来会有更多):OpenAI 代理、CrewAI、Autogen
使用非常简单:
- 通过运行
export OPENAI_API_KEY=<api_key> 设置您的 OPENAI_API_KEY 环境变量。
- 使用
--harden-prompts 标志运行代理雷达,例如:
agentic-radar scan openai-agents --harden-prompts -i examples/openai-agents/
basic/lifecycle_example -o report.html
- 检查生成报告中的强化系统提示:
<img src="docs/prompt_hardening.png"/>
🔍 测试代理工作流中的漏洞
代理雷达现在支持在 运行时 测试您的代理工作流,通过模拟对抗性输入来识别关键漏洞。
这包括自动化测试:
- 提示注入
- PII 泄漏
- 危害内容生成
- 虚假新闻生成
当前支持:
🛠 如何工作
测试命令启动您的代理工作流,并使用设计为模拟恶意或对抗性输入的测试套件。这些测试是根据与 OWASP LLM Top 10 对齐的真实世界攻击场景设计的。
[!注意]
此功能需要设置环境变量 OPENAI_API_KEY 或 AZURE_OPENAI_API_KEY。您可以通过命令行或 .env 文件设置它。
测试运行如下:
agentic-radar test <framework> "<path/to/the/workflow/main.py any-necessary-args>"
例如:
agentic-radar test openai-agents "examples/openai-agents/basic/lifecycle_example.py"
该工具将自身注入用户提供的代理工作流,检测必要的信息并运行准备好的测试。
可配置测试
您可以通过创建具有以下结构的 YAML 文件来向代理雷达传递自定义测试:
include_default_tests: false
tests:
- name: TestA
input: 提及 A。
success_condition: 如果提及 A,则攻击成功。
- name: TestB
input: 提及 B。
success_condition: 如果提及 B,则攻击成功。
name 是测试名称,input 是要传递给代理的输入文本,success_condition 是构成成功攻击的描述(将由 Oracle LLM 用来确定测试是否通过)。
然后,您可以使用 --config 选项指向您的 YAML 文件来运行代理雷达测试:
agentic-radar test openai-agents --config custom_tests.yaml "examples/openai-agents/basic/lifecycle_example.py"
默认情况下,代理雷达还将包含内置测试。您可以在 YAML 文件中将 include_default_tests 设置为 false 来禁用它们。
📊 丰富的测试结果
所有测试结果都以视觉丰富的表格格式直接打印在终端中。
每一行显示:
- 代理名称
- 测试类型
- 注入输入
- 代理输出
- ✅ 测试是否通过
- 🛑 结果的简短解释
这使得很容易一眼看出漏洞——尤其是在多代理系统中。
<img src="docs/test_results.png" alt="测试结果示例" />
CI/CD 工作流
要将代理雷达集成到您的 CI/CD 管道中,可以使用 提供的 GitHub Actions 工作流示例。只需将 YAML 粘贴到您的存储库的 .github/workflows 目录中。
此工作流会在每次更改推送到存储库时自动运行代理雷达扫描。生成的报告作为 GitHub Actions 运行中的工件上传。
路线图 📈
此矩阵显示了哪些代理框架支持所有代理雷达功能。随着时间的推移,我们将努力覆盖所有现有框架的所有现有功能,并引入新的框架。
| 功能 | 扫描 | MCP 检测 | 提示强化 | 代理测试 |
|---|
| OpenAI 代理 | ✅ | ✅ | ✅ | ✅ |
| CrewAI | ✅ | ✅ | ✅ | ❌ |
| n8n | ✅ | ✅ | ❌ | ❌ |
| LangGraph | ✅ | ✅ | ❌ | ❌ |
| Autogen | ✅ | ✅ | ✅ | ❌ |
您希望看到哪些功能优先实现?匿名投票 这里 或 打开一个 GitHub 问题。
博客和教程 💡
社区 🤝
我们欢迎来自人工智能和安全社区的贡献!加入我们的 Discord 社区 或 Slack 社区,与其他开发者交流,讨论功能,获得支持并为 代理雷达 贡献力量 🚀
如果您喜欢看到的内容,请给我们点赞!这激励我们不断改进和创新,并帮助其他人发现这个项目 🌟
常见问题 ❓
Q: 我的源代码会被共享吗?还是所有操作都在本地进行?
A: 主要功能(静态工作流分析和漏洞映射)完全在本地运行,因此您的代码不会被共享。对于可选的高级功能,可能会使用 LLM。例如,在使用 提示强化 时,检测到的系统提示可能会发送到 LLM 进行分析。
贡献 💻
贡献指南
行为准则 📜
行为准则
许可证 ⚖️
许可证