De Assistente a Agente: Uma Mudanca de Paradigma
A maioria das ferramentas de IA para linha de comando funciona como assistentes: você pergunta, elas respondem. O ChatCLI vai alem, transformando a IA em um agente autônomo que não apenas responde, mas age. O sistema de Plugins e IA Agentiva materializa essa visão:- Você: Define o objetivo e fornece as ferramentas (plugins)
- O Agente: Orquestra a execução, conectando percepcao, raciocinio e ação para resolver problemas complexos
Arquitetura do Sistema de Plugins
Descoberta e Carregamento Automático
O ChatCLI utiliza um gerenciador de plugins inteligente que:Monitora o diretório
~/.chatcli/plugins/ usando fsnotifyDetecta mudancas
Aplica debounce
Valida o contrato
Recarrega automaticamente
Plugins Remotos (Server-Side)
Quando conectado a um servidor viachatcli connect, o client descobre automaticamente os plugins disponíveis no servidor. Esses plugins aparecem em /plugin list com a tag [remote] e são executados no servidor via gRPC — sem necessidade de instalar nada localmente.
Plugins Builtin
Alguns plugins essenciais já vem embutidos no binario do ChatCLI e aparecem com a tag[builtin]. Plugins builtin não precisam de instalação e não podem ser desinstalados. Se você instalar uma versão customizada em ~/.chatcli/plugins/ com o mesmo nome, ela prevalece sobre o builtin.
Busca Flexivel de Plugins
O sistema aceita ambas as formas de invocação:- Com @ (forma canonica)
- Sem @ (atalho conveniente)
Configuração do Agente
Variáveis de Ambiente
Configure o comportamento do agente através de variáveis de ambiente:O Ciclo ReAct: Raciocinio e Acao
O AgentMode implementa o framework ReAct (Reasoning and Acting), um loop iterativo transparente:Raciocinio (Pensamento)
Acao (Chamada de Ferramenta)
<tool ... /> — modelos apoiados em outros agent CLIs (Devin, Codex, Claude Code) costumam encurtar a tag. O ChatCLI sempre emite a canônica <tool_call>, mas é liberal no que aceita.Execução (Invocação do Plugin)
Observacao (Feedback)
Reiteracao
Gerenciamento de Plugins com /plugin
Comandos Disponíveis
Exemplo de Uso
- Listar plugins
- Ver detalhes
- Inspecionar metadados
Instalação de Plugins
Criando Plugins: O Guia Completo
O Contrato do Plugin
Todo plugin deve seguir estas regras:Ser um Executável
- Binario compilado (Go, Rust, C++) ou
- Script com shebang (
#!/usr/bin/env python3,#!/bin/bash) - Localizado em
~/.chatcli/plugins/ - Permissao de execução obrigatoria (
chmod +x)
Responder ao Contrato --metadata (Obrigatório)
--metadata, o plugin DEVE imprimir um JSON válido para stdout:name: Deve comecar com@description: Usado pela IA para decidir quando usar a ferramentausage: Sintaxe de invocaçãoversion: Versionamento semantico
Implementar --schema (Opcional, mas Recomendado)
Comunicação via I/O Padrão
stdout para apenas o resultado final, stderr para todo o resto (logs, progresso, erros).Exemplo Completo: Plugin @hello em Go
Este exemplo demonstra todas as melhores praticas:
Compilacao e Instalação
Compilar
Dar permissao de execução (CRITICO!)
Mover para o diretório de plugins
Verificar instalação
Testando o Plugin
Debugging de Plugins
Verificar se o Plugin Foi Carregado
Verificar se o Plugin Foi Carregado
/plugin list. Se o plugin não aparecer:- Verifique permissões:
ls -l ~/.chatcli/plugins/— Deve mostrar-rwxr-xr-x(com ‘x’) - Teste o contrato
--metadata:~/.chatcli/plugins/seu-plugin --metadata— Deve retornar JSON valido - Ative logs de debug no
.env:
Testar Plugin Manualmente
Testar Plugin Manualmente
- Testar metadados:
~/.chatcli/plugins/seu-plugin --metadata - Testar schema:
~/.chatcli/plugins/seu-plugin --schema - Testar execução:
~/.chatcli/plugins/seu-plugin arg1 arg2
Resolver Problemas de Timeout
Resolver Problemas de Timeout
- Aumentar timeout globalmente:
export CHATCLI_AGENT_PLUGIN_TIMEOUT=30m - Ou no
.env:CHATCLI_AGENT_PLUGIN_TIMEOUT=30m
Exemplo Avancado: Plugin Docker Hub
Este exemplo demonstra integração com API externa:Caso de Uso
- Usar
@dockerhub redispara listar tags - Filtrar tags com “alpine”
- Selecionar a versão mais recente
- Executar
docker run redis:<tag-alpine> - Validar que o container está rodando
Linguagens Suportadas
Qualquer linguagem que possa criar um executável, interagir com I/O padrão (stdin/stdout/stderr) e processar argumentos de linha de comando.Recomendações por Caso de Uso
Segurança e Melhores Praticas
Validação de Entrada
os.Exit(1) para sinalizar erros ao ChatCLI.Tratamento de Erros
stderr.Timeouts Internos
context.WithTimeout para evitar que operações externas travem o plugin indefinidamente.Logs Informativos
stderr para que o usuário acompanhe a execução do plugin em tempo real.Plugins no Modo /coder
O modo /coder e especializado em engenharia de software e utiliza o plugin @coder para executar suas ações. O@coder e um plugin builtin — já vem embutido no ChatCLI e funciona sem instalação.
No /coder, a IA emite chamadas de ferramenta em um formato estrito:
- Primeiro, escreve um bloco
reasoningcurto (2 a 6 linhas) - Em seguida, emite apenas um
tool_callcom args JSON
Próximos Passos
Exemplos de Plugins
Crie seu Primeiro Plugin
@hello nesta página para comecarCompartilhe com a Comunidade
Contribua
O sistema de plugins e a sua porta de entrada para a verdadeira automacao. Comece a construir suas ferramentas e transforme seu terminal em um colega de equipe.