Descrição
Quando agents são disparados em paralelo (via delegate_task ou sub-agents), não há visibilidade do que cada agent está fazendo — se está rodando, travou, ou qual o progresso.
Detalhamento Técnico
Como o paralelismo funciona atualmente
Coordenação: internal/agent/coordinator.go
Coordinator gerencia execução concorrente de sub-agents
DelegateTask() dispara agent em goroutine separada
- Resultado retornado via canal — sem feedback intermediário
Delegate task tool: internal/agent/delegate_task.go
- Tool
delegate_task disponível para o model
- Executa sub-agent em background
- Retorna apenas resultado final
Agent exec: internal/agent/agent.go
Run() executa o loop principal do agent
Event system em internal/agent/event.go — eventos de streaming
O que falta
-
Painel de status mostrando agents em execução (similar OpenCode):
- Nome do agent
- Status atual (starting/running/completed/error)
- Tempo de execução
- Output parcial em tempo real
-
Streaming de output de cada sub-agent:
- Conectar ao sistema de eventos (
internal/agent/event.go)
- Exibir tokens/tools sendo usados em tempo real
-
Navegação entre outputs de diferentes agents paralelos
-
Log persistente de execuções de sub-agents
Arquivos relevantes
| Arquivo |
Propósito |
internal/agent/coordinator.go |
Gerencia agents concorrentes |
internal/agent/delegate_task.go |
Tool de delegação |
internal/agent/agent.go |
Loop de execução do agent |
internal/agent/event.go |
Eventos de streaming |
internal/ui/ |
Interface do usuário |
internal/db/ |
Persistência de logs |
Caso de uso
```
agent 1: analisar código (rodando...)
agent 2: gerar testes (concluído)
agent 3: revisar docs (erro)
```
Contexto
Sem visibilidade não dá pra saber se um sub-agent travou ou está só demorando. Isso reduz a confiança ao usar paralelismo.
## Descrição
Quando agents são disparados em paralelo (via delegate_task ou sub-agents), não há visibilidade do que cada agent está fazendo — se está rodando, travou, ou qual o progresso.
## Detalhamento Técnico
### Como o paralelismo funciona atualmente
**Coordenação:** `internal/agent/coordinator.go`
- `Coordinator` gerencia execução concorrente de sub-agents
- `DelegateTask()` dispara agent em goroutine separada
- Resultado retornado via canal — sem feedback intermediário
**Delegate task tool:** `internal/agent/delegate_task.go`
- Tool `delegate_task` disponível para o model
- Executa sub-agent em background
- Retorna apenas resultado final
**Agent exec:** `internal/agent/agent.go`
- `Run()` executa o loop principal do agent
- `Event` system em `internal/agent/event.go` — eventos de streaming
### O que falta
1. **Painel de status** mostrando agents em execução (similar OpenCode):
- Nome do agent
- Status atual (starting/running/completed/error)
- Tempo de execução
- Output parcial em tempo real
2. **Streaming de output** de cada sub-agent:
- Conectar ao sistema de eventos (`internal/agent/event.go`)
- Exibir tokens/tools sendo usados em tempo real
3. **Navegação** entre outputs de diferentes agents paralelos
4. **Log persistente** de execuções de sub-agents
### Arquivos relevantes
| Arquivo | Propósito |
|---|---|
| `internal/agent/coordinator.go` | Gerencia agents concorrentes |
| `internal/agent/delegate_task.go` | Tool de delegação |
| `internal/agent/agent.go` | Loop de execução do agent |
| `internal/agent/event.go` | Eventos de streaming |
| `internal/ui/` | Interface do usuário |
| `internal/db/` | Persistência de logs |
### Caso de uso
\`\`\`
agent 1: analisar código (rodando...)
agent 2: gerar testes (concluído)
agent 3: revisar docs (erro)
\`\`\`
### Contexto
Sem visibilidade não dá pra saber se um sub-agent travou ou está só demorando. Isso reduz a confiança ao usar paralelismo.