# Plugins e Skills ## Plugins ### O Que Sao Plugins? Plugins sao modulos TypeScript que estendem a funcionalidade do Neotask em tempo de execucao. Eles podem adicionar novos canais de mensagens, ferramentas de agente, metodos RPC, comandos CLI, servicos em segundo plano e skills. ### Plugins Oficiais **Canais de Mensagens:** - Microsoft Teams, Matrix, Nostr, Zalo, Feishu/Lark, LINE, Nextcloud Talk, Mattermost, Tlon, Twitch **Recursos:** - **Voice Call** -- Suporte a telefonia SIP para chamadas de voz de entrada/saida - **Memory (LanceDB)** -- Memoria de longo prazo com busca por similaridade vetorial - **MCP Native** -- Integracao de servidor Model Context Protocol para ponte com ferramentas externas **Provedores de Auth:** - Google Antigravity OAuth, Gemini CLI OAuth, Qwen OAuth, Minimax OAuth, VS Code Copilot Proxy ### Capacidades de Plugins Plugins podem registrar: - **Metodos RPC** -- Metodos WebSocket personalizados para clientes chamarem - **Handlers HTTP** -- Endpoints HTTP personalizados no Gateway - **Ferramentas de Agente** -- Novas ferramentas com schemas tipados que agentes podem invocar - **Comandos CLI** -- Comandos adicionais de linha de comando - **Servicos em Segundo Plano** -- Processos de longa execucao gerenciados pelo Gateway - **Skills** -- Diretorios de skills empacotados com o plugin - **Comandos de Auto-Resposta** -- Comandos que executam sem envolvimento do agente de IA ### Seguranca de Plugins O Neotask verifica os plugins em varias camadas antes que eles rodem: - **Assinados e verificados.** Os pacotes do catalogo publico do Construct sao publicados pelo Neotask, inspecionados automaticamente antes do lancamento e assinados com a chave de lancamento do Neotask. Antes de instalar um pacote, o Neotask confere a assinatura com chaves embutidas no Neotask e verifica o hash SHA-256 do download. - **Sem scripts de instalacao.** Os pacotes do Construct ja trazem suas dependencias, entao a instalacao nunca roda um gerenciador de pacotes nem um script de instalacao. Quando outra instalacao de plugin usa o npm, os scripts de instalacao ficam desativados. - **Verificacao na instalacao.** Plugins instalados fora do Construct passam por uma verificacao de codigo perigoso, e achados criticos bloqueiam a instalacao. - **Licenca por versao.** Um plugin do Construct so carrega enquanto sua conta tiver uma permissao valida para aquela versao. Versoes revogadas nao carregam. - **Aprovacoes para acoes do agente.** As chamadas de ferramentas do agente, incluindo ferramentas adicionadas por plugins, sao verificadas pela sua politica de aprovacao, e as acoes que precisam do seu aval esperam por ele. Um software que o agente queira instalar fora das receitas de instalacao incluidas no Neotask sempre mostra o comando exato e espera sua aprovacao. - **Sandbox opcional.** Voce pode rodar as ferramentas de um agente em um container Docker isolado, em vez de diretamente no seu computador. O sandbox vem desativado por padrao; veja [Seguranca](security.md) para ativa-lo. Plugins nativos rodam dentro do processo do Gateway, entao um plugin instalado fora do Construct e um codigo que voce escolhe rodar. Use `plugins.allow` para listar os plugins que podem carregar. --- ## Skills ### O Que Sao Skills? Skills sao capacidades modulares que ensinam novos workflows aos agentes. Cada skill e um arquivo markdown (`SKILL.md`) com instrucoes que sao injetadas no contexto do agente quando relevantes. ### Locais de Skills (Ordem de Prioridade) 1. **Skills do workspace** -- `/skills/` (prioridade mais alta) 2. **Skills gerenciadas** -- `~/.neotask/skills/` 3. **Skills empacotadas** -- Distribuidas com o Neotask 4. **Skills de plugins** -- Skills empacotadas com plugins instalados 5. **Diretorios extras** -- Caminhos adicionais configurados (prioridade mais baixa) Quando multiplas skills compartilham o mesmo nome, o local de maior prioridade vence. ### Recursos de Skills - **Invocavel pelo usuario** -- Acione skills diretamente com comandos de barra (ex.: `/docker-build`) - **Invocavel pelo modelo** -- Skills que o agente pode invocar por conta propria quando relevante - **Despacho de comando** -- Skills que mapeiam para ferramentas especificas - **Gating de requisitos** -- Skills so carregam quando seus requisitos sao atendidos (binarios necessarios, chaves de configuracao, variaveis de ambiente, plugins) ### Criando Skills Crie um arquivo `SKILL.md` com frontmatter YAML definindo os metadados e instrucoes da skill: **Campos do frontmatter:** - `name` -- Identificador da skill - `description` -- O que a skill faz - `homepage` -- Link para documentacao - `user-invocable` -- Se usuarios podem aciona-la diretamente - `disable-model-invocation` -- Impede o agente de invoca-la autonomamente - `command-dispatch` -- Ferramenta para despachar - `metadata.neotask.requires` -- Pre-requisitos (bins, config, env, plugins) **Corpo:** Instrucoes em Markdown que ensinam o agente como usar a skill, incluindo exemplos e diretrizes. ### Catalogo de Skills Navegue pelas skills disponiveis no [catalogo de skills](/skills). ### Categorias de Skills Skills cobrem uma ampla gama de capacidades: | Categoria | Exemplos | |-----------|----------| | **Produtividade** | Gestao de email, calendario, geracao de documentos | | **Desenvolvimento** | Operacoes Git, CI/CD, Docker, revisao de codigo | | **Comunicacao** | Mensagens, notificacoes, anuncios | | **Midia** | Processamento de imagens, edicao de video, transcricao de audio | | **IA e Modelos** | Troca de modelos, gestao de prompts, RAG | | **Casa Inteligente** | Controle de dispositivos IoT, gatilhos de automacao | | **Utilitarios** | Conversao de arquivos, transformacao de dados, web scraping |