Skip to content

Repository files navigation

AgentRig

让每一次 AI Agent 变更都经过可复现、可审计、可回归的验证。

MCP 原生的 Agent 回归评测与受控发布门禁基础设施

CI Python 3.12+ MCP native Status: alpha MIT License

五分钟复现 · 工作原理 · 接入自己的 Agent · 文档中心 · English

AgentRig 运行报告:质量门禁检查基于冻结证据阻断已知回归

真实本机运行界面:A/B 回归的验收报告与质量门禁,全部结论都引用不可变运行证据。

Agent 上线后的风险通常不来自“接口能否调用”,而来自模型、提示词、工具、上下文和依赖变化后, 行为是否仍然满足业务与安全约束。AgentRig 将评测目标转换为可预览、必须确认、幂等提交的 执行计划,并保存从工具调用到最终裁决的完整证据链。任何组件都不能通过一段看似成功的文本改写 运行事实,也不能绕过确认、权限或证据门禁。

为什么是 AgentRig

常见问题 AgentRig 的处理方式
回答看起来正确,但过程无法复核 保存不可变运行快照、RunEvent、工具结果、评判记录与引用
工具调用难以稳定复现 按 Fixture → Sample → Simulation Curator → Real Tool 的受控 Provider 链执行
“执行完成”被误当成“测试通过” 分离运行状态、Rule、Evidence Judge 与外部控制方结论;completed ≠ pass
单次成功掩盖模型方差 Cell 与独立 Attempt 暴露重复执行的真实分布
模型或运行时故障后记录丢失 以数据库事实链为准,支持幂等重试、断线恢复和显式失败投影
评测入口权限过大 Web 助手、MCP 控制方与执行内核使用分离的权限面和确认边界

工作原理

flowchart LR
    U[用户目标 / 外部控制方] --> A[评测助手 或 MCP 工具]
    A --> P[EvaluationPlan 预览]
    P -->|用户确认| G{AgentRig Core Gate}
    G --> T[被测 Agent]
    T -->|缺少可靠工具结果| C[Simulation Curator]
    T --> E[(不可变运行证据)]
    C --> E
    E --> R[Deterministic Rules]
    E --> J[Evidence Judge]
    R --> V[可追溯结论]
    J --> V
Loading
角色 负责 明确不负责
评测助手 / 外部控制方 理解目标、查询资产、形成计划、解释结果 绕过用户确认、直接写入评判事实
Simulation Curator 在可靠样本缺失时生成并校验受控工具结果 调用真实业务工具、决定最终 pass/fail
Evidence Judge 依据 rubric 和冻结证据独立裁决并引用事件 修改 RunEvent、补造不存在的证据
AgentRig Core 执行、权限、状态机、证据、Rule 与审计事实 依赖模型或聊天文本才能保持正确性

已验证的场景

场景 预期 可核验证据
成功回归 受控工具调用完成,Rule 通过 工具事件、Provider 命中与规则引用
策略回归 Candidate 未先确认即执行,明确判 fail A/B 差异、门禁阻断与同一违规事件引用
显式恢复 第一次 503/超时保持失败;新 Run 恢复通过 两个不可变 Run、错误分类、未覆盖的历史证据

三个场景由 Public Reference Target 提供,无需模型 Key 或私有依赖即可在 CI 与本机完整复现。

五分钟复现

路径 A:公开确定性 Demo(推荐)

只需 Python 3.12+、uv 和 Node.js 20+;场景运行不需要模型 Key 或 Docker。

git clone https://github.com/ChenCJ-io/agentrig.git
cd agentrig
scripts/reference_demo.sh all --profile reference-ci

脚本会从干净环境完成依赖安装、Web 构建、数据库迁移、服务启动、三个场景执行、证据导出及 离线完整性校验。完成后访问 http://127.0.0.1:8020,产物位于 .agentrig/reference-demo/evidence/

scripts/reference_demo.sh validate-evidence --require-clean-source
scripts/reference_demo.sh down

路径 B:最小本地服务

uv sync --extra dev
cd web && npm ci && npm run build && cd ..
uv run agentrig db upgrade
uv run agentrig serve

默认入口:Web http://127.0.0.1:8000/、HTTP API /api/、Streamable HTTP MCP /mcp/。 配置、鉴权和网络边界见快速开始与安全部署

接入自己的 Agent

创建一个 Target 指向你的 Agent,选择匹配的 Driver,再用 ExecutionProfile 决定工具控制方式:

Driver 适用协议
acp stdio Agent Client Protocol(Goose 等编码 Agent)
http_sse 通用外置 tool-calling SSE 协议
ag_ui AG-UI 协议(AgentScope 2.x 等)
agentscope AgentScope 原生运行时
openai_compatible OpenAI Chat Completions tool-calling
python / subprocess 部署 allowlist 内的自定义 Driver

字段、探针与配置合并规则见 V1 实现与接入; Codex、Claude Code 等编码 Agent 可直接按 Skill 目录 通过 MCP 控制评测。

核心能力

领域 能力
评测编排 单用例、批量、多版本、重复运行、双 Target A/B、计划预览与确认
工具控制 controlled、CaseRun 级 MCP proxy、observe-only;Fixture/Sample/Curator/Real Tool 链
评判体系 Deterministic Rule、Evidence Judge、External Controller 分层存档
证据与恢复 不可变快照、append-only RunEvent、结果引用、幂等状态机、断线恢复
质量门禁 QualityReport、A/B ComparisonReport、版本化 ReleaseGate 与稳定来源哈希
生产证据 OTLP/HTTP 接入、双重脱敏、Trace→Case 审批、人工标注与 Judge 对齐
工程与安全 SQLite/PostgreSQL、Alembic、Secret 引用、出站策略、脱敏、SBOM 与校验和
交付界面 React 管理界面、评测助手、HTTP API、MCP、CLI、JSON/Markdown/HTML 报告

文档导航

想做什么 从这里开始
运行第一个可复现场景 快速开始与安全部署
理解系统边界和数据流 总体架构
接入新的被测 Agent V1 实现与接入
了解 Web 评测助手 智能评测助手架构
编排 MCP 工作流 Skill 目录
查看全部权威文档 文档中心

质量门禁

主分支 CI 覆盖 Python 3.12/3.13、PostgreSQL migration、公开参考场景、wheel 隔离安装、前端 单元测试、浏览器与可访问性测试、依赖审计和生产构建。

uv run ruff check src tests scripts examples
uv run mypy src/agentrig
uv run pytest
cd web && npm run typecheck && npm run test:coverage && npm run e2e && npm run build

版本与成熟度

当前版本为 0.3.0a0,定位为 Alpha。公开 Reference CI、证据导出与安全边界均已实现并 完成本机验收;当前适合评测复现和受控试点,尚不是无人值守生产环境的通用 GA 版本。生产试点 应保留计划确认、人工审批、最小权限和审计门禁。

参与项目

提交问题或改进前请阅读支持指南贡献指南安全策略。安全漏洞请使用 GitHub Private Vulnerability Reporting,不要创建 公开 Issue。

AgentRig 使用 MIT License

About

Evidence-first, MCP-native regression testing and multi-agent evaluation infrastructure for AI agents.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages