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.
📋 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
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
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
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
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
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
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
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
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
- Plugin = ferramentas + habilidades + configuração + templates em um pacote de extensão
- Instalação: marketplace, Git, caminho local
- 50+ plugins comunitários cobrindo Jira/Notion/GitHub/AWS etc.
- Plugins personalizados: classe Python Tool + YAML manifest
- Modelo de permissões controla rede, arquivos, variáveis de ambiente e subprocessos
📝 Exercícios
- Básico (⭐): Instale um plugin comunitário (ex: GitHub), complete uma operação básica, verifique funcionamento.
- Intermediário (⭐⭐): Desenvolva um plugin simples (1-2 ferramentas), instale no Hermes e teste.
- Avançado (⭐⭐⭐): Desenvolva um plugin completo (ferramentas + habilidades + config), publique para a equipe, outros instalam e usam imediatamente.