mcp-lab-agent 2.1.4 → 2.1.10

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 CHANGED
@@ -4,321 +4,289 @@
4
4
  [![Node.js](https://img.shields.io/badge/node-%3E%3D18-green)](https://nodejs.org)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
6
6
 
7
- **Executor + Consultor Inteligente de QA.**
7
+ **Assistente de teste que aprende com falhas.** Reduz tempo de debug, elimina flaky e mantém seletores estáveis. Executa testes, analisa causas de falha, corrige automaticamente e aprende padrões que melhoram as próximas gerações. Integra ao Cursor, Cline, Windsurf ou Slack.
8
8
 
9
- Não é só um executor de testes. É um agente que:
10
- - **Executa:** Roda testes, gera, corrige
11
- - **Analisa:** "login falha 30% das vezes"
12
- - **Prevê:** "checkout vai ficar flaky"
13
- - **Recomenda:** "faça isso agora: 1, 2, 3"
14
- - **Aprende:** Taxa de sucesso aumenta com o tempo
9
+ ```bash
10
+ npx mcp-lab-agent auto "login flow" --max-retries 5
11
+ ```
15
12
 
16
13
  **1 comando. Análise completa.**
17
14
 
15
+ > Teste falhou? Em 30 segundos: o que aconteceu, por que e como corrigir. O mcp-lab-agent analisa causas, corrige e acumula conhecimento.
16
+
17
+ **Foco:** [Top 3 problemas de QA](docs/TOP3_QA_PROBLEMAS_E_ROADMAP.md) — flaky, "por que falhou?", manutenção de seletores.
18
+
18
19
  ---
19
20
 
20
- ## O diferencial
21
+ ## O que é
21
22
 
22
- | Outras ferramentas | **mcp-lab-agent** |
23
- |-------------------|-------------------|
24
- | Só executam | **Executa + Analisa + Recomenda** |
25
- | "teste falhou" | **"login falha 30% das vezes (timing)"** |
26
- | Sem contexto | **"src/payment/ sem testes (RISCO ALTO)"** |
27
- | Você decide o que fazer | **"Faça isso agora: 1, 2, 3"** |
28
- | Sem aprendizado | **Taxa de sucesso aumenta com o tempo** |
23
+ O **mcp-lab-agent** é um sistema de inteligência em qualidade de software — não uma ferramenta de teste isolada. Ele entende o seu projeto, identifica frameworks (Cypress, Playwright, Jest, Appium, Robot, pytest e outros), gera testes com base em contexto e memória, executa, analisa falhas e aplica correções automaticamente. O valor central está no **learning**: cada correção bem-sucedida é salva e usada nas próximas gerações, aumentando a taxa de sucesso na primeira tentativa.
29
24
 
30
- **Modo autônomo:**
25
+ Com o **Learning Hub**, os aprendizados são centralizados e agregados entre projetos e — em deploy compartilhado — entre times e empresas, formando uma base de conhecimento em qualidade que escala além do repositório.
31
26
 
32
- ```bash
33
- npx mcp-lab-agent auto "login flow" --max-retries 5
34
- ```
27
+ ---
35
28
 
36
- O agente:
37
- 1. Detecta seu projeto (Cypress, Playwright, Jest, etc.)
38
- 2. Gera o teste com base em aprendizados anteriores
39
- 3. Executa o teste
40
- 4. Se falhar: analisa, corrige e tenta de novo
41
- 5. Aprende com cada correção para melhorar nas próximas
29
+ ## Para quem
30
+
31
+ | Perfil | Benefício |
32
+ |--------|-----------|
33
+ | **QAs e SDETs** | Geração assistida de testes, análise de falhas com sugestões de correção, detecção de flakiness |
34
+ | **Desenvolvedores** | "Por que falhou?", análise de arquivos e métodos, integração direta no IDE |
35
+ | **Tech leads** | Visão de risco por área, métricas de estabilidade, relatórios para decisão |
36
+ | **Empresas** | Learning Hub centralizado, escala entre squads e organizações, CI/CD, Ollama (offline), Slack para QA via chat |
37
+
38
+ ---
42
39
 
43
- **Resultado:** Testes que passam na primeira tentativa aumentam com o tempo.
40
+ ## Comparação
41
+
42
+ | Outras ferramentas | mcp-lab-agent |
43
+ |--------------------|---------------|
44
+ | Só executam testes | Executa, analisa causa da falha e sugere correção |
45
+ | Saída genérica "teste falhou" | Diagnóstico: "login falha 30% das vezes (timing)" |
46
+ | Sem visão de risco | Identifica áreas sem testes e classifica risco (alto/médio/baixo) |
47
+ | Sem memória entre execuções | Learning system: cada padrão de falha vira correção aplicada nas próximas gerações |
48
+ | Uma ferramenta por tarefa | Sistema de inteligência: geração, execução, análise, relatórios, predição, learning |
49
+
50
+ ---
51
+
52
+ ## Learning System
53
+
54
+ **Como aprende:** O agente detecta o padrão de falha em cada execução (regex + contexto) e armazena a correção aplicada na memória. Nas próximas gerações, esses aprendizados são injetados no prompt do LLM e nas práticas obrigatórias.
55
+
56
+ **Baseado em quê:** Tipo de erro (classificado automaticamente), framework, trecho de correção e resultado (passou ou não).
57
+
58
+ **Melhora quanto:** Taxa de sucesso na primeira tentativa (%), rastreável em `mcp-lab-agent stats` e `get_learning_report`. Quanto mais correções bem-sucedidas, maior a tendência de os próximos testes passarem de primeira.
59
+
60
+ **Exemplos de padrões aprendidos:**
61
+
62
+ | Padrão detectado | Correção aplicada |
63
+ |------------------|-------------------|
64
+ | `element_not_visible` | `waitForDisplayed()`, `should('be.visible')` antes de interagir |
65
+ | `element_not_rendered` | `waitForSelector`, `waitFor({ state: 'attached' })` |
66
+ | `selector` instável | Sugestão de `data-testid`, `role`, seletores acessíveis |
67
+ | `timing` | Retry automático, waits explícitos, timeout ajustado |
68
+ | `element_stale` | Re-localizar elemento antes de cada ação |
69
+ | `mobile_mapping_invisible` | Mapeamento visível no topo do spec (Page Object) |
70
+
71
+ Cada correção bem-sucedida aumenta a taxa de sucesso futura.
44
72
 
45
73
  ---
46
74
 
47
75
  ## Quick Start
48
76
 
49
- ### Análise Completa (CLI)
77
+ ### CLI — Análise completa
50
78
 
51
79
  ```bash
52
- # Análise completa: executa, analisa, prevê e recomenda
80
+ # Análise completa: executa testes, analisa estabilidade, prevê riscos e recomenda ações
53
81
  npx mcp-lab-agent analyze
54
82
 
55
- # Modo autônomo: gera, roda, corrige e aprende
83
+ # Modo autônomo: gera, roda, corrige e aprende (até passar ou max_retries)
56
84
  npx mcp-lab-agent auto "login flow" --max-retries 5
57
85
 
58
- # Ver métricas de aprendizado
86
+ # Métricas de aprendizado e taxa de sucesso
59
87
  npx mcp-lab-agent stats
60
- ```
61
88
 
62
- ### Slack Bot (sem clonar o projeto)
63
-
64
- ```bash
65
- npx mcp-lab-agent slack-bot
89
+ # Relatório de evolução com recomendações para aprimorar o código
90
+ npx mcp-lab-agent report --full
66
91
  ```
67
92
 
68
- Configure `~/.cursor/mcp.json` com `"qa-lab-agent": { "slack": { "botToken": "xoxb-...", "signingSecret": "..." } }`. O bot roda localmente; use ngrok para expor em desenvolvimento.
93
+ ### IDE Cursor, Cline, Windsurf
69
94
 
70
- ### Integração com IDE (Cursor/Cline/Windsurf)
71
-
72
- **1. Configure o MCP** (`~/.cursor/mcp.json`):
95
+ Adicione ao `~/.cursor/mcp.json`:
73
96
 
74
97
  ```json
75
98
  {
76
99
  "mcpServers": {
77
100
  "qa-lab-agent": {
78
101
  "command": "npx",
79
- "args": ["-y", "mcp-lab-agent"],
102
+ "args": ["-y", "mcp-lab-agent@latest"],
80
103
  "cwd": "${workspaceFolder}"
81
104
  }
82
105
  }
83
106
  }
84
107
  ```
85
108
 
86
- **2. Use no chat:**
109
+ Use no chat: *"Detecte a estrutura do meu projeto"*, *"Gere teste para login"*, *"Por que o teste falhou?"*, *"Avalie http://localhost:3000 no browser"*.
110
+
111
+ **run_tests com device e auto-fix:** Ao pedir *"Roda o teste X"*, o agente detecta o device (de `qa-lab-agent.config.json`, `wdio.conf` ou `.detoxrc`), executa o fluxo e, se falhar por seletor, aplica correção automaticamente e tenta novamente.
112
+
113
+ ### Slack Bot
87
114
 
115
+ ```bash
116
+ npx mcp-lab-agent slack-bot
88
117
  ```
89
- "Detecte a estrutura do meu projeto"
90
- "Modo autônomo: gere teste para login"
91
- "Rode os testes"
92
- "Por que o teste falhou?"
93
- "Avalie http://localhost:3000 no browser"
94
- "Mostre as estatísticas de aprendizado"
118
+
119
+ Funciona em ambiente corporativo (Socket Mode, sem URL pública). Configure `botToken` e `appToken` em `~/.cursor/mcp.json`. Onde obter: [slack-bot/CREDENTIALS.md](slack-bot/CREDENTIALS.md). Detalhes: [slack-bot/README.md](slack-bot/README.md).
120
+
121
+ ### Learning Hub Inteligência centralizada
122
+
123
+ ```bash
124
+ npx mcp-lab-agent learning-hub
95
125
  ```
96
126
 
97
- ---
127
+ API e Dashboard em `http://localhost:3847`. Configure no `.env` do projeto:
98
128
 
99
- ## Architecture
129
+ ```
130
+ LEARNING_HUB_URL=http://localhost:3847
131
+ LEARNING_HUB_PROJECT_ID=meu-projeto
132
+ ```
100
133
 
101
- O diagrama abaixo mostra como o agente autônomo funciona:
134
+ O agente envia learnings automaticamente. O Hub agrega padrões e fornece recomendações. Detalhes: [learning-hub/README.md](learning-hub/README.md).
102
135
 
103
- ```mermaid
104
- flowchart TB
105
- subgraph IDE["🖥️ IDE (Cursor, Cline, Windsurf)"]
106
- Chat[Chat do usuário]
107
- end
136
+ ---
108
137
 
109
- subgraph CLI["💻 CLI (Terminal)"]
110
- Auto["mcp-lab-agent auto"]
111
- Stats["mcp-lab-agent stats"]
112
- end
138
+ ## Arquitetura
113
139
 
114
- subgraph MCP["MCP Protocol (stdio)"]
115
- Transport[Stdio Transport]
140
+ ```mermaid
141
+ flowchart TB
142
+ subgraph Input["Entrada"]
143
+ CLI[CLI: auto, stats, report]
144
+ IDE[IDE: Cursor, Cline, Windsurf]
145
+ Slack[Slack Bot]
116
146
  end
117
147
 
118
148
  subgraph Agent["mcp-lab-agent"]
119
149
  Router[qa_route_task]
120
- AutoTool["qa_auto<br/>(Loop autônomo)"]
121
-
122
- subgraph Agents["Agentes Especializados"]
123
- D[detection<br/>detect_project, read_project, list_test_files]
124
- E[execution<br/>run_tests, watch_tests, get_test_coverage]
125
- G[generation<br/>generate_tests, write_test]
126
- A[analysis<br/>analyze_failures, por_que_falhou, suggest_selector_fix]
127
- B[browser<br/>web_eval_browser]
128
- R[reporting<br/>create_bug_report, get_business_metrics]
129
- L[learning<br/>qa_learning_stats]
130
- end
131
-
132
- subgraph Brain["🧠 Núcleo Inteligente"]
133
- MR[Model Router<br/>simples → Groq/Flash | complexo → 70B/Pro]
134
- PM[Project Memory<br/>.qa-lab-memory.json]
135
- FD[Flaky Detection<br/>timing, selector, network]
136
- LS[Learning System<br/>salva correções bem-sucedidas]
137
- end
150
+ Auto[qa_auto]
151
+ MR[Model Router]
152
+ FD[Flaky Detection]
153
+ PM[Project Memory]
154
+ LS[Learning System]
138
155
  end
139
156
 
140
- subgraph External["Externo"]
141
- LLM[LLM: Groq / Gemini / OpenAI]
142
- PW[Playwright optional]
143
- Proj[Seu projeto]
157
+ subgraph Tools["Ferramentas"]
158
+ D[detect_project, list_test_files]
159
+ G[generate_tests, write_test, map_mobile_elements]
160
+ E[run_tests, get_test_coverage]
161
+ A[analyze_failures, suggest_fix, por_que_falhou]
162
+ R[create_bug_report, get_learning_report]
144
163
  end
145
164
 
146
- Chat --> Transport
147
- Transport --> Router
148
- Router --> AutoTool
149
- Router --> D & E & G & A & B & R & L
150
-
151
- Auto --> AutoTool
152
- Stats --> L
153
-
154
- AutoTool --> G
155
- AutoTool --> E
156
- AutoTool --> A
157
- AutoTool --> LS
158
-
159
- D & E & G & A & R --> Proj
160
- B --> PW
161
- B --> Proj
162
-
163
- G & A --> MR
164
- MR --> LLM
165
- G & A & AutoTool --> PM
166
- A & AutoTool --> FD
167
- AutoTool --> LS
168
- LS --> PM
169
- ```
170
-
171
- **Fluxo autônomo (qa_auto):**
172
- 1. **Detecta** projeto (frameworks, pastas, fluxos)
173
- 2. **Gera** teste usando LLM + memória de aprendizados
174
- 3. **Executa** o teste
175
- 4. **Se falhar:** analisa (flaky detection), corrige e tenta de novo
176
- 5. **Aprende:** salva correções bem-sucedidas na memória
177
- 6. **Repete** até passar ou atingir max_retries
178
-
179
- **Fluxo resumido (IDE):**
180
- 1. **Usuário** fala no chat do IDE
181
- 2. **MCP** entrega a mensagem ao `mcp-lab-agent`
182
- 3. **qa_route_task** sugere o agente certo (detection, execution, generation, etc.)
183
- 4. **Ferramentas** executam no projeto (detectar, rodar, gerar, analisar)
184
- 5. **Model Router** escolhe o modelo: tarefas simples → barato; complexas → mais capaz
185
- 6. **Project Memory** guarda padrões e fluxos para próximas gerações
186
- 7. **Flaky Detection** identifica testes intermitentes e sugere correções
165
+ subgraph Ext["Externo"]
166
+ LLM[LLM: Groq, Gemini, OpenAI, Ollama]
167
+ Hub[Learning Hub]
168
+ end
187
169
 
188
- ---
170
+ Input --> Router
171
+ Router --> Auto
172
+ Auto --> G & E & A
173
+ G & A --> MR --> LLM
174
+ A --> FD
175
+ Auto --> LS --> PM
176
+ PM -.-> Hub
177
+ Router --> D & G & E & A & R
178
+ ```
189
179
 
190
- ## Features
191
-
192
- | Categoria | O que faz |
193
- |-----------|-----------|
194
- | **🤖 Autônomo** | `qa_auto` — loop completo: gera, roda, corrige, aprende (até passar ou max_retries) |
195
- | **📊 Learning** | Salva correções bem-sucedidas, taxa de sucesso na 1ª tentativa, métricas de aprendizado |
196
- | **Detecção** | Cypress, Playwright, WebdriverIO, Jest, Vitest, Mocha, Robot, pytest, Behave, Appium, Detox |
197
- | **Execução** | run_tests, watch, coverage (Jest/Vitest) |
198
- | **Geração** | Testes via LLM (Groq, Gemini, OpenAI), templates |
199
- | **Análise** | analyze_failures, por_que_falhou, suggest_fix, suggest_selector_fix |
200
- | **Browser** | web_eval_browser — screenshots, network, console (Playwright opcional) |
201
- | **Relatórios** | Bug reports em Markdown, métricas de negócio |
202
- | **Flaky-aware** | Detecta timing, selector, network; sugere retries |
203
- | **Model routing** | Tarefas simples → modelo barato; complexas → modelo forte |
204
- | **Memória** | Cache em .qa-lab-memory.json, qa-lab-flows.json |
180
+ **Fluxo `qa_auto`:**
181
+ 1. Detecta projeto (frameworks, pastas, fluxos)
182
+ 2. Gera teste com LLM + memória de aprendizados
183
+ 3. Executa o teste
184
+ 4. Se falhar: analisa (flaky detection), corrige e tenta novamente
185
+ 5. Aprende e salva correções na memória
186
+ 6. Repete até passar ou atingir `max_retries`
205
187
 
206
188
  ---
207
189
 
208
- ## CLI
209
-
210
- ```bash
211
- mcp-lab-agent [comando]
212
- ```
190
+ ## Capacidades
213
191
 
214
- | Comando | Descrição |
215
- |---------|-----------|
216
- | *(sem args)* | Inicia o servidor MCP (modo padrão para o IDE) |
217
- | `auto <descrição> [--max-retries N]` | **[NOVO]** Modo autônomo: gera, roda, corrige e aprende (default: 3 tentativas) |
218
- | `stats` | **[NOVO]** Mostra estatísticas de aprendizado (taxa de sucesso, correções, etc.) |
219
- | `detect [--json]` | Detecta frameworks e estrutura do projeto |
220
- | `route <tarefa>` | Sugere qual ferramenta usar |
221
- | `list` | Lista agentes e ferramentas disponíveis |
222
- | `--help` | Mostra ajuda |
223
-
224
- **Exemplos:**
225
- ```bash
226
- mcp-lab-agent auto "login flow" --max-retries 5
227
- mcp-lab-agent stats
228
- mcp-lab-agent detect
229
- mcp-lab-agent route "rodar os testes"
230
- mcp-lab-agent list
231
- ```
192
+ ### Automação e geração
232
193
 
233
- Referência completa do CLI: `mcp-lab-agent --help`
194
+ - **Modo autônomo** (`qa_auto`): gera, executa, analisa, corrige e aprende em loop
195
+ - **Geração com LLM**: Groq, Gemini, OpenAI ou Ollama (100% offline)
196
+ - **Mapeamento mobile** (`map_mobile_elements`): elementos em Appium/Detox
197
+ - **Templates**: waits inteligentes e assert final obrigatório em todo teste gerado
234
198
 
235
- ---
199
+ ### Análise e diagnóstico
236
200
 
237
- ## Escalabilidade
201
+ - **Detecção de falhas**: timing, selector, element_not_rendered, element_not_visible, element_stale, mobile_mapping_invisible
202
+ - **Mensagens contextualizadas**: cada tipo de erro tem explicação e sugestão específica
203
+ - **Análise de estabilidade**: taxa de falha por teste, identificação de flaky
204
+ - **Predição de flakiness** (`qa_predict_flaky`): risco antes de o problema aparecer
205
+ - **Análise de métodos** (`analyze_file_methods`): varredura por método do arquivo
238
206
 
239
- ### Como o mcp-lab-agent escala para empresas
207
+ ### Relatórios e métricas
240
208
 
241
- **1. Multi-projeto:**
242
- - Cada projeto tem sua própria memória (`.qa-lab-memory.json`)
243
- - Aprendizados são isolados por contexto
244
- - Suporte a monorepos (detecta múltiplos frameworks)
209
+ - **Bug reports** em Markdown
210
+ - **Métricas de negócio** (se `qa-lab-flows.json` configurado)
211
+ - **Relatório de evolução** (`get_learning_report`): padrões por tipo, recomendações
212
+ - **Benchmark** (`qa_compare_with_industry`): comparação com padrões do mercado
245
213
 
246
- **2. CI/CD:**
247
- ```yaml
248
- # .github/workflows/qa.yml
249
- - run: npx mcp-lab-agent auto "smoke tests" --max-retries 2
250
- - run: npx mcp-lab-agent stats
251
- ```
214
+ ### Memória e Learning Hub
252
215
 
253
- **3. Métricas exportáveis:**
254
- - `.qa-lab-memory.json` pode ser lido por dashboards
255
- - `stats` retorna JSON estruturado
256
- - Integração com Grafana/DataDog via script
216
+ - **Memória local**: `.qa-lab-memory.json` por projeto
217
+ - **Learning Hub**: API central (`POST /learning`, `GET /patterns`), Dashboard, sync automático entre projetos
257
218
 
258
- **4. Aprendizado compartilhado (roadmap):**
259
- - Exportar/importar memórias entre projetos
260
- - Central de aprendizados da empresa
261
- - Padrões globais + overrides locais
219
+ ### Frameworks suportados
262
220
 
263
- **5. Customização:**
264
- - `qa-lab-flows.json` para fluxos de negócio específicos
265
- - Variáveis de ambiente para modelos customizados
266
- - Extensível via MCP tools
221
+ 11+ frameworks: Cypress, Playwright, WebdriverIO, Jest, Vitest, Mocha, Robot Framework, pytest, Behave, Appium, Detox.
267
222
 
268
223
  ---
269
224
 
270
- ## Configuração
225
+ ## CLI
271
226
 
272
- ### Opção 1: APIs Externas (Groq, Gemini, OpenAI)
227
+ | Comando | Descrição |
228
+ |---------|-----------|
229
+ | *(sem args)* | Inicia servidor MCP (modo IDE) |
230
+ | `learning-hub` | API + Dashboard (porta 3847) |
231
+ | `slack-bot` | Bot Slack (Socket Mode) |
232
+ | `analyze` | Análise completa do projeto |
233
+ | `auto <descrição> [--max-retries N]` | Modo autônomo (default: 3 tentativas) |
234
+ | `stats` | Estatísticas de aprendizado |
235
+ | `report [--full]` | Relatório de evolução |
236
+ | `detect [--json]` | Detecta frameworks e estrutura |
237
+ | `route <tarefa>` | Sugere ferramenta |
238
+ | `list` | Lista agentes e ferramentas |
273
239
 
274
240
  ```bash
275
- # .env
276
- GROQ_API_KEY=sua-key # Gratuito: https://console.groq.com/keys
241
+ # Exemplos de uso
242
+ mcp-lab-agent learning-hub # Inicia Hub (porta 3847)
243
+ mcp-lab-agent analyze # Análise completa
244
+ mcp-lab-agent auto "login flow" # Modo autônomo
245
+ mcp-lab-agent stats # Taxa de sucesso, aprendizados
246
+ mcp-lab-agent report --full # Relatório com recomendações
277
247
  ```
278
248
 
279
- ### Opção 2: Ollama (Local, Sem Internet) ⭐ Recomendado para empresas
280
-
281
- ```bash
282
- # 1. Instale o Ollama
283
- brew install ollama # macOS
284
- # ou: curl -fsSL https://ollama.com/install.sh | sh # Linux
285
-
286
- # 2. Baixe o modelo
287
- ollama pull llama3.1:8b
288
-
289
- # 3. Inicie
290
- ollama serve
249
+ ---
291
250
 
292
- # 4. Pronto! O agente detecta automaticamente
293
- npx mcp-lab-agent auto "login flow"
294
- ```
251
+ ## Escalabilidade e uso em produção
295
252
 
296
- **100% offline. Sem APIs externas. Ideal para ambientes corporativos.**
253
+ - **Por projeto**: memória local (`.qa-lab-memory.json`) isolada por repositório
254
+ - **Entre times**: Learning Hub agrega padrões por `projectId`; Dashboard compartilhado
255
+ - **Entre empresas**: um Hub pode servir múltiplas organizações; padrões cross-org (ex.: "Playwright + selector instável" em 15 projetos) viram recomendações globais
256
+ - **CI/CD**: integração em GitHub Actions, GitLab CI, Jenkins
257
+ - **Métricas exportáveis**: JSON estruturado para Grafana, DataDog, dashboards internos
258
+ - **Ollama**: 100% offline; adequado para ambientes corporativos restritivos
259
+ - **LLM interno**: endpoint customizado da empresa
297
260
 
298
- ### Opção 3: LLM Interno da Empresa
261
+ ---
299
262
 
300
- ```bash
301
- # .env
302
- QA_LAB_LLM_BASE_URL=https://llm-interno.empresa.com/v1
303
- QA_LAB_LLM_API_KEY=sua-key-interna
304
- ```
263
+ ## Configuração
305
264
 
306
- ### Variáveis de ambiente (todas opcionais)
265
+ ### Variáveis de ambiente (opcionais)
307
266
 
308
267
  | Variável | Uso |
309
268
  |----------|-----|
310
- | `GROQ_API_KEY` | Groq (gratuito, rápido) |
269
+ | `GROQ_API_KEY` | Groq |
311
270
  | `GEMINI_API_KEY` | Google Gemini |
312
271
  | `OPENAI_API_KEY` | OpenAI |
313
- | `OLLAMA_BASE_URL` | Ollama customizado (default: http://localhost:11434) |
314
- | `QA_LAB_LLM_BASE_URL` | Endpoint LLM customizado (empresa) |
315
- | `QA_LAB_LLM_API_KEY` | API key para LLM customizado |
272
+ | `OLLAMA_BASE_URL` | Ollama (default: http://localhost:11434) |
273
+ | `QA_LAB_LLM_BASE_URL` | LLM customizado (empresa) |
274
+ | `QA_LAB_LLM_API_KEY` | API key do LLM |
316
275
  | `QA_LAB_LLM_SIMPLE` | Modelo para tarefas simples |
317
276
  | `QA_LAB_LLM_COMPLEX` | Modelo para tarefas complexas |
277
+ | `LEARNING_HUB_URL` | URL do Learning Hub |
278
+ | `LEARNING_HUB_PROJECT_ID` | ID do projeto no Hub |
279
+
280
+ ### Ollama (offline)
318
281
 
319
- ### Modo browser (opcional)
282
+ ```bash
283
+ brew install ollama
284
+ ollama pull llama3.1:8b
285
+ ollama serve
286
+ npx mcp-lab-agent auto "login flow"
287
+ ```
320
288
 
321
- Para `web_eval_browser`:
289
+ ### Modo browser (Playwright)
322
290
 
323
291
  ```bash
324
292
  npm install playwright
@@ -328,7 +296,9 @@ npm install playwright
328
296
 
329
297
  ## Documentação
330
298
 
331
- - **[CHANGELOG.md](CHANGELOG.md)** — Histórico de versões
299
+ - [CHANGELOG.md](CHANGELOG.md) — Histórico de versões
300
+ - [slack-bot/README.md](slack-bot/README.md) — Slack Bot
301
+ - [learning-hub/README.md](learning-hub/README.md) — Learning Hub
332
302
 
333
303
  ---
334
304
 
@@ -344,7 +314,7 @@ npm test
344
314
 
345
315
  | Script | Descrição |
346
316
  |--------|-----------|
347
- | `npm run build` | Build com tsup |
317
+ | `npm run build` | Build (tsup) |
348
318
  | `npm test` | Testes (Vitest) |
349
319
  | `npm run test:coverage` | Cobertura |
350
320
  | `npm run dev` | Build em watch |