responsibleai/ASSERT

GitHub: responsibleai/ASSERT

一个需求驱动的 AI 评测框架,将自然语言规范转化为可执行的测试用例,对任意模型端点和 Agent 系统进行基于 trace 的回归测试。

Stars: 139 | Forks: 17

ASSERT logo ASSERT.

Adaptive Spec-driven Scoring for Evaluation and Regression Testing
Local-first. Framework-agnostic. Trace-aware.

🚀 Get started | 🌐 Visit project website | 🔌 View supported targets | 📘 CLI Reference | 🧪 Examples

Build status Python 3.11 | 3.12 | 3.13 License

Diagram of the ASSERT evaluation framework

## 为什么选择 ASSERT? 大多数 AI 系统都是从规范开始的:产品需求、策略、系统提示词或描述系统应该做什么和不应该做什么的发布标准。 但评估往往是从别处开始的:通用的评分器、预定义的基准测试,或者是偏离了最初意图的手动测试用例。 ASSERT 弥补了这一差距。它将你在自然语言中指定的行为转化为结构化、可执行的评估,这些评估可以被审查、运行、评分并随着时间推移不断改进。 基于自然语言规范,ASSERT pipeline 会推导出行为类别,生成单轮和多轮测试用例,针对你的目标进行推理,并使用 LLM judge 根据你的策略对每次对话进行评分。 ## 使用 ASSERT 你能得到什么 - **基于 Spec 的覆盖率** - 测试用例是根据你的产品需求和上下文生成的,而不是通用的基准测试。你可以指定想要测试的行为。 - **测试任何模型 endpoint** - 通过与 [LiteLLM](https://github.com/BerriAI/litellm) 的集成,支持来自 Bedrock、Azure、OpenAI、VertexAI、Cohere、Anthropic、Sagemaker、HuggingFace、VLLM、NVIDIA NIM 等平台提供商的 100 多个模型 endpoint。 - **测试任何 agent 或多 agent 系统** - 通过与 [OpenInference](https://github.com/Arize-ai/openinference/) 的集成实现。评估 LangGraph agent、CrewAI / OpenAI Agents SDK / DSPy / LlamaIndex / AutoGen 系统、自定义多 agent 编排、Python 可调用对象或托管模型——所有这些都无需重写评估编排 pipeline。 - **基于 Agent trace 的评判** - 推荐的集成方式会捕获 OpenTelemetry spans(OpenInference 仅需两行代码即可自动埋点 33+ 个框架 —— `from assert_ai import auto_trace; auto_trace.enable()` —— 或者你也可以使用 OTel SDK 自行发送),从而让 judge 能够将工具调用、路由、模型调用和延迟作为证据进行引用——而不仅仅是最终响应。 - **可移植的 artifacts** - 每个阶段都会在本地写入 JSON/JSONL 文件,以便进行检查、CI 和共享。 - **内置本地查看器** - 并排浏览运行结果,固定 baseline,深入了解每个行为维度的细分情况,并阅读基于捕获的 trace 引用的 judge 判定依据。 ## 开始使用 ### 快速安装 ``` pip install -e ".[otel,langgraph]" # install cp .env.example .env # add your provider key assert-ai run --config examples/travel_planner_langgraph/eval_config.yaml ```
🌐 项目网站 ↗ 📝 技术博客 ↗ 🚀 快速入门指南 ↗ 📚 文档 ↗
了解 ASSERT 阅读 Command Line 博文 跟随完整的操作指南 浏览概念与指南
## 商标 本项目可能包含项目、产品或服务的商标或徽标。授权使用 Microsoft 的商标或徽标受 [Microsoft 商标与品牌指南](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks) 约束并必须遵循该指南。在本项目的修改版本中使用 Microsoft 商标或徽标不得引起混淆或暗示 Microsoft 的赞助。任何第三方商标或徽标的使用均受该第三方政策约束。 ## 遥测 默认情况下,本项目不会收集遥测数据或将其发送给 Microsoft。运行结果会将本地 artifacts 写入 `artifacts/results/` 目录下,而可选的 OpenTelemetry trace 捕获由你的配置和本地 collector 设置(例如 Phoenix)控制。 如果你配置了 target、judge、trace collector 或模型提供商以将数据发送到外部服务,则发送给该服务的 prompt、响应、trace、元数据以及其他评估 artifacts 均受该服务的条款和你的配置所管辖。 ## 免责声明:ASSERT 的风险与局限性 请参阅 [`概念文档`](https://github.com/responsibleai/ASSERT/blob/main/docs/concepts.md#risks-and-limitations) 中的完整章节。
标签:AI, DLL 劫持, LLM, Python, SOC Prime, Unmanaged PE, 大语言模型, 开发工具, 无后门, 测试评估, 用户代理, 自动化代码审查, 逆向工具