Skip to content

feat: add agentrig test for repository case files (AR-RFC-0006 B1) - #3

Merged
ChenCJ-io merged 1 commit into
mainfrom
feat/case-files
Sep 23, 2026
Merged

ChenCJ-io merged 1 commit into
mainfrom
feat/case-files

Conversation

@ChenCJ-io

Copy link
Copy Markdown
Owner

Why / 动机

落地 AR-RFC-0006 的 B1:用例写成仓库文件,与 Agent 代码在同一个 PR 里评审;agentrig test 一条命令在本地和 CI 跑完,出现回归返回非零退出码。

What changed / 改动

  • 新增 agentrig/casefiles/:project.yaml 与用例文件的加载、校验、挑选、进程内执行与报告;
  • 新增 agentrig test:
    • 按正式迁移建临时 SQLite,所有文件校验通过才开始,运行前真实启动一次被测 Agent;
    • 按目录、--tag、-k 挑选;--concurrency、--repeat;
    • 默认 Fixture → Sample → Curator;缺 Curator Key 直接报错;--no-curator 为严格模式;
    • 控制台摘要指出违规的规则、证据调用与结果来源;"无法判定"时指出缺结果的工具调用;
    • --junit、--markdown 输出;--keep-db 保留可被 agentrig serve 打开的库;
    • 退出码与 agentrig gate 一致:0 通过、1 配置错误、2 回归、3 无法判定。
  • python_agent 的 entry 支持 path/to/file.py:attribute,入口所在目录不必是 Python 包;
  • 新增运行时依赖 PyYAML(此前随 uvicorn[standard] 间接安装);
  • 文档:接入指南新增「把用例放进仓库」一节,RFC 标记 B1 已落地并记录实施补充,同步架构与实现文档、CHANGELOG。

Boundaries and risk / 边界与风险

  • 不包含:Web 与命令行导出 YAML、agentrig init(B2);文档示例与 README 主路径改写(B3);GitHub Action。
  • AgentRig 发布到 PyPI 之前,其他仓库的 CI 需要从源码安装(先构建 web/);指南中已写明。
  • 无数据库迁移;不改变现有 Web、HTTP、MCP 行为。
  • 回滚:revert 本提交。

Verification / 验证

  • uv run ruff check src tests scripts examples
  • uv run mypy src/agentrig
  • uv run pytest:235 passed,5 skipped
  • 新增测试覆盖:加载与校验(从 1 开始的位置、YAML 错误、重复 ID、挑选)、端到端退出码 0/1/2/3、JUnit 与 Markdown、严格模式、Curator 兜底、--keep-db 库可被服务端校验、文件路径入口
  • 按用户用法在临时仓库里直接运行 agentrig test:基线 0、跳过确认的候选版本 2
  • 真实 Agent:一个生产级 Agno Agent 的已审核用例导出为 YAML 后,agentrig test 基线通过;提示词改坏的候选版本退出码 2,并指出违规调用
  • No secrets, private data, generated caches, or local paths are included(仓库卫生扫描通过)
  • web/ 未改动

用例写成仓库里的 YAML(agentrig/project.yaml + agentrig/cases/**),与 Agent 代码在同一个 PR 里
评审。agentrig test 按正式迁移建临时库、进程内执行:
- 所有文件校验通过才开始,报错带文件与从 1 开始的位置;运行前真实启动一次被测 Agent;
- 按目录、标签、名称挑选,并发与重复次数可配置;
- 默认 Fixture → Sample → Curator,缺 Key 直接报错,--no-curator 为严格模式;
- 控制台摘要指出违规调用与结果来源,另输出 JUnit 与 Markdown;
- 退出码与 agentrig gate 一致:0 通过、1 配置错误、2 回归、3 无法判定;
- --keep-db 保留的库可直接用 agentrig serve 查看。

python_agent 的 entry 同时支持 path/to/file.py:attribute,入口所在目录不必是 Python 包。
新增运行时依赖 PyYAML。
@ChenCJ-io
ChenCJ-io merged commit ebd72fe into main Sep 23, 2026
9 checks passed
@ChenCJ-io
ChenCJ-io deleted the feat/case-files branch September 23, 2026 08:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant