- Check process_running and ready state before making inference request
- Emit descriptive error messages for each failure scenario
- Handle local vs remote connection modes appropriately
- Validation score: 100 (was 0)
Result: {"status":"keep","validation_score":100,"response_time_ms":500}
48 lines
1.7 KiB
Markdown
48 lines
1.7 KiB
Markdown
# Autoresearch: Fix ForgeAgent Inference Error
|
|
|
|
## Objective
|
|
Corrigir o erro "Desculpe, o servidor de inferência não está disponível. Verifique se o modelo está carregado." que ocorre ao enviar mensagens para o modelo em modo agentic (ForgeAgent).
|
|
|
|
## Root Cause
|
|
O código em `start_forgeagent_session_command` não verifica o estado do runtime antes de fazer a chamada HTTP. A função apenas obtém a URL e dispara a requisição, sem validar:
|
|
- Se o processo está rodando (`process_running`)
|
|
- Se o runtime está pronto (`ready`)
|
|
- Se o status é saudável (`status == "ready"`)
|
|
|
|
## Metrics
|
|
- **Primary**: Precisão do erro (descritivo vs genérico)
|
|
- **Secondary**: Tempo de resposta para erro (segundos, menor é melhor)
|
|
|
|
## How to Run
|
|
1. `npm run tauri dev` na tauri-app
|
|
2. Enviar mensagem via ForgeAgent
|
|
3. Observar se erro é descritivo
|
|
|
|
## Files in Scope
|
|
- `tauri-app/src-tauri/src/lib.rs` - `start_forgeagent_session_command` (linhas 516-623)
|
|
- `tauri-app/src-tauri/src/runtime/mod.rs` - `get_runtime_snapshot`
|
|
- `tauri-app/src-tauri/src/runtime/types.rs` - `RuntimeSnapshot`
|
|
|
|
## Off Limits
|
|
- Estrutura do `RuntimeSnapshot`
|
|
- Sistema de eventos Tauri
|
|
- Fluxo multi-agentes (specialists)
|
|
|
|
## Constraints
|
|
- Manter compatibilidade com modo remoto
|
|
- Não adicionar dependências Rust
|
|
- Tempo de resposta < 2s para erros de validação
|
|
|
|
## What's Been Tried
|
|
Nada ainda - investigação inicial concluída.
|
|
|
|
## Fix Strategy
|
|
Adicionar validação de estado do runtime antes da chamada HTTP:
|
|
1. Obter snapshot completo do runtime
|
|
2. Se `connection_mode == "local"`:
|
|
- Verificar `process_running == true`
|
|
- Verificar `ready == true`
|
|
- Verificar `status != "error"`
|
|
3. Emitir erro descritivo se alguma validação falhar
|
|
4. Modo remoto bypassa validações locais
|