这个 Skill 能做什么,适合哪些场景?
这是 JoshuaC215/agent-service-toolkit 仓库内 .claude/skills/smoke-test/SKILL.md 描述的技能,配套 scripts/smoke_test.sh。该脚本把单元测试和默认 CI 覆盖不到的可选集成(Postgres、MongoDB 检查点器、AG-UI 端点、LangFuse 追踪)逐个拉起:依赖跑在 Docker 容器里,服务经 uv 在宿主机运行,最后做端到端验证并清理。它的核心设计是“依赖身份校验”——不仅验证 API 测试通过,还直接查询依赖本身,确认本次运行的数据真的写入了目标后端,防止静默回退到 SQLite 这类假绿。技能同时明确指导何时不应运行,避免为无关改动浪费几分钟和大量 token。
- 按目标(postgres / mongo / agui / langfuse / all)在 Docker 中启动真实依赖,并在宿主机以 uv 启动服务
- 运行 API 级持久化检查,并直接查询依赖(用每次运行唯一的 SMOKE_THREAD_ID)确认数据确实写入该后端
- langfuse 目标会拉起 LangFuse 完整 6 服务自托管栈(约 5GB 镜像),故默认排除,需单独或随 all 运行
- 端口 :8080 已被占用时拒绝启动,防止健康检查误判到无关进程;服务启动即挂时会快速失败并输出服务日志
- 提供 Claude Code 云端沙箱的已知坑位指引(dockerd 启动、cgr.dev 白名单、pkill 自杀问题、后台运行等)
- 测试位于 tests/smoke/ 并标记 @pytest.mark.docker,不在 CI 的 docker 任务范围内
- 改动了 src/memory/*、checkpointer 接线或 saver/store 类的开发者,想确认 Postgres/MongoDB 检查点器仍真实可用
- 升级了 langgraph-checkpoint-postgres/-mongodb、psycopg 或 pymongo 版本后,验证集成未被破坏
- 修改了 src/service/agui.py 或 ag-ui-* 依赖,需要确认 AG-UI 流式端点正常
- 调整了 LangFuse CallbackHandler 接线或 langfuse 依赖,想在完整 CI 之外快速验证追踪链路
- 负责发版前检查的维护者或代理,需要一次可选依赖的整体信心检查(运行 all)
- 在 Claude Code 云端沙箱中工作的代理,需要按技能内置的沙箱规避经验顺利跑通脚本
- 纯前端、文档、提示词或 agent 图改动:技能明确说多数改动不需要跑它,此时运行纯属浪费时间和 token
- 无法访问 Docker 或容器镜像拉取(如受限网络未放行 cgr.dev)的环境:脚本依赖在 Docker 中启动真实基础设施
- 想要穷尽式集成测试覆盖的团队:冒烟测试只是“是否明显坏了”的快速信心检查,不是完整验证
如何安装这个 Skill?
- Shell / 命令行
- 网络访问
- 本地文件系统
DockeruvPostgreSQL/MongoDB/LangFuse images via docker compose
本技能随 agent-service-toolkit 仓库分发,需先克隆仓库:
git clone https://github.com/JoshuaC215/agent-service-toolkit.git
cd agent-service-toolkit
uv sync --frozen
源材料未说明将 .claude/skills/ 内技能安装到其他平台的专门步骤;可直接把 .claude/skills/smoke-test/ 目录复制到你自己的技能目录。
tmp="$(mktemp -d)"
git clone --depth 1 https://github.com/JoshuaC215/agent-service-toolkit.git "$tmp"
mkdir -p ~/.claude/skills
cp -R "$tmp/.claude/skills/smoke-test" ~/.claude/skills/
rm -rf "$tmp"根据源仓库地址和 Skill 路径自动生成,只复制这个 Skill 的文件夹。如果上文有作者提供的安装方式,请优先按作者说明操作;想只在当前项目中使用,把 ~/.claude/skills 换成项目里的 .claude/skills。
如何使用这个 Skill?
安装后,把下面任意一句发给 Agent 即可触发:
- 我刚改了 src/memory/ 里的 checkpointer 接线,帮我跑 postgres 和 mongo 的冒烟测试并解读结果
- 升级了 pymongo 版本,用冒烟测试确认 MongoDB 检查点器没有静默回退
- 改动只涉及 Streamlit 界面,判断一下有没有必要跑 smoke_test.sh
- 发版前做一次完整的可选依赖信心检查,包括 langfuse
技能由模型在改动命中相关路径时按需触发,或由用户显式要求运行冒烟测试。核心是运行 scripts/smoke_test.sh 并选择最窄的覆盖目标:
./scripts/smoke_test.sh # 默认:postgres, mongo, agui
./scripts/smoke_test.sh mongo # 单个目标
./scripts/smoke_test.sh postgres agui # 子集
./scripts/smoke_test.sh langfuse # 重量级:约 5GB 栈,单独运行
./scripts/smoke_test.sh all # 全部,含 langfuse
全绿以 “--- All smoke tests passed ---” 结束;任何失败或未知目标返回非零。解读结果时信任 “✓ verified: N …” 这类依赖身份校验行;出现 “✗ FAIL: … was NOT exercised as intended” 应视为真实失败而非偶发。LangFuse 摄取是异步的,脚本会轮询 traces API 几秒再判定。
这个 Skill 有哪些优点和局限?
- 依赖身份校验设计能抓到“API 测试通过但根本没用目标依赖”的静默回退
- 可选目标粒度细,可只跑命中的那一两个,成本可控
- 内置大量沙箱/云端环境的实战坑位指引,适合代理自动执行
- 端口占用、启动即挂、异步摄取等失败模式都有明确防护
- langfuse 目标需拉取约 5GB 的 6 服务栈,运行沉重
- 强依赖 Docker 和宿主机 uv 环境;容器内构建在受限代理下不可行
- 只是冒烟级检查,不等于完整集成测试覆盖
- 仅在 agent-service-toolkit 仓库语境下设计,复用到其他项目需按其扩展指引改写
这个 Skill 与同类方案有什么区别?
与相关 Skills 并排比较;分数均按同一 FSRS 标准得出。
| Skill | FS 评分 | Star 数 | 最近更新 | License |
|---|---|---|---|---|
| 可选依赖冒烟测试技能(agent-service-toolkit) 本页 | 64 · 推荐 | ★ 4.5k | 21 天前 | MIT |
| 模型目录刷新技能(agent-service-toolkit) | 60 · 推荐 | ★ 4.5k | 21 天前 | MIT |
| VS Code 冒烟测试助手 ✓ Microsoft · 官方 | 53 · 谨慎使用 | ★ 194k | 11 天前 | MIT |
| NV-Reason-CXR 胸部X光推理测试技能 ✓ NVIDIA · 官方 | 52 · 谨慎使用 | ★ 3.6k | 11 天前 | Apache-2.0 |
| Jetson BSP 镜像验证器 ✓ NVIDIA · 官方 | 50 · 谨慎使用 | ★ 3.6k | 11 天前 | Apache-2.0 |
源材料将本脚本与常规 uv run pytest / 默认 CI 的 test-docker 任务对照:后者跑 tests/integration/,不覆盖需要真实基础设施的可选依赖;本技能专门补上这块,且不在 CI 中默认运行。
FollowSkills 如何评估这个 Skill?
项目自身的可选依赖冒烟测试技能,明确说明「先判断要不要跑」而不是无脑执行,考虑了成本效益。
点击维度查看打分理由
证据充分度:低 — 主要依赖静态检查、作者材料或有限演示;适合发现线索,不适合做高风险决策。
本条评估按 FSRS 1.0 标准完成,维度分不做换算,已进入按 FSRS 2.0 重新评估的复核队列。
查看完整评分方法 →