RAMPART
一个 pytest 原生的 AI 智能体应用安全测试框架,用熟悉的测试工作流覆盖对抗攻击与良性失败场景。
证据显示:pyproject 中 pyrit 固定到 git commit(6dc8b94),CI 使用 SHA 锁定的 actions、permissions: {} 最小权限、persist-credentials: false,CodeQL 定期扫描,依赖版本下限明确——依赖安全与最小权限在工程配置层面得到支持(2分)。但未扣满分原因:核心运行时代码(适配器、评估器、清单处理)未包含在证据中,无法验证 agent 产品本身的权限、确认流程、数据流、敏感数据处理、外部副作用或回滚机制;README 无任何隐私/数据流/确认说明,故这些准则仅得 1 分(存在占位性线索如 AppManifest、ObservabilityLevel,但无实质支持)。来源归属清晰:Microsoft AI Red Team 署名、LICENSE 与版权头一致(2分)。
证据显示:MockSession/MockAdapter 对空输入抛出带说明的 ValueError,文档字符串描述契约(含循环行为、嵌套序列语义),错误消息明确(failure_messages 2 分)。自一致性方面 pyproject 的 markers、coverage 配置、CI 矩阵(3.11–3.14)与 requires-python 一致(2 分)。扣分原因:pyrit 经 git 依赖固定,可复现性依赖上游 commit 可用性;除 fixtures 外无实际运行时代码可评估故障路径,dependency_availability 仅 1 分。
证据显示:受众明确(开发者、pytest 用户、AI 红队),关键词、classifiers、pytest11 入口点、asyncio auto 模式、OS 无关声明共同支持环境适配(environment_fit 2 分)与受众定义(2 分)。扣分原因:README 未说明产品能覆盖哪些具体场景/框架适配器,capability_boundaries 无文档;harm/trial/slow markers 显示标记机制存在但无示例展示其触发精度,trigger_precision 仅 1 分。
证据显示:MIT LICENSE 完整且与 pyproject、版权头、ruff 版权检查正则一致(license 3 分)。版本经 hatch-vcs/VCS 派生、PyPI 徽章、Development Status :: 3 - Alpha 如实标注(versioning_changelog 2 分,但无 CHANGELOG 文件,不给予满分)。命名稳定(RAMPART/rampart 一致,2 分)。维护责任:Microsoft 署名、Issues 链接、活跃 CI 与 CodeQL 调度(2 分)。扣分原因:README 仅含定位语与商标声明,无安装步骤、无示例、无 FAQ、无已知限制章节,information_architecture/install_notes/examples_and_faq/known_limitations 均 1 分。
证据显示:作为 pytest 原生安全测试框架,接入成本对 pytest 用户低(入口点、asyncio auto、markers),边际价值明确——将 AI 红队产物纳入测试断言与 CI(2 分)。coverage fail_under=80 与 ruff ALL 选集显示质量门槛。扣分原因:无任何实际使用示例、报告输出格式、结果可读性说明,output_usability 仅 1 分;成本方面未见 token/API 开销说明,cost_benefit 因证据不足不给予满分(2 分)。
证据显示:pyproject 与 CI 相互印证(版本方案、测试目录 tests/unit、lint 工具链),README 声称的能力在 CI markers 与 fixtures 中有部分可追溯线索(fact_inference_separation 2 分,Alpha 状态如实区分了成熟度)。扣分原因:README 核心声明(对抗攻击、良性失败、harm categories、evaluation-driven assertions)在所提供文件中无代码或文档实证,claim_traceability 仅 1 分;OpenSSF Scorecard 与 PyPI 徽章为外部引用,所供文件内部无法交叉验证,cross_source_corroboration 仅 1 分。
- 所供文件不含任何运行时代码:适配器、评估器、清单加载均无法静态审查,本评分主要反映工程配置与测试夹具质量。
- pyrit 依赖经 git commit 固定,构建可用性取决于上游仓库该 commit 的长期可访问性。
- README 缺少安装步骤、使用示例、已知限制与数据流/隐私说明,采用前需自行查阅文档站。
- 项目自标 Alpha 状态,API 与 markers 语义可能变更,勿在生产流水线中未经评审直接依赖。
- 未执行任何测试;本次为纯静态审查,结论置信度低。
这个 Agent 能做什么,适合哪些场景?
RAMPART(Risk Assessment & Measurement Platform for Agentic Red Teaming)是微软开源的面向智能体 AI 应用的安全与安保测试框架。它以 pytest 原生方式运行,开发者可以在现有 pytest 工作流中编写和执行针对 AI 智能体的安全测试。框架覆盖对抗性攻击、良性失败以及广泛的有害内容类别,并通过评估驱动的断言判定测试结果。项目采用 MIT 许可证发布,并发布在 PyPI 上,附带 OpenSSF Scorecard 和 GitHub CI 徽章。适合希望在软件开发生命周期内系统化验证智能体安全性的工程团队。
RAMPART 让开发者以 pytest 测试用例的形式定义针对 AI 智能体的安全与安保测试。它读取这些测试定义,运行覆盖对抗性攻击、良性失败和多种有害类别的测试场景,并通过评估驱动的断言对智能体行为作出通过/失败判定。整个执行嵌入在 pytest 的既有运行与报告机制中,可与常规测试流程一同触发。
- AI 应用工程团队在 CI 中为智能体加入安全回归测试,防止新的提示注入风险上线
- 安全红队工程师用结构化的对抗攻击用例系统性评估智能体抵抗力
- 平台团队检测智能体在正常输入下的良性失败(误拒、幻觉等非攻击性缺陷)
- 合规或风险评估人员按有害类别对智能体行为进行分类测量
- 已使用 pytest 的团队以最低学习成本将智能体安全测试并入现有测试套件
这个 Agent 有哪些优点和局限?
- pytest 原生设计,可直接复用现有 pytest 工作流、插件与 CI 集成,学习成本低
- 同时覆盖对抗性攻击、良性失败和广泛的有害类别,评估维度较全面
- 采用评估驱动的断言,使安全测试具备可判定、可回归的工程化输出
- MIT 许可证并发布到 PyPI,便于在企业项目中评估与引入
- README 内容极为简短,缺少具体用法、测试示例和配置文档,评估成本较高
- 项目由微软维护,需接受其商标与品牌使用政策的约束
- 针对智能体的测试需要网络与被测智能体可用,测试的稳定性和可重复性依赖于被测系统
- 仓库未提供 Topics 和额外的仓库指引,难以快速判断生态与集成范围
如何安装或部署这个 Agent?
仓库 README 提供了 PyPI 发布(https://pypi.org/project/RAMPART/),可推测通过 pip 安装:pip install RAMPART。README 中未给出具体的安装命令、Python 版本要求和依赖清单,使用前请查阅 PyPI 页面或仓库文档确认确切的安装说明。
如何使用这个 Agent?
由于框架是 pytest 原生的,基本用法是在 pytest 测试中编写针对 AI 智能体的安全测试用例,并使用评估驱动的断言判定结果,然后通过 pytest 命令运行。README 未提供具体的测试示例代码、命令行调用或配置格式,采用前需参考仓库中的实际测试与文档示例。