SuperAPI AI 工具集

smoke-regression

测试与质量

查看项目

更新于 10-16 08:31

技能介绍

用途

smoke-regression 是 agentcore-public-stack 中的一项测试流程技能,用于在代码变更后运行冒烟与回归测试。它本身不是工具,而是一套按层级执行的操作规程(procedure),配套文档位于 docs/testing/smoke-regression.md。

主要能力

技能按变更范围将测试分为三个层级:

  • L0(封闭式测试):始终运行,针对受影响的包。后端在 checkout 的 backend 目录下运行 pytest;前端在 frontend/ai.client 下运行 ng test;基础设施在 infrastructure 下运行 tsc --noEmit 与 jest。
  • L1(turn matrix):当变更涉及 inference_api/chat/*、agents/main_agent/、apis/shared/harness/、SSE 表或任何中断流程时运行。该脚本驱动真实 agent 轮次并断言每个 SSE 相关行为。
  • L2(应用内浏览器):当变更涉及渲染界面(composer、loader、tool rail、pickers、banners)或中断流程时运行,在 https://dev.boisestate.ai 的内置浏览器面板中按清单逐项检查。

使用方式

0. 决定层级:根据 diff 按文档 §4 选择层级,并在开始前用一行说明运行哪些层级及原因。

1. L0:在分支的 checkout 中运行。在 worktree 中 PYTHONPATH 是必需的,否则会测试 develop:

cd <checkout>/backend && PYTHONPATH=$PWD/src AWS_EC2_METADATA_DISABLED=true <main checkout>/backend/.venv/bin/python -m pytest tests/ -q

前端:cd frontend/ai.client && npx ng test --watch=false;基础设施:cd infrastructure && npx tsc --noEmit && npx jest。不要传入虚假 AWS 凭据来消除卡顿(见文档 §1)。

2. L1:按以下顺序选择目标并说明所用目标:

  • 通过 Runtime 访问已部署 dev(对拥有 dev-ai profile 和有效 headless grant 的 agent 始终可用):
cd backend && AWS_PROFILE=dev-ai uv run python scripts/smoke_turns.py --auth headless-grant --user-id <sub> --prefix dev-boisestateai-v2 --json /tmp/smoke.json

grant 的 owner id 位于 dev-boisestateai-v2-bff-sessions 中 PK=HEADLESS-GRANT#…(grant_user_id)。若脚本报告无有效 grant,用户必须登录并运行一次 headless run;不要尝试用其他方式铸造 token(文档解释了为何其他途径是死路)。此模式跳过仅 app-api 的行(409、Stop、steer),并删除其创建的会话;崩溃或使用 --keep 后,传入 --delete-sessions id,id。

  • 当分支尚未部署且需要 app-api 行时使用本地栈:app-api 在 :8000 且 SKIP_AUTH=true,inference-api 在 :8001,然后使用 --base-url http://127.0.0.1:8000。未经询问不要翻转用户 backend/src/.env 中的 SKIP_AUTH;使用 worktree 副本。

  • 当环境中存在 Cognito 密码用户时,通过 app-api 以 --auth cognito 部署。

当附件在范围内时添加 --with-attachments,当相关行重要时添加 fixture 标志(--approval-tool、--skill-id、--agent-id)。永远不要传入 --allow-prod。

将报告表格粘贴到摘要中。将 SKIP 视为“此处未覆盖”,OBSERVED 视为信息,WARN 视为模型质量说明。FAIL 是一项发现:引用其详情,在判定为 bug 前检查文档 §2.2 中的三个陷阱,然后修复或报告。

3. L2:使用 https://dev.boisestate.ai 上的内置浏览器面板,它携带用户会话。先用 javascript_tool 安装文档 §3 中的 frame-capture 片段,然后处理适用的清单行。使用 read_page 和 window.__frames 验证,而非截图,除非是最终视觉证明。对于任何手动非 GET 调用,将 CSRF cookie 镜像到 X-CSRF-Token。完成后删除冒烟会话。

4. 报告:每个运行的层级一张表,一行结论,以及所用确切命令,以便运行可复现。若跳过某层级,说明是哪个及原因。

适用场景

适用于 agentcore-public-stack 仓库在代码变更后的冒烟与回归验证,尤其是涉及推理 API、agent 主逻辑、共享 harness、SSE 表、中断流程或渲染界面的变更。

限制

  • 不得使用虚假 AWS 凭据来消除卡顿。
  • 不得传入 --allow-prod。
  • 未经询问不得翻转用户 backend/src/.env 中的 SKIP_AUTH。
  • headless-grant 模式跳过仅 app-api 的行(409、Stop、steer)。
  • 若脚本报告无有效 grant,用户必须登录并运行一次 headless run,不能通过其他方式铸造 token。
  • 具体测试矩阵、fixture 与失败解读细节需参考 docs/testing/smoke-regression.md,本资料未提供其完整内容。