OpenInvestOp

Motor de decisão de investimento de nível de pesquisa para agentes de IA: comitê multiagente isolado, vereditos auditáveis, backtests com proteção contra lookahead, resultados negativos publicados

Documentação

owl-02-lineart-gold

openInvest

Um mecanismo de decisão de investimento auto-hospedado, construído para agentes de IA modernos. Isolamento de informações multiagente e protocolo de desafio cruzado, fornecendo uma trilha de decisão auditável (Audit Trail).

Python Agents License Stars Glama MCP server

📚 Wiki de Arquitetura Completa · 🇨🇳 Versão em Chinês


O que é o OpenInvest?

O OpenInvest é um mecanismo de decisão de investimento auto-hospedado, construído para agentes de IA modernos.

Ele fornece um comitê de investimento verificável, raciocínio baseado em evidências, backtesting de longo horizonte e registros de decisão auditáveis. Em vez de substituir o Claude Code, Codex, Hermes ou OpenClaw, o OpenInvest foi projetado para potencializá-los.


Desempenho ao Vivo e PnL

PnL chart O feed de dados é atualizado automaticamente a cada 2 horas usando `jobs/pnl_snapshot` e enviado para o branch pnl-data
Metade superior: tendência do valor patrimonial líquido de 30 dias · Metade inferior: comparação do valor patrimonial líquido com 8 ativos de referência (divulgação transparente, não é uma alegação de alfa—o valor comprovado do comitê é disciplina e transparência, não retorno excessivo, veja ADR-023)
📌 Nota: O gráfico atual mostra o portfólio de produção ao vivo do autor. Após o auto-hospedagem, o sistema renderizará automaticamente sua própria curva de patrimônio com base nas participações definidas no seu diretório `memory/`.
  • Portfólio de Referência: O sistema introduz 8 benchmarks de controle padrão em 4 quadrantes (Assessores de IA / Fundos mútuos / Gestão de patrimônio / Índice de mercado amplo). Para detalhes sobre a metodologia de comparação e a lógica de limpeza de dados, veja docs/wiki/README.md.

Pesquisa e Falsificação

Autodeclaração do Sistema: Este sistema é uma ferramenta de auditoria para eliminar vieses cognitivos humanos em investimentos e impor transparência de raciocínio, não uma caixa-preta que amplifica retornos. Última auditoria automatizada (docs/verdict_accuracy.md): Vereditos direcionais (excluindo HOLD) têm uma taxa de acerto real de 42,2% (n=56, abaixo do aleatório); HOLD representa 56% de todas as decisões. O valor do sistema está na transparência e disciplina (permanecendo majoritariamente inativo, baixo turnover), não na previsão direcional. O fluxo de logs detalhado pode ser encontrado em docs/verdict_accuracy.md.

Este projeto tenta sistematicamente falsificar sua própria vantagem e publica resultados negativos como estão. As características determinísticas que o comitê lê, e os sinais de timing ao redor delas, foram testados contra portões estatísticos pré-registrados — nenhum sobreviveu como alfa negociável.

TesteResultadoVeredito
Seleção de ações transversal Q16 características, IC médio 0,025–0,067, Holm corrigido p=0,397Sem sinal significativo de seleção de ações
GBM multivariado M1 (fora da amostra)IC OOS médio +0,003, p=0,925A combinação de características também não ajuda — sem sinal
Tendência Q2 ouro MA200p_holm=0,016, significativo — mas trend_dca mostra que é beta, não alfa negociável: valor terminal de timing 3,07 vs 15,10 comprar e manter, Sharpe +0,36 vs +0,68, drawdown máximo mais profundo (−57% vs −44%)Estatisticamente significativo, economicamente não negociável
Famílias de múltiplos sinais por ativo3 ativos × 4 famílias de sinais × grade de parâmetros = 24 variantes por ativo; após custos + deflação DSR, nenhuma passa DSR > 0,95Sem sinal negociável em nenhuma família
Controle positivoUm sinal de timing trapaceiro com previsão perfeita pontua DSR = 1,00O harness consegue detectar um sinal real

Metodologia: Estatísticas t de Newey-West HAC, Índice de Sharpe Deflacionado (Bailey & López de Prado 2014, re-derivado equação por equação), correção de Holm, zero lookahead e sondas de corte de treinamento de LLM.

Detalhes: experiments/signal-eval/README.md · docs/verdict_accuracy.md · ADR-022 · ADR-023


Filosofia do Produto

A maioria dos assistentes de investimento com IA tenta se tornar melhores chatbots. O OpenInvest, em vez disso, constrói um mecanismo de decisão transparente, verificável e auditável que se conecta a agentes pessoais como Claude Code, Codex, Hermes e OpenClaw — cada melhoria nesses agentes torna automaticamente o OpenInvest mais capaz.

A divisão de trabalho é deliberada: seu agente cuida da memória de longo prazo, conversa natural e compreensão do usuário; o OpenInvest cuida do comitê de investimento verificável, raciocínio baseado em evidências, backtesting de longo horizonte e registros de decisão auditáveis.

                   User
                     │
         ┌───────────┴───────────┐
         ▼                       ▼
    Your Agent             OpenInvest
(User Understanding)   (Market Understanding)
         │                       │
         └───────────┬───────────┘
                     ▼
            Better Investment Decisions

Seu agente conhece você. O OpenInvest conhece investimentos.

Evitando a Propriedade do Usuário

O OpenInvest evita intencionalmente "possuir" o usuário. A maioria dos produtos de IA tenta possuir tudo—memória, persona, histórico de chat e espaços de trabalho. O OpenInvest fica em segundo plano. Ele expõe APIs limpas, comandos CLI e habilidades de agente (Claude Code / Codex / Hermes / OpenClaw), permitindo que seu agente principal gerencie a conversa e o contexto enquanto o OpenInvest potencializa a inteligência de investimento subjacente.


Recursos

  • Comitê de Investimento Multiagente: Análise isolada e debate de réplica em rodadas.
  • Arquitetura Coordenador-Trabalhador: Previne contaminação de contexto e alucinação de papéis.
  • Isolamento de Informações: Bloqueia rigidamente analistas quantitativos e de risco de contextos fora dos limites.
  • Trilha de Decisão Auditável: Logs limpos mostrando exatamente o "porquê" de cada decisão.
  • Markdown como Banco de Dados: Frontmatter (YAML) + Markdown (Corpo) como fonte única de verdade.
  • Backtesting de Longo Horizonte: Harness de teste integrado com proteções contra viés de lookahead.
  • Consolidação de Memória Baseada em Sonhos: Destilação noturna de memória para prevenir desvio de contexto.
  • Auto-Hospedado / Custo Zero: Alimentado diretamente pelos recursos de raciocínio do seu agente local.
  • Habilidade de Agente: Plugin leve para Claude Code / Codex / Hermes / OpenClaw, com assistente de bootstrap interativo.
  • Implantação Automatizada: Fluxo de trabalho do GitHub Actions para executar o comitê e enviar relatórios por e-mail diariamente.

Início Rápido

1. Integre com seu agente (Recomendado)

Adicione a habilidade leve do registro de plugins do seu agente. O agente host puxará automaticamente o código central e alinhará as dependências na primeira execução:

# Claude Code
/plugin marketplace add longsizhuo/openInvest
/plugin install invest@openinvest

# Codex
codex plugin marketplace add longsizhuo/openInvest

# Hermes Agent
hermes plugins install longsizhuo/openInvest --enable

# OpenClaw
openclaw plugins install clawhub:openinvest

Qualquer outro cliente MCP: registre o servidor MCP do passo 2 abaixo (tutorial completo no tutorial do agente).

2. Autônomo — servidor MCP ou CLI (sem necessidade de clone)

O backend é distribuído no PyPI; ~/openInvest contém apenas seus dados:

# MCP (18 tools, any MCP client; add --http for a remote streamable-HTTP server — BETA)
claude mcp add openinvest -e INVEST_HOME=~/openInvest -- uvx openinvest-mcp

# or plain CLI
INVEST_HOME=~/openInvest uvx openinvest status

Envie set up invest (ou 帮我初始化 invest) para qualquer terminal de IA com habilidade habilitada. O sistema acionará um assistente de bootstrap interativo para guiá-lo através de:

  1. Detecção do caminho de armazenamento de estado memory/ e configuração .env.
  2. Perfilamento em 5 dimensões (Nome legal, Capacidade de risco, Estrutura de dívida, Participações iniciais e chaves opcionais).
  3. Execução de migração de dados estática para gerar imediatamente seu primeiro memorando de exposição de ativos.

💡 Execução de Custo Zero: No modo interativo de habilidade, o raciocínio subjacente do comitê depende inteiramente do pipeline de raciocínio do agente host (ex.: Claude Code). Nenhuma chave de API de terceiros é consumida. Você só precisa configurar uma chave de API ao configurar crons automatizados ou chamar APIs Web independentes.

Para detalhes de auto-hospedagem, veja docs/QUICK_START.md. (A GUI Web incluída foi aposentada em 2026-07-05 — todos os recursos são expostos via CLI/MCP; um frontend autônomo pode voltar mais tarde.)

3. Auto-Hospedagem Serverless (GitHub Actions)

Execute o comitê automaticamente via GitHub Actions e receba e-mails de resumo diários.

⚠️ O fork deve ser definido como Privado: Arquivos de estado (participações, vereditos) serão commitados de volta ao seu fork. Forks públicos vazarão suas informações financeiras privadas.

  1. Faça um fork deste repositório e altere sua visibilidade para Privado (Configurações -> Visibilidade).
  2. Execute set up invest localmente para gerar a pasta inicial memory/, depois faça commit e push para seu fork privado:
    git add -f memory/ && git commit -m "chore: init memory state" && git push
    
  3. Nas Configurações -> Segredos e variáveis -> Actions do seu fork, adicione os seguintes Segredos:
    • LLM_API_KEY (ou DEEPSEEK_API_KEY): chave de API para executar o comitê.
    • EMAIL_SENDER / EMAIL_PASSWORD: endereço Gmail + Senha de aplicativo.
    • DIGEST_EMAIL_TO: endereço de e-mail do destinatário.
  4. Habilite Workflows na aba Actions. O workflow é executado automaticamente às 10:00 (horário de Pequim) diariamente; você também pode acionar manualmente daily-report via Run workflow.

Arquitetura e Orquestração Multiagente

O openInvest não executa um debate simulado em uma única sessão de LLM. O sistema impõe um Contrato de Isolamento de Informações na camada core/committee/, orquestrando 4 processos LLM independentes em um grafo acíclico direcionado (DAG):

                [ Macro Data Injection ]
                           │
                 ▼ 1. Macro Alignment Context
             ┌──────────────────────────┐
             │    Macro Strategist      │ (VIX / Interest rate spread / Currency momentum)
             └─────────────┬────────────┘
                           │
                 ▼ 2. Async Multi-Dimensional Scrutiny (Async DAG)
             ┌─────────────┴────────────┐
             ▼                          ▼
   ┌──────────────────┐        ┌──────────────────┐
   │  Quant Analyst   │        │   Risk Officer   │
   │ (RSI / Momentum) │        │ (Concentration)  │
   │                  │        │                  │
   │ 🛑 No Holdings   │        │ 🛑 No Indicators │
   └─────────┬────────┘        └─────────┬────────┘
             │                           │
             └─────────────┬─────────────┘
                           │
             ▼ 3. Round 2 Rebuttal & Cross-Challenge
             │ Mutual feedback loop for signal correction
             ▼
   ┌──────────────────────────────────────────────┐
   │         Chief Investment Officer (CIO)       │
   └───────────────────────┬──────────────────────┘
                           │
             ▼ 4. Deterministic State Persistence
          [ BUY / ACCUMULATE / HOLD / TRIM / SELL ]
  1. Estrategista Macro: Avalia o panorama macro global (VIX, spread da curva de juros, matriz de moedas centrais) para estabelecer o limite de risco do portfólio.
  2. Analista Quantitativo: Um filtro puramente matemático de momentum e indicadores técnicos. Estritamente bloqueado de saber as participações do portfólio para eliminar apego humano e vieses de aversão à perda.
  3. Oficial de Risco: Foca inteiramente em riscos de cauda (buffers de drawdown, limites de concentração, multiplicadores de solvência). Estritamente bloqueado de indicadores técnicos para fazer determinações objetivas de exposição de ativos.
  4. Réplica da Rodada 2: Os analistas Quantitativo e de Risco recebem os relatórios da Rodada 1 um do outro na Rodada 2, desafiando limites até que os sinais convinjam ou válvulas de segurança sejam acionadas.
  5. CIO (Chief Investment Officer): Sintetiza os relatórios auditados e gera uma Verdict estruturada (COMPRAR / ACUMULAR / MANTER / REDUZIR / VENDER) com um nível de confiança. Nenhuma execução automática de ordens ocorre; a ação final permanece estritamente a cargo do auditor humano.

As principais compensações por trás deste design estão registradas como ADRs em docs/wiki/adr/ (24 até o momento), incluindo decisões que reverteram nossos próprios designs anteriores — ADR-007 aposentou a rota de CIO few-shot, e ADR-009 rejeitou agentes analistas estilo TA após um experimento pré-registrado.


Design Central

  • Padrão Coordenador-Trabalhador: Trabalhadores operam em namespaces isolados. Restrições de limite são codificadas na camada de framework em Python para prevenir contaminação de atenção em prompts multi-papéis grandes.
  • Markdown como Banco de Dados: O sistema usa Frontmatter (YAML) + Markdown (Corpo) como fonte única de verdade. Aproveitando fcntl.flock bloqueios de arquivo de processo e substituição atômica temporária de arquivos, fornece uma trilha de auditoria de investimento à prova de adulteração, rastreada nativamente pelo Git.
  • Consolidação de Sonhos em Três Fases: Destila decisões diárias contra resultados reais de mercado à noite (Sono Leve $\rightarrow$ REM $\rightarrow$ Sono Profundo) para consolidar insights de longo prazo, prevenindo desvio de contexto do Modelo de Linguagem Grande (LLM) ao longo de execuções longas.

Configuração

O sistema usa endpoints DeepSeek por padrão e suporta qualquer API padrão compatível com OpenAI. A configuração do provedor de LLM e todas as substituições de runtime ajustáveis (ADR-017) estão documentadas em docs/wiki/22-configuration.md.


Avisos Legais e Limitações de Backtest

  1. Sem Consultoria Financeira: Este sistema é uma ferramenta de apoio à decisão baseada em LLMs. Os memorandos de saída representam raciocínio simulado com base em dados determinísticos e não constituem aconselhamento de alocação de ativos.
  2. Trava de Tempo de Backtest e Proteção contra Lookahead: O mecanismo de backtest (scripts/backtest_runner.py) possui uma válvula de segurança embutida: ele rejeita backtests para decision_date > 2024-06-30 por padrão (substituível com --allow-lookahead). Como os modelos de fundação convencionais têm datas de corte de treinamento em meados de 2024, realizar backtests em intervalos posteriores introduz severo Viés de Lookahead (vazamento de pré-treinamento do modelo). O ajuste de parâmetros, varreduras Optuna e otimização de prompts devem ser executados estritamente em janelas históricas anteriores a 30 de junho de 2024.

Agradecimentos

  • MiMo — Agradecimentos especiais ao Laboratório Quantitativo MiMo por patrocinar inferência LLM de alto desempenho em nível de produção (alimentando varreduras de longo horizonte do mimo-v2.5-pro).
  • Guia de Sonhos OpenClaw — Fundamento teórico para o framework de destilação de memória em ciclo de sono de três fases.

Licença

Este projeto é licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.