# Smoke Test > Skill de smoke test de extremo a extremo para DeerFlow: actualiza el código, despliega en local o Docker, verifica disponibilidad de servicios, hace health check y genera el reporte final. Fuente: https://skillsagentes.com/skills/bytedance/deer-flow/smoke-test Markdown: https://skillsagentes.com/skills/bytedance/deer-flow/smoke-test.md Repositorio: https://github.com/bytedance/deer-flow Autor: bytedance Licencia: MIT Actualizado: hace 2 meses Coste de contexto: 104 tok instalada, 2.5k tok al activarse, 15k tok con todos los archivos del bundle Bundle: 12 archivos, 59 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add bytedance/deer-flow --skill smoke-test --agent claude-code # Cursor npx -y skills add bytedance/deer-flow --skill smoke-test --agent cursor # Codex npx -y skills add bytedance/deer-flow --skill smoke-test --agent codex # Gemini CLI npx -y skills add bytedance/deer-flow --skill smoke-test --agent gemini # Windsurf npx -y skills add bytedance/deer-flow --skill smoke-test --agent windsurf # Cline npx -y skills add bytedance/deer-flow --skill smoke-test --agent cline ``` ## Qué hace - Actualiza el código, despliega DeerFlow en modo local o Docker (según preferencia o si hay problemas de red) y verifica el entorno - Comprueba disponibilidad de servicios: frontend, health check del Gateway API, la API compatible con LangGraph y las rutas clave de /workspace - Genera un reporte final usando la plantilla correspondiente al modo elegido, con conclusión general y resultados por caso ## Cuándo usarla - El usuario dice 'run smoke test', 'smoke test deployment', 'verify installation', 'test service availability' o 'end-to-end test' ## Qué la activa - "Ejecuta el smoke test de DeerFlow" - "Verifica que la instalación local funciona correctamente" - "Haz un test end-to-end del despliegue en Docker" ## Antes de instalar - Modo local: Node.js 22+, pnpm, uv y nginx. Modo Docker: Docker y Docker Compose. En ambos casos, config.yaml y .env deben estar configurados. - Necesita en el PATH: awk, curl, docker, git, node, pnpm, sed - Variables de entorno: BASE_URL, COOKIE_JAR, CURL_AUTH_OPTS, DOC_PATH, NODE_MAJOR, NODE_VERSION, SMOKE_TEST_EMAIL, SMOKE_TEST_MODE, SMOKE_TEST_PASSWORD - needs API credentials ## Archivos - SKILL.md — 10 KB - references/SOP.md — 11 KB - references/troubleshooting.md — 10 KB - scripts/check_docker.sh — 2 KB - scripts/check_local_env.sh — 2 KB - scripts/deploy_docker.sh — 2 KB - scripts/deploy_local.sh — 1 KB - scripts/frontend_check.sh — 6 KB - scripts/health_check.sh — 3 KB - scripts/pull_code.sh — 1 KB - templates/report.docker.template.md — 4 KB - templates/report.local.template.md — 5 KB ## SKILL.md Reproducido tal cual desde bytedance/deer-flow bajo MIT. Esta sección es el documento original y está en inglés. # DeerFlow Smoke Test Skill This skill guides the Agent through DeerFlow's full end-to-end smoke test workflow, including code updates, deployment (supporting both Docker and local installation modes), service availability verification, and health checks. ## Deployment Mode Selection This skill supports two deployment modes: - **Local installation mode** (recommended, especially when network issues occur) - Run all services directly on the local machine - **Docker mode** - Run all services inside Docker containers **Selection strategy**: - If the user explicitly asks for Docker mode, use Docker - If network issues occur (such as slow image pulls), automatically switch to local mode - Default to local mode whenever possible ## Structure ``` smoke-test/ ├── SKILL.md ← You are here - core workflow and logic ├── scripts/ │ ├── check_docker.sh ← Check the Docker environment │ ├── check_local_env.sh ← Check local environment dependencies │ ├── frontend_check.sh ← Frontend page smoke check │ ├── pull_code.sh ← Pull the latest code │ ├── deploy_docker.sh ← Docker deployment │ ├── deploy_local.sh ← Local deployment │ └── health_check.sh ← Service health check ├── references/ │ ├── SOP.md ← Standard operating procedure │ └── troubleshooting.md ← Troubleshooting guide └── templates/ ├── report.local.template.md ← Local mode smoke test report template └── report.docker.template.md ← Docker mode smoke test report template ``` ## Standard Operating Procedure (SOP) ### Phase 1: Code Update Check 1. **Confirm current directory** - Verify that the current working directory is the DeerFlow project root 2. **Check Git status** - See whether there are uncommitted changes 3. **Pull the latest code** - Use `git pull origin main` to get the latest updates 4. **Confirm code update** - Verify that the latest code was pulled successfully ### Phase 2: Deployment Mode Selection and Environment Check **Choose deployment mode**: - Ask for user preference, or choose automatically based on network conditions - Default to local installation mode **Local mode environment check**: 1. **Check Node.js version** - Requires 22+ 2. **Check pnpm** - Package manager 3. **Check uv** - Python package manager 4. **Check nginx** - Reverse proxy 5. **Check required ports** - Confirm that ports 2026, 3000, and 8001 are not occupied **Docker mode environment check** (if Docker is selected): 1. **Check whether Docker is installed** - Run `docker --version` 2. **Check Docker daemon status** - Run `docker info` 3. **Check Docker Compose availability** - Run `docker compose version` 4. **Check required ports** - Confirm that port 2026 is not occupied ### Phase 3: Configuration Preparation 1. **Check whether config.yaml exists** - If it does not exist, run `make config` to generate it - If it already exists, check whether it needs an upgrade with `make config-upgrade` 2. **Check the .env file** - Verify that required environment variables are configured - Especially model API keys such as `OPENAI_API_KEY` ### Phase 4: Deployment Execution **Local mode deployment**: 1. **Check dependencies** - Run `make check` 2. **Install dependencies** - Run `make install` 3. **(Optional) Pre-pull the sandbox image** - If needed, run `make setup-sandbox` 4. **Start services** - Run `make start` (production mode) 5. **Wait for startup** - Give all services enough time to start completely (90-120 seconds recommended) **Docker mode deployment** (if Docker is selected): 1. **Initialize Docker environment** - Run `make docker-init` 2. **Start Docker services** - Run `make up` (production mode) 3. **Wait for startup** - Give all containers enough time to start completely (60 seconds recommended) ### Phase 5: Service Health Check **Local mode health check**: 1. **Check process status** - Confirm that Gateway, Frontend, and Nginx processes are all running 2. **Check frontend service** - Visit `http://localhost:2026` and verify that the page loads 3. **Check API Gateway** - Verify the `http://localhost:2026/health` endpoint 4. **Check LangGraph-compatible API** - Verify the `/api/langgraph/*` route exposed by Gateway 5. **Frontend route smoke check** - Run `bash .agent/skills/smoke-test/scripts/frontend_check.sh` to verify key routes under `/workspace`. The script auto-detects whether authentication is enabled and, if so, registers / logs in a smoke-test user so the real pages are verified rather than the login redirect. **Docker mode health check** (when using Docker): 1. **Check container status** - Run `docker ps` and confirm that all containers are running 2. **Check frontend service** - Visit `http://localhost:2026` and verify that the page loads 3. **Check API Gateway** - Verify the `http://localhost:2026/health` endpoint 4. **Check LangGraph-compatible API** - Verify the `/api/langgraph/*` route exposed by Gateway 5. **Frontend route smoke check** - Run `bash .agent/skills/smoke-test/scripts/frontend_check.sh` to verify key routes under `/workspace`. The script auto-detects whether authentication is enabled and, if so, registers / logs in a smoke-test user so the real pages are verified rather than the login redirect. ### Optional Functional Verification 1. **List available models** - Verify that model configuration loads correctly 2. **List available skills** - Verify that the skill directory is mounted correctly 3. **Simple chat test** - Send a simple message to verify the end-to-end flow ### Phase 6: Generate Test Report 1. **Collect all test results** - Summarize execution status for each phase 2. **Record encountered issues** - If anything fails, record the error details 3. **Generate the final report** - Use the template that matches the selected deployment mode to create the complete test report, including overall conclusion, detailed key test cases, and explicit frontend page / route results 4. **Provide follow-up recommendations** - Offer suggestions based on the test results ## Execution Rules - **Follow the sequence** - Execute strictly in the order described above - **Idempotency** - Every step should be safe to repeat - **Error handling** - If a step fails, stop and report the issue, then provide troubleshooting suggestions - **Detailed logging** - Record the execution result and status of each step - **User confirmation** - Ask for confirmation before potentially risky operations such as overwriting config - **Mode preference** - Prefer local mode to avoid network-related issues - **Template requirement** - The final report must use the matching template under `templates/`; do not output a free-form summary instead of the template-based report - **Report clarity** - The execution summary must include the overall pass/fail conclusion plus per-case result explanations, and frontend smoke check results must be listed explicitly in the report - **Optional phase handling** - If functional verification is not executed, do not present it as a separate skipped phase in the final report ## Known Acceptable Warnings The following warnings can appear during smoke testing and do not block a successful result: - Feishu/Lark SSL errors in Gateway logs (certificate verification failure) can be ignored if that channel is not enabled - Warnings in Gateway logs about missing methods in the custom checkpointer, such as `adelete_for_runs` or `aprune`, do not affect the core functionality - The `frontend_check.sh` script automatically handles authentication. When auth is enabled it registers / logs in a smoke-test user (`smoke-test@deerflow.dev` by default) to verify the real `/workspace/*` pages. The registration may produce a log entry from the auth provider, which is expected and harmless. ## Key Tools Use the following tools during execution: 1. **bash** - Run shell commands 2. **present_file** - Show generated reports and important files 3. **task_tool** - Organize complex steps with subtasks when needed ## Success Criteria Smoke test pass criteria (local mode): - [x] Latest code is pulled successfully - [x] Local environment check passes (Node.js 22+, pnpm, uv, nginx) - [x] Configuration files are set up correctly - [x] `make check` passes - [x] `make install` completes successfully - [x] `make dev` starts successfully - [x] All service processes run normally - [x] Frontend page is accessible - [x] Frontend route smoke check passes (`/workspace` key routes) - [x] API Gateway health check passes - [x] Test report is generated completely Smoke test pass criteria (Docker mode): - [x] Latest code is pulled successfully - [x] Docker environment check passes - [x] Configuration files are set up correctly - [x] `make docker-init` completes successfully - [x] `make up` completes successfully - [x] All Docker containers run normally - [x] Frontend page is accessible - [x] Frontend route smoke check passes (`/workspace` key routes) - [x] API Gateway health check passes - [x] Test report is generated completely ## Read Reference Files Before starting execution, read the following reference files: 1. `references/SOP.md` - Detailed step-by-step operating instructions 2. `references/troubleshooting.md` - Common issues and solutions 3. `templates/report.local.template.md` - Local mode test report template 4. `templates/report.docker.template.md` - Docker mode test report template ## Dónde encaja - Categoría: [Testing y QA](https://skillsagentes.com/categorias/testing-qa.md) — Flujos de testing unitario, de integración y end-to-end. - Creador: [bytedance](https://skillsagentes.com/creators/bytedance.md) — 27 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Engineer System Change](https://skillsagentes.com/skills/bytedance/deer-flow/engineer-system-change.md): Evalúa y ejecuta cambios de sistema no triviales desde primeros principios: RFCs, features, refactors, migraciones o nuevas APIs, exigiendo consumidores concretos, la solución mínima suficiente y evidencia proporcional al riesgo. - [Skill Reviewer](https://skillsagentes.com/skills/bytedance/deer-flow/skill-reviewer.md): Revisa paquetes de skills de DeerFlow: preparación para publicar, triggers, límites de seguridad, recursos y evidencia. Úsala cuando pidan auditar, calificar o validar para producción una skill. - [Skill Creator](https://skillsagentes.com/skills/bytedance/deer-flow/skill-creator.md): Crea skills nuevas, modifica y mejora skills existentes, y mide su rendimiento. Úsala para crear una skill, editarla, correr evals, hacer benchmark con análisis de varianza, u optimizar su descripción. - [Deerflow Maintainer Orchestrator](https://skillsagentes.com/skills/bytedance/deer-flow/deerflow-maintainer-orchestrator.md): Manejo de issues y PRs de GitHub solo por comentarios para mantenedores de DeerFlow: resuelve alcance con gh, analiza, publica o redacta comentarios de issues y revisiones de PR, y compara PRs en competencia. - [Blocking Io Guard](https://skillsagentes.com/skills/bytedance/deer-flow/blocking-io-guard.md): Asegura que el código async del backend que podría bloquear el event loop de asyncio quede protegido por un test 'anchor' verificado en tests/blocking_io/, mediante un escaneo determinista de cambios o de todo el repo. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)