Pular para o conteúdo principal

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).

SubsistemaDiretóriosDocumentação inicial
Núcleo do agente (laço, transportes, compressão)agent/, run_agent.pyLaço do Agente, Compressão e Cache de Contexto
Montagem do promptagent/prompt_builder.py, agent/system_prompt.pyMontagem do Prompt
Provedores de modelo e transportesagent/transports/, plugins/model-providers/, hermes_cli/models.pyAdicionar Provedores, Plugins de Provedor de Modelo, Runtime de Provedores
Ferramentas embutidastools/Adicionar Ferramentas, Runtime de Ferramentas
Gateway de mensagensgateway/, plugins/platforms/Gateway por Dentro, Adicionar Adaptadores de Plataforma
CLIhermes_cli/Estender a CLI
Sistema de pluginsplugins/Criar um Plugin
Skills (embutidas e opcionais)skills/, optional-skills/Criar Skills
Cron e tarefas agendadascron/Cron por Dentro
Armazenamento de sessõeshermes_state.pyArmazenamento de Sessões
Pilha do navegadortools/browser_tool.py, tools/browser_supervisor.py, tools/browser_cdp_tool.pySupervisor CDP
Firewall de saídaagent/proxy_sources/iron_proxy.pyProxy de Saída por Dentro
ACP (integração com IDE)acp_adapter/ACP por Dentro
Aplicativo desktopapps/desktop/SDK de Plugin do Desktop, TUI e Desktop em Worktrees
TUIui-tui/, tui_gateway/TUI e Desktop em Worktrees
Site da documentaçãowebsite/Contribuir
Testestests/, 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.md do repositório).
  • Rode o diretório de teste espelho de cada diretório que você tocar. Uma mudança em plugins/platforms/telegram/ precisa de tests/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.