mcp-lab-agent 1.1.2 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +167 -26
- package/dist/index.js +557 -6
- package/dist/index.js.map +1 -1
- package/package.json +7 -3
package/README.md
CHANGED
|
@@ -4,33 +4,57 @@
|
|
|
4
4
|
[](https://nodejs.org)
|
|
5
5
|
[](LICENSE)
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**Agente autônomo de QA que aprende com os próprios erros.**
|
|
8
|
+
|
|
9
|
+
Não é só um assistente: é um agente que **lê seu projeto, gera testes, executa, corrige falhas automaticamente e aprende** para cada vez acertar mais na primeira tentativa.
|
|
8
10
|
|
|
9
11
|
---
|
|
10
12
|
|
|
11
|
-
##
|
|
13
|
+
## O diferencial
|
|
14
|
+
|
|
15
|
+
| Outras ferramentas | **mcp-lab-agent** |
|
|
16
|
+
|-------------------|-------------------|
|
|
17
|
+
| Geram testes | **Gera, roda, corrige e aprende** |
|
|
18
|
+
| Você corrige erros | **Auto-correção com retry inteligente** |
|
|
19
|
+
| Sem memória | **Aprende com erros passados** |
|
|
20
|
+
| Configuração complexa | **Zero config: detecta 15+ frameworks** |
|
|
21
|
+
| Sem métricas | **Taxa de sucesso, correções, aprendizados** |
|
|
22
|
+
|
|
23
|
+
**Modo autônomo:**
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx mcp-lab-agent auto "login flow" --max-retries 5
|
|
27
|
+
```
|
|
12
28
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
| — | — | **Flaky detection + model routing** |
|
|
20
|
-
| — | — | **Memória de projeto + agentes especializados** |
|
|
29
|
+
O agente:
|
|
30
|
+
1. Detecta seu projeto (Cypress, Playwright, Jest, etc.)
|
|
31
|
+
2. Gera o teste com base em aprendizados anteriores
|
|
32
|
+
3. Executa o teste
|
|
33
|
+
4. Se falhar: analisa, corrige e tenta de novo
|
|
34
|
+
5. Aprende com cada correção para melhorar nas próximas
|
|
21
35
|
|
|
22
|
-
**
|
|
36
|
+
**Resultado:** Testes que passam na primeira tentativa aumentam com o tempo.
|
|
23
37
|
|
|
24
38
|
---
|
|
25
39
|
|
|
26
40
|
## Quick Start
|
|
27
41
|
|
|
42
|
+
### Modo autônomo (CLI)
|
|
43
|
+
|
|
28
44
|
```bash
|
|
29
|
-
#
|
|
45
|
+
# Gera, roda, corrige e aprende automaticamente
|
|
46
|
+
npx mcp-lab-agent auto "login flow" --max-retries 5
|
|
47
|
+
|
|
48
|
+
# Ver métricas de aprendizado
|
|
49
|
+
npx mcp-lab-agent stats
|
|
50
|
+
|
|
51
|
+
# Detectar estrutura do projeto
|
|
30
52
|
npx mcp-lab-agent detect
|
|
31
53
|
```
|
|
32
54
|
|
|
33
|
-
|
|
55
|
+
### Integração com IDE (Cursor/Cline/Windsurf)
|
|
56
|
+
|
|
57
|
+
**1. Configure o MCP** (`~/.cursor/mcp.json`):
|
|
34
58
|
|
|
35
59
|
```json
|
|
36
60
|
{
|
|
@@ -44,21 +68,22 @@ npx mcp-lab-agent detect
|
|
|
44
68
|
}
|
|
45
69
|
```
|
|
46
70
|
|
|
47
|
-
**2.
|
|
71
|
+
**2. Use no chat:**
|
|
48
72
|
|
|
49
73
|
```
|
|
50
74
|
"Detecte a estrutura do meu projeto"
|
|
75
|
+
"Modo autônomo: gere teste para login"
|
|
51
76
|
"Rode os testes"
|
|
52
|
-
"Gere um teste E2E para login"
|
|
53
77
|
"Por que o teste falhou?"
|
|
54
78
|
"Avalie http://localhost:3000 no browser"
|
|
79
|
+
"Mostre as estatísticas de aprendizado"
|
|
55
80
|
```
|
|
56
81
|
|
|
57
82
|
---
|
|
58
83
|
|
|
59
84
|
## Architecture
|
|
60
85
|
|
|
61
|
-
O diagrama abaixo mostra como o
|
|
86
|
+
O diagrama abaixo mostra como o agente autônomo funciona:
|
|
62
87
|
|
|
63
88
|
```mermaid
|
|
64
89
|
flowchart TB
|
|
@@ -66,12 +91,18 @@ flowchart TB
|
|
|
66
91
|
Chat[Chat do usuário]
|
|
67
92
|
end
|
|
68
93
|
|
|
94
|
+
subgraph CLI["💻 CLI (Terminal)"]
|
|
95
|
+
Auto["mcp-lab-agent auto"]
|
|
96
|
+
Stats["mcp-lab-agent stats"]
|
|
97
|
+
end
|
|
98
|
+
|
|
69
99
|
subgraph MCP["MCP Protocol (stdio)"]
|
|
70
100
|
Transport[Stdio Transport]
|
|
71
101
|
end
|
|
72
102
|
|
|
73
103
|
subgraph Agent["mcp-lab-agent"]
|
|
74
104
|
Router[qa_route_task]
|
|
105
|
+
AutoTool["qa_auto<br/>(Loop autônomo)"]
|
|
75
106
|
|
|
76
107
|
subgraph Agents["Agentes Especializados"]
|
|
77
108
|
D[detection<br/>detect_project, read_project, list_test_files]
|
|
@@ -80,12 +111,14 @@ flowchart TB
|
|
|
80
111
|
A[analysis<br/>analyze_failures, por_que_falhou, suggest_selector_fix]
|
|
81
112
|
B[browser<br/>web_eval_browser]
|
|
82
113
|
R[reporting<br/>create_bug_report, get_business_metrics]
|
|
114
|
+
L[learning<br/>qa_learning_stats]
|
|
83
115
|
end
|
|
84
116
|
|
|
85
|
-
subgraph Brain["🧠 Núcleo"]
|
|
117
|
+
subgraph Brain["🧠 Núcleo Inteligente"]
|
|
86
118
|
MR[Model Router<br/>simples → Groq/Flash | complexo → 70B/Pro]
|
|
87
119
|
PM[Project Memory<br/>.qa-lab-memory.json]
|
|
88
120
|
FD[Flaky Detection<br/>timing, selector, network]
|
|
121
|
+
LS[Learning System<br/>salva correções bem-sucedidas]
|
|
89
122
|
end
|
|
90
123
|
end
|
|
91
124
|
|
|
@@ -97,7 +130,16 @@ flowchart TB
|
|
|
97
130
|
|
|
98
131
|
Chat --> Transport
|
|
99
132
|
Transport --> Router
|
|
100
|
-
Router -->
|
|
133
|
+
Router --> AutoTool
|
|
134
|
+
Router --> D & E & G & A & B & R & L
|
|
135
|
+
|
|
136
|
+
Auto --> AutoTool
|
|
137
|
+
Stats --> L
|
|
138
|
+
|
|
139
|
+
AutoTool --> G
|
|
140
|
+
AutoTool --> E
|
|
141
|
+
AutoTool --> A
|
|
142
|
+
AutoTool --> LS
|
|
101
143
|
|
|
102
144
|
D & E & G & A & R --> Proj
|
|
103
145
|
B --> PW
|
|
@@ -105,11 +147,21 @@ flowchart TB
|
|
|
105
147
|
|
|
106
148
|
G & A --> MR
|
|
107
149
|
MR --> LLM
|
|
108
|
-
G & A --> PM
|
|
109
|
-
A --> FD
|
|
150
|
+
G & A & AutoTool --> PM
|
|
151
|
+
A & AutoTool --> FD
|
|
152
|
+
AutoTool --> LS
|
|
153
|
+
LS --> PM
|
|
110
154
|
```
|
|
111
155
|
|
|
112
|
-
**Fluxo
|
|
156
|
+
**Fluxo autônomo (qa_auto):**
|
|
157
|
+
1. **Detecta** projeto (frameworks, pastas, fluxos)
|
|
158
|
+
2. **Gera** teste usando LLM + memória de aprendizados
|
|
159
|
+
3. **Executa** o teste
|
|
160
|
+
4. **Se falhar:** analisa (flaky detection), corrige e tenta de novo
|
|
161
|
+
5. **Aprende:** salva correções bem-sucedidas na memória
|
|
162
|
+
6. **Repete** até passar ou atingir max_retries
|
|
163
|
+
|
|
164
|
+
**Fluxo resumido (IDE):**
|
|
113
165
|
1. **Usuário** fala no chat do IDE
|
|
114
166
|
2. **MCP** entrega a mensagem ao `mcp-lab-agent`
|
|
115
167
|
3. **qa_route_task** sugere o agente certo (detection, execution, generation, etc.)
|
|
@@ -124,6 +176,8 @@ flowchart TB
|
|
|
124
176
|
|
|
125
177
|
| Categoria | O que faz |
|
|
126
178
|
|-----------|-----------|
|
|
179
|
+
| **🤖 Autônomo** | `qa_auto` — loop completo: gera, roda, corrige, aprende (até passar ou max_retries) |
|
|
180
|
+
| **📊 Learning** | Salva correções bem-sucedidas, taxa de sucesso na 1ª tentativa, métricas de aprendizado |
|
|
127
181
|
| **Detecção** | Cypress, Playwright, WebdriverIO, Jest, Vitest, Mocha, Robot, pytest, Behave, Appium, Detox |
|
|
128
182
|
| **Execução** | run_tests, watch, coverage (Jest/Vitest) |
|
|
129
183
|
| **Geração** | Testes via LLM (Groq, Gemini, OpenAI), templates |
|
|
@@ -145,16 +199,19 @@ mcp-lab-agent [comando]
|
|
|
145
199
|
| Comando | Descrição |
|
|
146
200
|
|---------|-----------|
|
|
147
201
|
| *(sem args)* | Inicia o servidor MCP (modo padrão para o IDE) |
|
|
148
|
-
| `
|
|
202
|
+
| `auto <descrição> [--max-retries N]` | **[NOVO]** Modo autônomo: gera, roda, corrige e aprende (default: 3 tentativas) |
|
|
203
|
+
| `stats` | **[NOVO]** Mostra estatísticas de aprendizado (taxa de sucesso, correções, etc.) |
|
|
204
|
+
| `detect [--json]` | Detecta frameworks e estrutura do projeto |
|
|
149
205
|
| `route <tarefa>` | Sugere qual ferramenta usar |
|
|
150
206
|
| `list` | Lista agentes e ferramentas disponíveis |
|
|
151
207
|
| `--help` | Mostra ajuda |
|
|
152
208
|
|
|
153
209
|
**Exemplos:**
|
|
154
210
|
```bash
|
|
211
|
+
mcp-lab-agent auto "login flow" --max-retries 5
|
|
212
|
+
mcp-lab-agent stats
|
|
155
213
|
mcp-lab-agent detect
|
|
156
214
|
mcp-lab-agent route "rodar os testes"
|
|
157
|
-
mcp-lab-agent route "gerar teste de login"
|
|
158
215
|
mcp-lab-agent list
|
|
159
216
|
```
|
|
160
217
|
|
|
@@ -162,17 +219,89 @@ Referência completa do CLI: `mcp-lab-agent --help`
|
|
|
162
219
|
|
|
163
220
|
---
|
|
164
221
|
|
|
222
|
+
## Escalabilidade
|
|
223
|
+
|
|
224
|
+
### Como o mcp-lab-agent escala para empresas
|
|
225
|
+
|
|
226
|
+
**1. Multi-projeto:**
|
|
227
|
+
- Cada projeto tem sua própria memória (`.qa-lab-memory.json`)
|
|
228
|
+
- Aprendizados são isolados por contexto
|
|
229
|
+
- Suporte a monorepos (detecta múltiplos frameworks)
|
|
230
|
+
|
|
231
|
+
**2. CI/CD:**
|
|
232
|
+
```yaml
|
|
233
|
+
# .github/workflows/qa.yml
|
|
234
|
+
- run: npx mcp-lab-agent auto "smoke tests" --max-retries 2
|
|
235
|
+
- run: npx mcp-lab-agent stats
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
**3. Métricas exportáveis:**
|
|
239
|
+
- `.qa-lab-memory.json` pode ser lido por dashboards
|
|
240
|
+
- `stats` retorna JSON estruturado
|
|
241
|
+
- Integração com Grafana/DataDog via script
|
|
242
|
+
|
|
243
|
+
**4. Aprendizado compartilhado (roadmap):**
|
|
244
|
+
- Exportar/importar memórias entre projetos
|
|
245
|
+
- Central de aprendizados da empresa
|
|
246
|
+
- Padrões globais + overrides locais
|
|
247
|
+
|
|
248
|
+
**5. Customização:**
|
|
249
|
+
- `qa-lab-flows.json` para fluxos de negócio específicos
|
|
250
|
+
- Variáveis de ambiente para modelos customizados
|
|
251
|
+
- Extensível via MCP tools
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
165
255
|
## Configuração
|
|
166
256
|
|
|
167
|
-
###
|
|
257
|
+
### Opção 1: APIs Externas (Groq, Gemini, OpenAI)
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
# .env
|
|
261
|
+
GROQ_API_KEY=sua-key # Gratuito: https://console.groq.com/keys
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Opção 2: Ollama (Local, Sem Internet) ⭐ Recomendado para empresas
|
|
265
|
+
|
|
266
|
+
```bash
|
|
267
|
+
# 1. Instale o Ollama
|
|
268
|
+
brew install ollama # macOS
|
|
269
|
+
# ou: curl -fsSL https://ollama.com/install.sh | sh # Linux
|
|
270
|
+
|
|
271
|
+
# 2. Baixe o modelo
|
|
272
|
+
ollama pull llama3.1:8b
|
|
273
|
+
|
|
274
|
+
# 3. Inicie
|
|
275
|
+
ollama serve
|
|
276
|
+
|
|
277
|
+
# 4. Pronto! O agente detecta automaticamente
|
|
278
|
+
npx mcp-lab-agent auto "login flow"
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**100% offline. Sem APIs externas. Ideal para ambientes corporativos.**
|
|
282
|
+
|
|
283
|
+
### Opção 3: LLM Interno da Empresa
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
# .env
|
|
287
|
+
QA_LAB_LLM_BASE_URL=https://llm-interno.empresa.com/v1
|
|
288
|
+
QA_LAB_LLM_API_KEY=sua-key-interna
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**Guia completo:** [CONFIGURACAO_CORPORATIVA.md](CONFIGURACAO_CORPORATIVA.md)
|
|
292
|
+
|
|
293
|
+
### Variáveis de ambiente (todas opcionais)
|
|
168
294
|
|
|
169
295
|
| Variável | Uso |
|
|
170
296
|
|----------|-----|
|
|
171
297
|
| `GROQ_API_KEY` | Groq (gratuito, rápido) |
|
|
172
298
|
| `GEMINI_API_KEY` | Google Gemini |
|
|
173
299
|
| `OPENAI_API_KEY` | OpenAI |
|
|
174
|
-
| `
|
|
175
|
-
| `
|
|
300
|
+
| `OLLAMA_BASE_URL` | Ollama customizado (default: http://localhost:11434) |
|
|
301
|
+
| `QA_LAB_LLM_BASE_URL` | Endpoint LLM customizado (empresa) |
|
|
302
|
+
| `QA_LAB_LLM_API_KEY` | API key para LLM customizado |
|
|
303
|
+
| `QA_LAB_LLM_SIMPLE` | Modelo para tarefas simples |
|
|
304
|
+
| `QA_LAB_LLM_COMPLEX` | Modelo para tarefas complexas |
|
|
176
305
|
|
|
177
306
|
### Modo browser (opcional)
|
|
178
307
|
|
|
@@ -184,6 +313,18 @@ npm install playwright
|
|
|
184
313
|
|
|
185
314
|
---
|
|
186
315
|
|
|
316
|
+
## Documentação
|
|
317
|
+
|
|
318
|
+
- **[PITCH.md](PITCH.md)** — Apresentação executiva (use para apresentar ao time)
|
|
319
|
+
- **[EXEMPLO_EVOLUCAO.md](EXEMPLO_EVOLUCAO.md)** — Como a taxa de sucesso melhora com o tempo
|
|
320
|
+
- **[ARQUITETURA_LEARNING.md](ARQUITETURA_LEARNING.md)** — Detalhes técnicos do sistema de learning
|
|
321
|
+
- **[CHANGELOG.md](CHANGELOG.md)** — Histórico de versões
|
|
322
|
+
- **[MIGRATION_V2.md](MIGRATION_V2.md)** — Guia de migração da v1.x
|
|
323
|
+
|
|
324
|
+
Documentação completa (local): `docs/`
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
187
328
|
## Desenvolvimento
|
|
188
329
|
|
|
189
330
|
```bash
|