openInvest: 현대 AI 에이전트를 위한 자체 호스팅 투자 의사결정 엔진
요약
OpenInvest는 현대 AI 에이전트를 위해 설계된 자체 호스팅 투자 의사결정 엔진입니다. 이 시스템은 다중 에이전트 정보 격리 및 교차 검증 프로토콜을 제공하여, 감사 가능한 투명한 의사결정 경로를 구축하는 데 중점을 둡니다. 이는 기존의 AI 코딩 도구(Claude Code, Codex 등)를 구동하기 위한 기반 환경 역할을 합니다.
핵심 포인트
- AI 에이전트 전용 자체 호스팅 투자 엔진입니다.
- 다중 에이전트 정보 격리 및 교차 검증 프로토콜을 제공합니다.
- 의사결정 경로(Audit Trail)가 투명하게 기록됩니다.
- 실시간 PnL 추이를 통해 시스템의 성과를 공개합니다.
openInvest
현대 AI 에이전트를 위해 구축된 자체 호스팅 투자 의사결정 엔진. 다중 에이전트 정보 격리 및 교차 검증 프로토콜을 제공하여 감사 가능한 의사결정 경로(Audit Trail)를 제공합니다.
OpenInvest란 무엇인가?
OpenInvest는 현대 AI 에이전트를 위해 구축된 자체 호스팅 투자 의사결정 엔진입니다.
이는 검증 가능한 투자 위원회, 증거 기반 추론, 장기 지평 백테스팅(long-horizon backtesting), 그리고 감사 가능한 의사결정 기록을 제공합니다. OpenInvest는 Claude Code, Codex, Hermes 또는 OpenClaw를 대체하는 것이 아니라, 이들을 구동하기 위해 설계되었습니다.
실시간 성과 및 PnL (Profit and Loss)
<div align="center"> <img src="https://raw.githubusercontent.com/longsizhuo/openInvest/pnl-data/docs/pnl_chart.svg" alt="PnL 차트" width="100%"/> <sub>데이터 피드는 `jobs/pnl_snapshot`을 사용하여 2시간마다 자동으로 업데이트되며, <a href="https://github.com/longsizhuo/openInvest/tree/pnl-data">pnl-data 브랜치</a>에 푸시됩니다.</sub> <br/> <sub>상단 절반: 30일 순자산가치(net asset value) 추이 · 하단 절반: 8개 벤치마크 자산 대비 순자산가치 비교 (투명 공개이며, <b style="color: red;">알파 주장(alpha claim)이 아닙니다</b>—위원회 가치가 초과 수익률이 아닌 규율과 투명성임을 확인하세요. <a href="docs/wiki/adr/023-honest-positioning-not-alpha.md">ADR-023</a> 참조)</sub> <br/> <sub>📌 <b style="color: red;">참고</b>: 현재 차트는 작성자의 실시간 운영 포트폴리오를 보여줍니다. 자체 호스팅 후에는 시스템이 `memory/` 디렉터리에 정의된 보유 자산을 기반으로 사용자의 고유한 주식 곡선(equity curve)을 자동으로 렌더링할 것입니다.</sub> </div>- 벤치마크 포트폴리오 (Benchmark Portfolio): 본 시스템은 4개 사분면(AI 어드바이저 / 뮤추얼 펀드 / 자산 관리 / 광범위 시장 지수)에 걸쳐 8가지 표준 통제 벤치마크를 도입합니다. 비교 방법론 및 데이터 클리닝 로직의 자세한 내용은 docs/wiki/README.md를 참조하십시오.
연구 및 반증 (Research & Falsification)
시스템 자체 공개 (System Self-Disclosure): 본 시스템은 수익을 증폭시키는 블랙박스가 아니라, **인간의 투자 인지 편향을 제거하고 추론 투명성을 강제하는 감사 도구(auditing tool)**입니다. 최신 자동 감사 결과(docs/verdict_accuracy.md): 방향성 예측(HOLD 제외)의 참 적중률은 42.2% (n=56, 랜덤 이하)이며, HOLD가 모든 결정의 **56%**를 차지합니다. 본 시스템의 가치는 방향성 예측이 아니라 투명성과 규율(대부분 비활성화 상태 유지, 낮은 거래 빈도)에 있습니다. 상세 로그 스트림은 docs/verdict_accuracy.md에서 확인할 수 있습니다.
본 프로젝트는 자체적인 우위성(edge)을 체계적으로 반증하려 시도하며, 부정적인 결과를 있는 그대로 공개합니다. 위원회가 읽는 결정론적 특징과 그 주변의 타이밍 신호들은 사전 등록된 통계 게이트에 대해 테스트되었으며, 어느 것도 거래 가능한 알파(alpha)로 살아남지 못했습니다.
| 테스트 | 결과 | 판정 (Verdict) |
|---|---|---|
| Q1 교차 단면 주식 선정 (cross-sectional stock picking) | 6개 특징, 평균-IC 0.025–0.067, Holm 보정 p=0.397 | 유의미한 주식 선정 신호 없음 |
| ... |
방법론: Newey-West HAC t-통계량, 디플레이티드 샤프 비율 (Deflated Sharpe Ratio) (Bailey & López de Prado 2014, 방정식별 재도출), Holm 보정, 제로 루카헤드(zero lookahead), 그리고 LLM 학습 차단기(training-cutoff) 탐지.
세부 정보: experiments/signal-eval/README.md · docs/verdict_accuracy.md · ADR-022 · ADR-023
제품 철학 (Product Philosophy)
대부분의 AI 투자 어시스턴트는 더 나은 챗봇이 되려고 노력합니다. 대신 OpenInvest는 Claude Code, Codex, Hermes, OpenClaw와 같은 개인 에이전트에 플러그인되는 투명하고 검증 가능하며 감사 가능한 의사결정 엔진을 구축합니다. 그러므로 해당 에이전트들이 개선될 때마다 OpenInvest의 역량도 자동으로 향상됩니다.
업무 분담은 의도적입니다: 사용자의 에이전트는 장기 기억, 자연스러운 대화, 사용자 이해를 처리하고; OpenInvest는 검증 가능한 투자 위원회, 증거 기반 추론, 장기 지평 백테스팅(backtesting), 그리고 감사 가능한 의사결정 기록을 처리합니다.
사용자
│
┌───────────┴───────────┐
...
사용자의 에이전트가 사용자를 알고 있습니다. OpenInvest는 투자를 압니다.
사용자 소유권 회피하기 (Avoiding User Ownership)
OpenInvest는 의도적으로 사용자에게 '소유'하려 하지 않습니다. 대부분의 AI 제품은 모든 것—기억, 페르소나, 채팅 기록, 작업 공간—을 소유하려고 합니다. OpenInvest는 한 발 물러서 있습니다. 이는 깨끗한 API, CLI 명령어, 그리고 에이전트 스킬(Claude Code / Codex / Hermes / OpenClaw)을 노출하여, 사용자의 주력 에이전트가 대화와 맥락을 관리하도록 하고 OpenInvest가 그 밑단의 투자 지능을 구동하게 합니다.
기능 (Features)
- 다중 에이전트 투자 위원회 (Multi-Agent Investment Committee): 고립된 분석 및 라운드별 반박 토론 진행.
- 코디네이터-워커 아키텍처 (Coordinator-Worker Architecture): 컨텍스트 오염(context contamination)과 역할 환각(role hallucination)을 방지합니다.
- 정보 격리 (Information Isolation): 계량 분석가(quant)와 위험 분석가(risk analyst)가 경계 밖의 컨텍스트에 접근하는 것을 엄격하게 차단합니다.
- 감사 가능한 의사 결정 경로 (Auditable Decision Trail): 각 결정이 "왜" 내려졌는지 보여주는 깨끗한 로그를 제공합니다.
- 데이터베이스로서의 마크다운 (Markdown-as-a-Database): 프론트매터(YAML) + 본문(Body)을 단일 진실 공급원(single source of truth)으로 사용합니다.
- 장기 예측 백테스팅 (Long-Horizon Backtesting): 미래를 미리 보는 편향(lookahead bias) 보호 기능이 내장된 테스트 하네스를 제공합니다.
- 꿈 기반 메모리 통합 (Dreaming-Based Memory Consolidation): 컨텍스트 드리프트(context drift)를 방지하기 위해 매일 밤 메모리를 정제합니다.
- 자체 호스팅 / 제로 코스트 (Self-Hosted / Zero-Cost): 사용자의 로컬 에이전트 추론 자원만으로 직접 구동됩니다.
- 에이전트 스킬 (Agent Skill): Claude Code / Codex / Hermes / OpenClaw용 경량 플러그인이며, 대화형 부트스트랩 위자드를 제공합니다.
- 자동 배포 (Automated Deployment): 커미티를 실행하고 매일 보고서를 이메일로 보내는 GitHub Actions 워크플로우를 지원합니다.
빠른 시작 (Quick Start)
1. 에이전트에 통합하기 (권장)
에이전트의 플러그인 레지스트리에서 경량 스킬을 추가하세요. 호스트 에이전트는 첫 실행 시 핵심 코드를 자동으로 가져오고 종속성을 정렬합니다:
# Claude Code
/plugin marketplace add longsizhuo/openInvest
/plugin install invest@openinvest
...
다른 MCP 클라이언트의 경우: 아래 2단계에서 MCP 서버를 등록하세요 (전체 워크스루는 에이전트 사용 가이드 참조).
2. 독립 실행형 — MCP 서버 또는 CLI (클론 불필요)
백엔드는 PyPI에서 제공되며, ~/openInvest에는 사용자의 데이터만 저장됩니다:
# MCP (모든 MCP 클라이언트; 원격 스트리밍-HTTP 서버를 추가하려면 --http 옵션 추가 — BETA)
claude mcp add openinvest -e INVEST_HOME=~/openInvest -- uvx openinvest-mcp
...
어떤 스킬이 활성화된 AI 터미널에 set up invest (또는 帮我初始化 invest)를 전송하세요. 시스템은 다음과 같은 과정을 안내하는 대화형 부트스트랩 마법사(interactive bootstrap wizard)를 실행합니다:
memory/상태 저장 경로 및.env설정을 감지합니다.- 5차원 프로파일링 (법적 이름, 위험 수용 능력, 부채 구조, 초기 보유 자산, 선택적 키).
- 정적 데이터 마이그레이션을 실행하여 첫 번째 자산 노출 메모(asset exposure memo)를 즉시 생성합니다.
💡 무료 실행: 스킬 대화형 모드에서 위원회의 근본적인 추론은 호스트 에이전트(예: Claude Code)의 추론 파이프라인에 전적으로 의존합니다. 제3자 API 키가 소모되지 않습니다. 자동 크론 작업 설정이나 독립적인 Web API 호출 시에만 API 키를 구성해야 합니다.
자가 호스팅 세부 정보는 docs/QUICK_START.md를 참조하세요. (번들된 Web GUI는 2026-07-05에 단종되었으며, 모든 기능은 CLI/MCP를 통해 노출됩니다. 독립형 프론트엔드는 나중에 다시 제공될 수 있습니다.)
3. 서버리스 자가 호스팅 (GitHub Actions)
GitHub Actions를 통해 위원회를 자동으로 실행하고 일일 요약 이메일을 받으세요.
⚠️ 포크는 반드시 비공개(Private)로 설정해야 합니다: 상태 파일(보유 자산, 판결)은 귀하의 포크에 커밋됩니다. 공개 포크는 귀하의 개인 금융 정보를 유출할 수 있습니다.
- 이 저장소(repository)를 포크(fork)하고 가시성(Visibility)을 Private로 변경하세요 (Settings -> Visibility).
- 로컬에서
set up invest를 실행하여 초기memory/폴더를 생성한 후, 이를 커밋하고 개인 포크에 푸시하세요:git add -f memory/ && git commit -m "chore: init memory state" && git push - 포크의 Settings -> Secrets and variables -> Actions에서 다음 Secret들을 추가하세요:
LLM_API_KEY(또는DEEPSEEK_API_KEY): 위원회(committee)를 실행하는 데 필요한 API 키.EMAIL_SENDER/EMAIL_PASSWORD: Gmail 주소 + 앱 비밀번호.DIGEST_EMAIL_TO: 수신자 이메일 주소.
- Actions 탭에서 Workflows를 활성화하세요. 워크플로우는 매일 오전 10시(베이징 시간)에 자동으로 실행되며, Run workflow를 통해
daily-report를 수동으로 트리거할 수도 있습니다.
아키텍처 및 다중 에이전트 오케스트레이션 (Architecture & Multi-Agent Orchestration)
openInvest는 단일 LLM 세션에서 모의 토론(mock debate)을 실행하지 않습니다. 이 시스템은 core/committee/ 계층에서 **정보 격리 계약(Information Isolation Contract)**을 강제하며, 방향성 비순환 그래프(directed acyclic graph, DAG) 내에서 4개의 독립적인 LLM 프로세스를 오케스트레이션합니다:
[ 거시 데이터 주입 (Macro Data Injection) ]
│
▼ 1. 거시 정렬 컨텍스트 (Macro Alignment Context)
...
- 매크로 전략가 (Macro Strategist): 포트폴리오의 위험 임계치를 설정하기 위해 글로벌 거시 환경(VIX, 수익률 곡선 스프레드, 핵심 통화 매트릭스)을 평가합니다.
- 퀀트 분석가 (Quant Analyst): 순수한 수학적 모멘텀 및 기술 지표 필터입니다. 인간의 애착과 손실 회피 편향을 제거하기 위해 포트폴리오 보유 현황을 알 수 없도록 엄격히 차단됩니다.
- 위험 담당관 (Risk Officer): 테일 리스크(drawdown 버퍼, 집중도 한계, 지급 능력 승수)에 전적으로 초점을 맞춥니다. 객관적인 자산 노출 결정이 이루어지도록 기술 지표로부터 엄격히 차단됩니다.
- 2차 반박 (Round 2 Rebuttal): 퀀트 분석가와 위험 담당관은 2차에서 서로의 1차 보고서를 전달받아, 신호가 수렴하거나 안전장치가 작동할 때까지 경계를 두고 상호 검증합니다.
- CIO (Chief Investment Officer): 감사된 보고서들을 종합하여 구조화된
Verdict(BUY / ACCUMULATE / HOLD / TRIM / SELL)와 함께 신뢰 수준을 산출합니다. 자동 주문 실행은 발생하지 않으며, 최종 조치는 여전히 인간 감사자의 책임으로 남습니다.
이 설계의 핵심적인 트레이드오프는 docs/wiki/adr/에 ADR로 기록되어 있습니다 (현재까지 24개). 여기에는 우리 자신의 초기 설계를 뒤집은 결정들(예: ADR-007는 few-shot CIO 경로를 폐기했고, ADR-009는 사전 등록된 실험 후 TA 스타일 분석가 에이전트를 거부했습니다)도 포함됩니다.
핵심 설계
- Coordinator-Worker 패턴: Worker들은 격리된 네임스페이스에서 작동합니다. 대규모 다중 역할 프롬프트에서 주의력 오염(attention contamination)을 방지하기 위해 Python의 프레임워크 계층에 경계 제약 조건이 하드코딩되어 있습니다.
- 데이터베이스로서의 마크다운: 시스템은 Frontmatter (YAML) + Markdown (본문)을 단일 진실 공급원(single source of truth)으로 사용합니다.
fcntl.flock프로세스 파일 잠금 및 임시 원자적 파일 교체를 활용하여, Git에 의해 네이티브하게 추적되는 변조 방지 투자 감사 기록을 제공합니다. - 3단계 드림 통합: 일일 결정을 실제 시장 결과와 밤마다 비교(얕은 수면 $
ightarrow$ REM $
ightarrow$ 깊은 수면)하여 장기적인 통찰력을 통합하고, 긴 실행 기간 동안 대규모 언어 모델(LLM)의 컨텍스트 드리프트(context drift)를 방지합니다.
설정 (Configuration)
이 시스템은 DeepSeek 엔드포인트를 기본값으로 사용하며 모든 표준 OpenAI 호환 API를 지원합니다. LLM 제공업체 설정 및 모든 조정 가능한 런타임 오버라이드는 ADR-017에 문서화되어 있습니다. 또한, docs/wiki/22-configuration.md에서도 확인할 수 있습니다.
면책 조항 및 백테스트 제한 사항 (Disclaimers & Backtest Limitations)
AI 자동 생성 콘텐츠
본 콘텐츠는 개발 자료 GitHub · 9b2255ca의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기