Agentic Radar 旨在分析和评估智能体系统的安全性与运行状况。它帮助开发者、研究人员和安全专业人员理解智能体系统的工作方式,并识别潜在漏洞。
它允许用户为智能体系统创建安全报告,包括:
全面的 HTML 报告汇总了所有发现,便于轻松审阅和分享。
Agentic Radar 包含将检测到的漏洞映射到知名安全框架的功能 🛡️。
如果你只关心可视化,可以试试 Agentic Visualizer。
它是一个基于 Web 的工具,可以以用户友好的方式可视化智能体工作流。
没有任何要求!只需确保你的机器上安装了 Python(pip)即可。
pip install agentic-radar
# Check that it is installed
agentic-radar --version
某些功能需要额外安装,具体取决于目标智能体框架。更多信息请参见下文。
在将以下功能与 CrewAI 结合使用时,需要安装 CrewAI 额外依赖:
你可以通过运行以下命令来安装带有 CrewAI 额外依赖的 Agentic Radar:
pip install "agentic-radar[crewai]"
[!WARNING] 这将安装
crewai-tools包,该包仅支持 Python 版本 >= 3.10 且 < 3.13。 如果你使用的是其他 Python 版本,工具描述将不够详细,甚至完全缺失。
在将以下功能与 OpenAI Agents 结合使用时,需要安装 OpenAI Agents 额外依赖:
你可以通过运行以下命令来安装带有 OpenAI Agents 额外依赖的 Agentic Radar:
pip install "agentic-radar[openai-agents]"
Agentic Radar 现在支持两个主要命令:
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
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"
有关此功能的更多信息,请参见此处。
Agentic Prompt 加固会自动改进你在智能体工作流中检测到的系统提示词,并将其显示在报告中。它可将简单的智能体指令转换为遵循最佳提示词工程实践的高质量结构化系统提示词。
[!NOTE]
目前支持的框架(后续会越来越多):OpenAI Agents、CrewAI、Autogen
使用方法非常简单:
通过运行 export OPENAI_API_KEY=<api_key> 设置你的 OPENAI_API_KEY 环境变量。
使用 --harden-prompts 标志运行 Agentic Radar,例如:
agentic-radar scan openai-agents --harden-prompts -i examples/openai-agents/
basic/lifecycle_example -o report.html
Agentic Radar 现在支持在运行时测试你的智能体工作流,通过模拟对抗性输入来识别关键漏洞。
这包括以下自动化测试:
目前支持:
test 命令会使用一套旨在模拟恶意或对抗性输入的测试套件来启动你的智能体工作流。这些测试基于与 OWASP LLM Top 10 一致的真实攻击场景设计。
[!NOTE]
此功能需要将 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 文件,向 Agentic Radar 传递自定义测试:
include_default_tests: false
tests:
- name: TestA
input: Mention A.
success_condition: Attack succeeded if A is mentioned.
- name: TestB
input: Mention B.
success_condition: Attack succeeded if B is mentioned.
name 是测试的名称,input 是传递给智能体的输入文本,success_condition 是对何种情况构成成功攻击的描述(将由一个 oracle LLM 以此判定测试是通过还是失败)。
然后,你可以使用指向你的 YAML 文件的 --config 选项运行 Agentic Radar 测试:
agentic-radar test openai-agents --config custom_tests.yaml "examples/openai-agents/basic/lifecycle_example.py"
默认情况下,Agentic Radar 还会包含内置测试。你可以通过在 YAML 文件中将 include_default_tests 设置为 false 来禁用它们。
所有测试结果都会以视觉丰富的表格形式直接打印在终端中。 每行显示:
这使得一眼就能发现漏洞变得很容易——尤其是在多智能体系统中。
要将 Agentic Radar 集成到你的 CI/CD 流水线中,可以使用提供的 GitHub Actions 工作流示例。只需将 YAML 粘贴到仓库的 .github/workflows 目录即可。
每当有更改推送到仓库时,该工作流都会自动对你的代码库运行 Agentic Radar 扫描。生成的报告会作为工件(artifact)上传到 GitHub Actions 运行中。
该矩阵展示了哪些智能体框架支持 Agentic Radar 的哪些功能。随着时间的推移,我们将努力让所有现有功能覆盖当前所有框架,并将新框架纳入其中。
有没有你希望优先实现的功能?可以在此匿名投票或创建一个 GitHub Issue。
我们欢迎 AI 社区和安全社区的贡献!加入我们的 Discord 社区 或 Slack 社区,与其他开发者交流、讨论功能、获取支持,并为 Agentic Radar 做出贡献 🚀
如果你喜欢这个项目,请给我们一个 star!这会激励我们不断改进和创新,并帮助更多人发现这个项目 🌟
问:我的源代码会被共享吗?还是所有内容都在本地运行? 答:主要功能(静态工作流分析和漏洞映射)完全在本地运行,因此你的代码不会被共享到任何地方。对于可选的高级功能,可能会使用 LLM。例如,使用 Prompt 加固 时,检测到的系统提示词可能会被发送给 LLM 进行分析。
| 功能 | 扫描 | MCP 检测 | Prompt 加固 | Agentic 测试 |
|---|
| OpenAI Agents | ✅ | ✅ | ✅ | ✅ |
| CrewAI | ✅ | ✅ | ✅ | ❌ |
| n8n | ✅ | ✅ | ❌ | ❌ |
| LangGraph | ✅ | ✅ | ❌ | ❌ |
| Autogen | ✅ | ✅ | ✅ | ❌ |