Descrição
Não há interface no Nibble para criar agents (sub-agents) — atualmente é preciso editar arquivos de config manualmente ou usar comandos externos.
Detalhamento Técnico
Como agents funcionam atualmente
Estrutura de agent: internal/agent/agent.go
- Struct
Agent— representa um sub-agent com nome, instruções, tools permitidas AgentConfig— configuração lida de nibble.json ou arquivos de skill
Carregamento de skills/agents:
internal/backend/backend.go— init de skills e agents- Skills builtin ficam em
.agents/skills/builtin-skills/ - Skills de usuário em
.agents/skills/ - Cada skill tem um
SKILL.mdcom instruções
Coordenação: internal/agent/coordinator.go
Coordinatorgerencia agents concorrentesDelegateTask()— delega tarefa pra sub-agent
Config de agents:
internal/config/config.go— structAgentConfigcom campos:Name,Prompt,Tools,Model,Permissions,MaxTurns, etc.
- Agents são definidos em
nibble.jsonsob chaveagents
O que falta
- Comando
:agent create— CLI/TUI pra criar agent interativamente - Comando
:agent list— listar agents disponíveis - Comando
:agent edit— editar config de agent existente - Comando
:agent delete— remover agent - Seleção de escopo:
--local(salva em.nibble/agents/no projeto) vs--global(~/.config/nibble/agents/) - Interface TUI: wizard com campos: nome, instruções/prompt, tools permitidas, modelo, permissões
Arquivos relevantes para implementação
| Arquivo | Propósito |
|---|---|
internal/agent/agent.go |
Struct Agent, lógica de execução |
internal/agent/coordinator.go |
Coordenação de sub-agents |
internal/config/config.go |
AgentConfig struct, parsing |
internal/commands/commands.go |
Registro de comandos :agent ... |
internal/backend/backend.go |
Init de agents/skills |
.agents/skills/ |
Diretório de skills do usuário |
Exemplo de uso desejado
```
:agent create review --local
:agent create deploy --global --tools "bash,fs"
:agent list
:agent edit review
```
Nota
Nibble já tem sistema de agents funcional (delegate_task, coordinator), falta apenas a interface de criação/manipulação.
## Descrição
Não há interface no Nibble para criar agents (sub-agents) — atualmente é preciso editar arquivos de config manualmente ou usar comandos externos.
## Detalhamento Técnico
### Como agents funcionam atualmente
**Estrutura de agent:** `internal/agent/agent.go`
- Struct `Agent` — representa um sub-agent com nome, instruções, tools permitidas
- `AgentConfig` — configuração lida de nibble.json ou arquivos de skill
**Carregamento de skills/agents:**
- `internal/backend/backend.go` — init de skills e agents
- Skills builtin ficam em `.agents/skills/builtin-skills/`
- Skills de usuário em `.agents/skills/`
- Cada skill tem um `SKILL.md` com instruções
**Coordenação:** `internal/agent/coordinator.go`
- `Coordinator` gerencia agents concorrentes
- `DelegateTask()` — delega tarefa pra sub-agent
**Config de agents:**
- `internal/config/config.go` — struct `AgentConfig` com campos:
- `Name`, `Prompt`, `Tools`, `Model`, `Permissions`, `MaxTurns`, etc.
- Agents são definidos em `nibble.json` sob chave `agents`
### O que falta
1. **Comando `:agent create`** — CLI/TUI pra criar agent interativamente
2. **Comando `:agent list`** — listar agents disponíveis
3. **Comando `:agent edit`** — editar config de agent existente
4. **Comando `:agent delete`** — remover agent
5. **Seleção de escopo:** `--local` (salva em `.nibble/agents/` no projeto) vs `--global` (`~/.config/nibble/agents/`)
6. **Interface TUI:** wizard com campos: nome, instruções/prompt, tools permitidas, modelo, permissões
### Arquivos relevantes para implementação
| Arquivo | Propósito |
|---|---|
| `internal/agent/agent.go` | Struct Agent, lógica de execução |
| `internal/agent/coordinator.go` | Coordenação de sub-agents |
| `internal/config/config.go` | AgentConfig struct, parsing |
| `internal/commands/commands.go` | Registro de comandos `:agent ...` |
| `internal/backend/backend.go` | Init de agents/skills |
| `.agents/skills/` | Diretório de skills do usuário |
### Exemplo de uso desejado
\`\`\`
:agent create review --local
:agent create deploy --global --tools "bash,fs"
:agent list
:agent edit review
\`\`\`
## Nota
Nibble já tem sistema de agents funcional (delegate_task, coordinator), falta apenas a interface de criação/manipulação.