Hermes Agent: Plugins

Última atualização: 2026-08-31

Plugins são a interface de extensão do Hermes Agent — recursos integrados não são suficientes? Instale um plugin. Quer conectar Jira, Notion, Figma? Todos têm plugins prontos.

💡 Dica: Plugins são uma forma de extensão de nível superior comparado a ferramentas personalizadas. Um plugin pode conter múltiplas ferramentas, habilidades e até subsistemas completos. O marketplace do Hermes tem plugins comunitários ricos.

📋 Pré-requisitos: Lição 8 — Ferramentas e Conjuntos

1. O Que Você Vai Aprender

# Conteúdo
Arquitetura do sistema de plugins
Instalação e gerenciamento de plugins
Plugins populares
Desenvolvimento de plugins personalizados
Segurança e permissões de plugins

2. História

(1) Problema: Ferramentas Integradas Não Suficientes

Bob precisa conectar Jira para tickets, usar Notion para notas, ver designs no Figma. As ferramentas integradas não têm essas conexões.

(2) Solução: Instalar Plugins, Expandir com Um Clique

BASH
hermes plugin install hermes-plugin-jira
hermes plugin install hermes-plugin-notion

me: Verifique o status de PROJ-123
Agent: [Jira Plugin] PROJ-123: Em Progresso, Prioridade Alta

3. Arquitetura do Sistema de Plugins

(1) Estrutura do Plugin

hermes-plugin-jira/
├── manifest.yaml
├── tools/
│   ├── jira_search.py
│   ├── jira_create.py
│   └── jira_update.py
├── skills/
│   └── sprint-review.yaml
├── templates/
└── config.yaml

(2) Manifesto do Plugin

YAML
name: "hermes-plugin-jira"
version: "1.2.0"
description: "Jira integration for Hermes Agent"
author: "community"
license: "MIT"

dependencies:
  hermes_version: ">=1.0.0"
  python_packages:
    - "jira>=3.5.0"

tools:
  - name: "jira_search"
    description: "Search Jira issues"
    category: "communication"
  - name: "jira_create"
    description: "Create Jira issue"
    category: "communication"
  - name: "jira_update"
    description: "Update Jira issue"
    category: "communication"

skills:
  - name: "sprint-review"
    description: "Generate sprint review report"

permissions:
  - network: ["*.atlassian.net"]
  - filesystem: []
  - env_vars: ["JIRA_URL", "JIRA_TOKEN"]

4. Instalação e Gerenciamento de Plugins

(1) Instalar Plugins

BASH
hermes plugin install hermes-plugin-jira
hermes plugin install git+https://github.com/user/hermes-plugin-jira
hermes plugin install ./my-plugin
hermes plugin install hermes-plugin-jira@1.2.0

(2) Comandos de Gerenciamento

BASH
hermes plugin list

# ┌─────────────────────┬─────────┬──────────┬─────────┐
# │ Plugin              │ Version │ Status   │ Tools   │
# ├─────────────────────┼─────────┼──────────┼─────────┤
# │ jira                │ 1.2.0   │ ✅ Active│ 3       │
# │ notion              │ 0.9.1   │ ✅ Active│ 4       │
# │ figma               │ 0.5.0   │ ⏸️ Paused│ 2       │
# └─────────────────────┴─────────┴──────────┴─────────┘

hermes plugin update jira
hermes plugin pause figma
hermes plugin resume figma
hermes plugin uninstall figma

5. Plugins Populares

Plugin Função Ferramentas
jira Gerenciamento de tickets Jira 3
notion Páginas/bancos de dados Notion 4
figma Visualização de designs Figma 2
github PR/Issue/Repo GitHub 6
gitlab CI/CD GitLab 5
aws Serviços AWS 8
docker Gerenciamento de contêineres 4
kubernetes Operações de cluster K8s 6
google-calendar Google Calendar 3
slack-advanced Funcionalidades avançadas Slack 5
pandas Análise de dados aprimorada 4
database Suporte multi-banco de dados 5

(1) Exemplo: Plugin GitHub

BASH
hermes plugin install hermes-plugin-github
hermes config set plugins.github.token "${GITHUB_TOKEN}"
hermes config set plugins.github.default_repo "myorg/myrepo"

me: Liste PRs pendentes de revisão
Agent: [GitHub Plugin] Encontrados 3 PRs:
  - #42: Fix auth flow (alice, 2h atrás)
  - #43: Add rate limiting (bob, 5h atrás)
  - #44: Update dependencies (carol, 1d atrás)

6. Desenvolvimento de Plugins Personalizados

(1) Plugin Mínimo

PYTHON
from hermes import Tool, ToolResult

class HelloTool(Tool):
    name = "hello"
    description = "Say hello to someone"
    category = "custom"
    
    parameters = {
        "name": {"type": "str", "required": True}
    }
    
    def execute(self, name: str) -> ToolResult:
        return ToolResult(
            success=True,
            data={"message": f"Hello, {name}!"},
            summary=f"Greeted {name}"
        )

(2) Plugin Completo

PYTHON
from hermes import Tool, ToolResult
import httpx

class StockQueryTool(Tool):
    name = "stock_query"
    description = "Query stock price and metrics"
    category = "finance"
    
    parameters = {
        "symbol": {
            "type": "str",
            "required": True,
            "description": "Stock symbol (e.g., AAPL)"
        },
        "metric": {
            "type": "str",
            "required": False,
            "default": "price",
            "enum": ["price", "pe", "volume", "market_cap"]
        }
    }
    
    def execute(self, symbol: str, metric: str = "price") -> ToolResult:
        api_key = self.get_env("STOCK_API_KEY")
        response = httpx.get(
            f"https://api.stock.com/quote",
            params={"symbol": symbol, "apikey": api_key}
        )
        data = response.json()
        
        return ToolResult(
            success=True,
            data=data,
            summary=f"{symbol} {metric}: {data.get(metric, 'N/A')}"
        )

7. Segurança e Permissões de Plugins

(1) Modelo de Permissões

Permissão Descrição Exemplo
network Domínios permitidos ["*.atlassian.net"]
filesystem Caminhos permitidos ["~/projects"]
env_vars Variáveis de ambiente necessárias ["JIRA_TOKEN"]
tools Ferramentas integradas que pode chamar ["fs_read"]
subprocess Se pode executar comandos false

(2) Auditoria de Segurança

BASH
hermes plugin audit hermes-plugin-xxx

# ⚠️ Auditoria de permissões:
# - network: *.example.com ✅
# - filesystem: /tmp ⚠️ (recomendado limitar escopo)
# - subprocess: true ❌ (recomendado desabilitar ou auditar código)
# - env_vars: API_KEY ✅

❓ Perguntas Frequentes

P: Quantos plugins no marketplace? R: 50+ plugins comunitários cobrindo gerenciamento de projetos, serviços cloud, bancos de dados, ferramentas de design etc.

P: Plugins afetam performance? R: Plugins instalados mas não usados têm impacto zero. Recursos são consumidos apenas quando chamados.

P: Diferença entre plugin e ferramenta personalizada? R: Plugin é um pacote de extensão completo (ferramentas + habilidades + config + templates); ferramenta personalizada é uma única ferramenta. Plugins são mais completos e compartilháveis.

P: Posso instalar múltiplos plugins do mesmo tipo? R: Sim, mas nomes de ferramentas podem conflitar. Recomenda-se habilitar apenas o necessário.

P: Como publicar no marketplace? R: Siga as normas de desenvolvimento, submeta PR ao repositório hermes-plugins, após aprovação será listado.

P: Atualizações quebram configuração existente? R: Versionamento semântico: minor updates são retrocompatíveis. Major updates podem ter breaking changes, avisadas antecipadamente.


📖 Resumo


📝 Exercícios

  1. Básico (⭐): Instale um plugin comunitário (ex: GitHub), complete uma operação básica, verifique funcionamento.
  2. Intermediário (⭐⭐): Desenvolva um plugin simples (1-2 ferramentas), instale no Hermes e teste.
  3. Avançado (⭐⭐⭐): Desenvolva um plugin completo (ferramentas + habilidades + config), publique para a equipe, outros instalam e usam imediatamente.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%