1
1
Fork
You've already forked nibble
0

Criar agents e sub-agents diretamente pela interface (local ou global) #4

Open
opened 2026年07月09日 03:21:44 +02:00 by andeerc · 0 comments

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.

## 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.
Sign in to join this conversation.
No Branch/Tag specified
main
v0.1.4
v0.1.3
v0.1.2
v0.1.1
v0.0.3
v0.0.2
v0.0.1
Labels
Clear labels
No items
No labels
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
andeerc/nibble#4
Reference in a new issue
andeerc/nibble
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?