Documentação oficial desta página · v0.20.6
Mapa de responsabilidade do código
O Hermes é um repositório grande, e a maior parte das contribuições toca exatamente um subsistema.
Esta página liga cada subsistema aos diretórios de código dele e à documentação que convém ler antes
de mexer. Use para achar o ponto de partida certo, o lugar certo da mudança e o diretório de teste
certo (os testes espelham o código: o que está em tools/ é testado em tests/tools/, plugins em
tests/plugins/<tipo>/, e assim por diante).
| Subsistema | Diretórios | Documentação inicial |
|---|---|---|
| Núcleo do agente (laço, transportes, compressão) | agent/, run_agent.py | Laço do Agente, Compressão e Cache de Contexto |
| Montagem do prompt | agent/prompt_builder.py, agent/system_prompt.py | Montagem do Prompt |
| Provedores de modelo e transportes | agent/transports/, plugins/model-providers/, hermes_cli/models.py | Adicionar Provedores, Plugins de Provedor de Modelo, Runtime de Provedores |
| Ferramentas embutidas | tools/ | Adicionar Ferramentas, Runtime de Ferramentas |
| Gateway de mensagens | gateway/, plugins/platforms/ | Gateway por Dentro, Adicionar Adaptadores de Plataforma |
| CLI | hermes_cli/ | Estender a CLI |
| Sistema de plugins | plugins/ | Criar um Plugin |
| Skills (embutidas e opcionais) | skills/, optional-skills/ | Criar Skills |
| Cron e tarefas agendadas | cron/ | Cron por Dentro |
| Armazenamento de sessões | hermes_state.py | Armazenamento de Sessões |
| Pilha do navegador | tools/browser_tool.py, tools/browser_supervisor.py, tools/browser_cdp_tool.py | Supervisor CDP |
| Firewall de saída | agent/proxy_sources/iron_proxy.py | Proxy de Saída por Dentro |
| ACP (integração com IDE) | acp_adapter/ | ACP por Dentro |
| Aplicativo desktop | apps/desktop/ | SDK de Plugin do Desktop, TUI e Desktop em Worktrees |
| TUI | ui-tui/, tui_gateway/ | TUI e Desktop em Worktrees |
| Site da documentação | website/ | Contribuir |
| Testes | tests/, tests-js/ | Contribuir |
Algumas convenções que saem desse mapa:
- Mudanças devem ficar dentro do próprio subsistema. Um plugin que precisa editar arquivos do
núcleo é sinal de problema de projeto — amplie a superfície genérica de plugin (veja a régua de
contribuição no
AGENTS.mddo repositório). - Rode o diretório de teste espelho de cada diretório que você tocar. Uma mudança em
plugins/platforms/telegram/precisa detests/plugins/platforms/verde, não só do arquivo de teste que você lembrou. - Quando dois subsistemas estão envolvidos, o mais estreito é o dono da mudança. Prefira corrigir num adaptador ou plugin a criar um desvio no núcleo do agente; o núcleo é uma cintura fina, e cada acréscimo ali é pago em toda chamada de API.