YouMind
Entrar

Como transformar o Hermes em um analista financeiro de nível IB

@gemchange_ltd
INGLÊS04 de jun. de 2026
867K
184
15
13
646

TL;DR

Este guia técnico detalha como configurar o agente Hermes para análises de nível de banco de investimento, com foco em arquitetura de prompts, matemática determinística e integração com fontes de dados financeiros como EDGAR e FRED.

Vou assumir que você já consegue fazer um LLM falar coisas inteligentes sobre uma ação. Qualquer um consegue. Esse não é o trabalho.

O trabalho é a estrutura, a camada em volta do modelo que decide se seu analista é uma mesa confiável ou um gerador de números aleatórios com boa gramática. O modelo é a parte mais substituível de tudo.

gemchanger - inline image

Três partes:

  1. Como executar corretamente
  2. Como educá-lo para ser uma máquina financeira (a verdadeira vantagem)
  3. Os repositórios e serviços que o estendem.

Leia a parte do meio duas vezes.

Não é um Conselho Financeiro. Faça Sua Própria Pesquisa. Meu próprio projeto - @coldvisionXYZ

PARTE 1 - EXECUTE E ENTENDA O QUE VOCÊ ESTÁ EXECUTANDO

Uma linha. Ela provisiona python, node, git, tudo, em ~/.hermes/:

bash
1curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

Linux, macOS, WSL2, Android via Termux (detectado automaticamente), Windows nativo (beta inicial, sem necessidade de WSL). Python 3.11+. Em seguida, hermes setup para o assistente, ou hermes model / hermes tools / hermes gateway setup peça por peça. Execute com hermes (CLI clássico) ou hermes --tui (recomendado).

A abstração do provedor é o superpoder silencioso

O mesmo runtime aciona APIs de chat-completions, Anthropic Messages, Codex Responses, um caminho de servidor de aplicativo Codex fora do processo e Bedrock.

Os formatos de chamada de ferramenta e peculiaridades do provedor são normalizados por adaptadores de transporte, então, no nível do loop, a superfície do modelo parece idêntica, independentemente do que está por trás.

Isso significa que o failover do provedor é real, e trocar modelos é genuinamente sem código.

Consequência prática para seu bolso: você não executa um modelo.

Em auxiliary no config.yaml, cada tarefa secundária, execuções do curador, visão, embeddings, geração de títulos, pesquisa de sessão, o sumarizador de compressão, pode fixar seu próprio provedor, modelo, base_url e esforço de raciocínio.

Então, seu modelo de raciocínio caro nunca queima tokens resumindo um chat antigo ou nomeando uma sessão.

Também há smart_model_routing para enviar turnos difíceis para o modelo forte e todo o resto para um barato.

Configuração mais barata e sensata: Nous Portal (uma assinatura, 300+ modelos + o Tool Gateway para web/navegador/imagem/TTS) como principal, um modelo barato fixado para todo o trabalho auxiliar, Ollama/vLLM local como um fallback gratuito. Se for local, o Ollama padrão é um contexto de 4k e trunca silenciosamente, defina num_ctx para 64k+ ou o agente ficará burro e você culpará o modelo.

A coisa que você deve entender antes de tocar no config: o prompt tem formato de cache

Esta é a invariante que todo o sistema é construído para proteger, e se você não entender, vai silenciosamente multiplicar sua conta por 10.

O Hermes compõe o prompt do sistema em três níveis:

  1. estável
  2. contexto
  3. volátil
gemchanger - inline image

O nível estável carrega a identidade (SOUL.md), orientação de ferramenta para apenas ferramentas habilitadas, o índice de habilidades, dicas de ambiente. O contexto é derivado do diretório de trabalho atual (cwd). O volátil muda a cada turno. A hierarquia é explícita no código por uma razão: validade do cache de prefixo do prompt. Os provedores armazenam em cache o prefixo do seu prompt e cobram tokens em cache por uma fração do preço. Cada vez que o nível estável muda, você quebra esse cache e paga o valor integral por tudo.

Então, o Hermes trata a alteração do contexto como quase sagrada. Pelas próprias regras de engenharia do agente: a única vez que ele altera deliberadamente o contexto é durante a compressão. Comandos de barra que alteram o estado do prompt do sistema (instalar uma habilidade, ativar/desativar uma ferramenta) usam como padrão a invalidação adiada, a mudança entra em vigor na próxima sessão, com uma flag --now opcional para quando você realmente precisar dela ao vivo. /skills install --now é o padrão canônico de "aceito a quebra de cache".

Por que você, como analista, deve se importar: cada habilidade que você ativa e cada ferramenta que você liga vive nesse nível estável e custa tokens de prefixo em cada chamada. Um agente inchado com 60 ferramentas habilitadas está pagando por todas as 60 descrições em cada turno para sempre. Conjuntos de ferramentas enxutos e habilidades sob demanda não são organização, são o modelo de custo.

Compressão é linhagem, não truncamento

Quando o contexto se enche, agentes ingênuos descartam turnos antigos e ficam com amnésia.

O Hermes executa duas camadas de compressão independentes:

  1. uma rede de segurança de "higiene de sessão" do gateway que dispara por volta de 85% do contexto em uma estimativa aproximada antes mesmo do agente ser executado
  2. a real, o ContextCompressor no loop que dispara por volta de 50% usando contagens de tokens precisas relatadas pela API.

Ele sumariza os turnos do meio em uma nova mensagem em vez de deletá-los, e as sessões rastreiam a linhagem pai-filho para cada divisão de compressão. O resumo se torna parte da transcrição; o original é preservado na linhagem.

gemchanger - inline image

Com perdas é aceitável, sem perdas causaria falta de memória (OOM).

As sessões são infraestrutura, não apenas transcrições.

Elas carregam tags de origem e metadados de roteamento, e há uma ferramenta session_search voltada para o modelo mais um índice FTS5 SQLite sobre cada turno passado. Seu agente pode lembrar "o que concluí sobre a COIN há três semanas" durante o raciocínio, não porque você colocou no contexto, mas porque ele pode consultar seu próprio histórico sob demanda.

Onde é executado

Seis backends de terminal:

  1. local
  2. Docker
  3. SSH
  4. Singularity
  5. Modal
  6. Daytona

Modal e Daytona são serverless, o ambiente hiberna ocioso e acorda sob demanda, custando quase nada entre as execuções.

Uma VPS de $5 ou uma caixa serverless em hibernação é o verdadeiro "$5". Conecte o gateway e o mesmo agente é executado em mais de 20 plataformas (Telegram, Discord, Slack, Signal, …) em roteamento de sessão unificado, então você fala com ele do seu telefone enquanto ele trabalha na caixa em nuvem.

As sessões sobrevivem a reinicializações via SQLite no modo WAL com uma camada de repetição personalizada para contenção de gravação de múltiplos processos, para que trabalhos cron e trabalho do gateway não se corrompam.

PARTE 2 - EDUQUE-O PARA SER UMA MÁQUINA FINANCEIRA

Um agente simples é um estagiário brilhante sem treinamento de domínio e sem disciplina de julgamento. Você literalmente o educa através de quatro canais: identidade, manuais, memória e padrões. Então ele se autoeduca, e seu verdadeiro trabalho se torna curadoria.

2a. Identidade - SOUL.md é o slot #1

SOUL.md é literalmente a primeira coisa no prompt do sistema, antes das ferramentas, antes das habilidades, antes de tudo. É a camada de persona e valores.

Para um analista financeiro, é aqui que você define o temperamento epistêmico, não enfeites de personalidade.

Coisas como: "Você é um analista cético do lado comprador. Você desconfia de números redondos e narrativas. Você nunca afirma um número que não extraiu de uma ferramenta nesta sessão.

Você prefere dizer 'dados insuficientes' a adivinhar. Você trata suas próprias conclusões anteriores como prioris a serem atualizados."

Isso fica no nível estável do cache e colore cada turno de graça. A maioria das pessoas deixa o SOUL.md padrão. Para um analista, são seus 1.500 caracteres mais alavancados.

2b. Manuais - habilidades, e por que a descrição é a verdadeira engenharia

Uma habilidade é um SKILL.md, nome + descrição + procedimento, armazenado em ~/.hermes/skills/.

Apenas as descrições curtas ficam no índice de habilidades sempre carregado.

O procedimento completo é carregado sob demanda quando uma tarefa corresponde. Portanto, sua biblioteca de habilidades pode ser enorme sem inchar o prefixo.

O que significa que a descrição é onde a habilidade tem sucesso ou falha.

É um roteador. Se a descrição for vaga, o agente nunca carrega a habilidade quando deveria, ou a carrega quando não deveria. Escreva descrições como condições de gatilho, não resumos.

"Use quando o usuário nomear uma ação listada nos EUA e quiser uma leitura fundamental" é melhor do que "analisa ações."

Uma habilidade de analista real, observe os padrões da seção 2d incorporados diretamente no procedimento:

markdown
1---
2name: equity-snapshot
3description: Use quando o usuário nomear um ticker listado nos EUA e quiser uma leitura fundamental + de preço com flags de risco.
4---
5
6# Equity Snapshot
7
81. Resolver ticker -> CIK via o mapa company_tickers da SEC. NUNCA adivinhar um ticker.
92. Buscar o último 10-K/10-Q (receita, dívida, FCF) via EDGAR. Registrar o número de accession.
103. NUNCA calcular índices você mesmo. Chamar a ferramenta calc para P/L, margens, YoY.
114. Cruzar a receita em duas fontes. Se elas discordarem, RELATAR a lacuna, não escolher uma.
125. Saída: tese (2 linhas), 3 catalisadores, 3 riscos, leitura de valuation, confiança 0-1,
13 e "qual ponto de dados inverteria isso." Se os dados forem escassos, retornar "passar."

As habilidades suportam ativação/desativação por plataforma, ativação condicional baseada na disponibilidade da ferramenta e validação de pré-requisitos, para que uma habilidade possa declarar "disponível apenas se a ferramenta EDGAR estiver presente."

O formato é o padrão aberto agentskills.io, então o que você escreve é portátil para outros agentes compatíveis.

2c. O loop de autoaperfeiçoamento e a manutenção

O agente escreve suas próprias habilidades.

Depois de resolver algo através de tentativa e erro (tipicamente uma tarefa com várias chamadas de ferramenta), ele salva a abordagem funcional como um SKILL.md em agent_created/.

A ferramenta de gerenciamento de habilidades tem seis ações e a que você precisa saber é patch: uma correção direcionada, preferida em relação a reescritas de edição completa porque é eficiente em tokens.

O agente literalmente refina seus próprios manuais em tempo real durante o uso.

Sem manutenção, as auto-habilidades metastatizam.

Você acaba com dezenas de manuais estreitos e sobrepostos queimando tokens de prefixo e poluindo o roteador.

gemchanger - inline image

O Curador cuida disso, e sua mecânica vale a pena conhecer. Ele não é um daemon cron, ele é executado em uma verificação de inatividade: aproximadamente quando 7 dias se passaram desde sua última execução e o agente está ocioso por 2+ horas, um fork em segundo plano é iniciado com seu próprio cache de prompt, nunca tocando na conversa ativa, e executa um loop de revisão LLM que arquiva automaticamente habilidades obsoletas (para .archive/, restaurável, nada é perdido).

A configuração fica em curator no config.yaml: interval_hours, min_idle_hours, stale_after_days, archive_after_days.

Trate as auto-habilidades como rascunhos de estagiário. hermes curator review para examiná-las, fixe as genuinamente boas para que sobrevivam, deixe o resto ser arquivado. Cuidar deste loop é a educação.

Um agente sem curadoria piora com o tempo, não melhora.

2d. Padrões - a disciplina, classificada por quanto ela economiza para você

Estas são as regras que você incorpora no SOUL.md e em cada SKILL.md. Em ordem de impacto.

1. Proíba aritmética. LLMs preveem tokens. Esta é a principal fonte de números errados com confiança. A implementação limpa usa execute_code (abordado na seção 2e) para que um script determinístico faça a matemática e o modelo apenas decida as entradas e interprete as saídas.

Um DCF que o modelo "estimou" é ficção; um que um script calculou e o modelo testou sob estresse é produto.

2. Comprovantes em cada número. Cada número retorna com sua fonte e data de referência anexadas, nunca solto. O renderizador descarta qualquer coisa sem comprovante.

A recompensa é adversarial: quando duas fontes discordam, a discordância é o sinal.

3. Apenas ponto no tempo. O viés de olhar para frente é o assassino silencioso de todo backtest e de toda captura de tela "eu previ". As APIs servem dados reafirmados e atuais por padrão.

Marque os fatos com datas de referência e limite o agente apenas ao que era conhecível na data da decisão.

4. Adversarial por construção. Um subagente constrói o caso de alta, um segundo recebe a ordem de matá-lo, um terceiro reconcilia com uma confiança declarada. O valor está inteiramente nos objetivos serem genuinamente opostos, não na contagem de agentes.

Modelos com alinhamento neutro são importantes aqui porque eles defenderão o caso de baixa com força em vez de suavizá-lo até virar mingau.

5. Licença para se abster. Force "qual ponto de dados inverteria isso" em cada chamada.

Se esse é um dado que o agente não tem, a resposta é nenhuma posição.

2e. O movimento avançado: chamada de ferramenta programática colapsa pipelines a custo de contexto zero

Este é o recurso que, uma vez que você entende, muda como você constrói cada fluxo de trabalho de analista.

Normalmente, um pipeline de várias etapas queima um turno de LLM por etapa: "Vou pesquisar… agora vou ler… agora vou resumir… agora vou escrever."

Cada etapa mecânica custa tokens de inferência e polui o contexto com lixo intermediário.

execute_code acaba com isso

O agente escreve um script Python que chama as próprias ferramentas do Hermes através de um RPC de socket de domínio Unix. O script é executado em um processo filho; as chamadas de ferramenta viajam pelo socket de volta para o pai e são despachadas através do mesmo manipulador que as chamadas de ferramenta normais.

Criticamente: apenas a saída print() do script retorna para o modelo. Resultados intermediários da ferramenta nunca entram na janela de contexto.

python
1# o agente escreve isso UMA VEZ; o modelo está envolvido apenas no ponto de decisão
2from hermes_tools import edgar_fetch, market_price, calc
3
4tickers = ["TSLA", "NVDA", "COIN"]
5rows = []
6for t in tickers:
7 f = edgar_fetch(t, form="10-Q") # chamada de ferramenta via RPC
8 px = market_price(t) # chamada de ferramenta via RPC
9 pe = calc("pe", price=px["last"], eps=f["eps"]) # matemática determinística, não o LLM
10 rows.append({"ticker": t, "pe": pe, "src": f["accession"], "as_of": f["period_end"]})
11
12print(rows) # APENAS isso atinge a janela de contexto

Para um analista financeiro, isso é enorme.

Uma varredura matinal em 20 tickers com três chamadas de ferramenta cada são 60 chamadas de ferramenta que, feitas convencionalmente, explodiriam seu contexto e seu orçamento de tokens.

Como script, é um turno, uma tabela impressa limpa, matemática feita deterministicamente em linha. Você dobra pipelines inteiros em inferências únicas e o modelo só pensa nos pontos que realmente precisam de julgamento. Construa seus fluxos de trabalho de analista recorrentes como scripts execute_code envoltos em habilidades. (Apenas Linux/macOS, precisa de sockets de domínio Unix.)

2f. Memória - fatos vs. modelo do usuário

A memória do Hermes consiste em três mecanismos ortogonais (a estrutura de "3 camadas" é uma simplificação de ensino, no código eles são independentes):

  • MEMORY.md - fatos duráveis. Limite de ~2.200 caracteres.
  • USER.md - o modelo de você. Limite de ~1.375 caracteres.
  • SessionDB - SQLite, WAL, FTS5 sobre cada turno passado, consultado via session_search.

Um MemoryStore lê MEMORY.md e USER.md uma vez no início da sessão e os incorpora como um único bloco imutável no prompt do sistema.

O agente pode escrever nesses arquivos no meio da sessão e as gravações vão para o disco, mas a cópia no prompt não muda até a próxima sessão, porque alterá-la quebraria o cache de prefixo (a mesma invariante de todos os outros lugares).

Mais 8 provedores externos opcionais (modelagem de usuário dialética do Honcho, Mem0, Hindsight, Supermemory…), seleção única, hermes memory setup.

Os limites de caracteres são um recurso. Eles forçam você a manter USER.md como infraestrutura de alto sinal, não um depósito de lixo.

Para um analista, USER.md é seu mandato: tolerância ao risco, horizonte, as métricas nas quais você realmente age, formato de saída.

MEMORY.md é para fatos duráveis que o agente conquistou ("A receita da COIN se alinha melhor com o 10-K do que com o FMP").

SessionDB como seu placar, armazene cada chamada, pontue-a contra os resultados, e o agente atualiza os prioris enquanto você aprende sua calibração, onde ele é preciso e onde é cronicamente excessivamente otimista. Esse mapa de calibração é um alfa que nenhum varejista se dá ao trabalho de coletar.

2g. Quando os prompts não são suficientes: GAPA, depois RL

Antes de recorrer ao fine-tuning: o Hermes tem GAPA, otimização sistemática de prompts para seu SOUL.md, instruções de habilidade e prompts do sistema, em vez de ajustes manuais de tentativa e erro.

Tente quando o desempenho estagnar.

Além disso, o Hermes faz geração de trajetória em lote e exporta rastros no formato ShareGPT para SFT, e há um caminho de RL (Atropos) para realmente ajustar o comportamento de chamada de ferramenta em suas próprias trajetórias. Este é o teto real de "educá-lo", termina treinando um modelo em como seu analista funciona.

PARTE 3 - ESTENDA-O: REPOSITÓRIOS, MCP, SERVIÇOS

MCP: separe o registro da exposição

Adicione servidores via CLI ou config.yaml; o agente lista suas ferramentas na inicialização e as registra junto com as integradas. Disciplina chave, espelhando a lógica de cache acima: use a lista de permissões com tools.include para expor apenas o que você precisa, porque cada ferramenta exposta custa tokens de prefixo e amplia sua superfície de ataque.

bash
1hermes mcp add github --command npx --args "-y,@modelcontextprotocol/server-github"
2hermes mcp configure github # ativar/desativar ferramentas individuais
yaml
1mcp_servers:
2 filesystem:
3 command: npx
4 args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/voce/pesquisa"]
5 tools: { include: [read_file, list_directory] } # somente leitura, sem gravações

/reload-mcp para aplicar.

Composio MCP é o código de trapaça, um servidor, centenas de conexões SaaS; as pessoas constroem agentes financeiros no Hermes puxando dados de mercado e escrevendo relatórios no Google Docs inteiramente através dele. E hermes mcp serve executa o Hermes como um servidor MCP, expondo seu histórico de sessão para que o Claude Desktop ou o Cursor possam consultar o que seu analista encontrou, o agente se torna uma base de conhecimento que suas outras ferramentas leem.

As fontes de dados (classificadas: espinha dorsal vs. enfeite)

Espinha dorsal Cripto:

DefiLlama

(gratuito, sem chave, sem limite de taxa real, TVL/taxas/rendimentos/preços, metade dos painéis pagos são reformulações)

+ Helius

(rei da Solana, análise de transação aprimorada transforma sopa de bytes em swaps legíveis).

Enfeite:

Birdeye (OHLCV+websocket), Jupiter (roteamento/cotações), Dune+Flipside (SQL on-chain), Bitquery (GraphQL multicadeia), Nansen/Arkham (rótulos, pagos).

Espinha dorsal TradFi:

FRED

(St Louis Fed, macro gratuito de maior sinal, os dados que as mesas realmente observam)

+ edgartools

(MIT, sem chave, financeiros tipados de 10-Ks com números de accession).

Enfeite:

Finnhub (melhor nível gratuito), FMP (índices pré-calculados), Polygon/Tiingo (histórico limpo), yfinance (fita adesiva, quebra silenciosamente), GDELT (eventos de notícias globais).

Armadilha: os níveis gratuitos são apertados (Alpha Vantage ~2 dúzias de chamadas/dia). Você vai pensar que seu código quebrou. Armazene tudo em cache e use pools de credenciais (config.yaml) para alternar entre várias chaves automaticamente e sobreviver aos limites de taxa.

Repositórios que valem seu tempo

  • NousResearch/hermes-agent

Leia os documentos do guia do desenvolvedor: arquitetura, loop do agente, compressão e cache de contexto. O DeepWiki e os espelhos mudrii/hermes-agent-docs são bons para os detalhes internos.

gemchanger - inline image
  • 0xNyk/awesome-hermes-agent

Habilidades, ferramentas, servidores MCP, integrações selecionadas. Comece aqui. Centrais de habilidades: o Hub oficial (680+ habilidades, 18 categorias), skills.sh, ClawHub.

gemchanger - inline image
  • OpenBB-finance/OpenBB

Bloomberg de código aberto que envia servidores MCP, então ele se conecta diretamente ao Hermes e entrega ao agente uma enorme superfície de dados de mercado + análise através de uma interface. O único complemento de maior alavancagem.

gemchanger - inline image
  • polakowo/vectorbt

Backtesting rápido como Numba, milhares de variações em segundos. Envolva em uma habilidade para que o agente teste cada hipótese antes de você confiar nela.

gemchanger - inline image
  • TauricResearch/TradingAgents (+ auronsun/TradingAgents-crypto)

Simulador de firma de trading multiagente. Leia pela estrutura, depois construa a versão mais enxuta de subagente de alta/baixa que você entende. microsoft/qlib e nautechsystems/nautilus_trader para estratégias sistemáticas reais. wilsonfreitas/awesome-quant como o mapa de bibliotecas.

gemchanger - inline image
Salvar com um clique

Faça leitura profunda de artigos virais com IA no YouMind

Salve a fonte, faça perguntas específicas, resuma o argumento e transforme um artigo viral em notas reutilizáveis em um único espaço de trabalho com IA.

Explorar o YouMind
Para criadores

Transforme seu Markdown em um artigo 𝕏 impecável

Quando você publica seus próprios textos longos, formatar imagens, tabelas e blocos de código para o 𝕏 é uma dor de cabeça. O YouMind transforma um rascunho completo em Markdown em um artigo 𝕏 impecável e pronto para publicar.

Experimente Markdown para 𝕏

Mais padrões para decifrar

Artigos virais recentes

Explorar mais artigos virais