HKUDS/Vibe-Trading
요약
Vibe-Trading은 에이전트에게 포괄적인 트레이딩 능력을 부여하는 프레임워크로, 다양한 브로커 커넥터를 통해 주문 실행 및 데이터 조회를 지원합니다. 보안을 위해 권한 기반 주문 실행(Bounded order placement)과 감사 원장, 킬 스위치 등의 안전 장치를 제공합니다.
핵심 포인트
- Tiger, Binance 등 6개의 신규 브로커 커넥터 추가
- 권한 기반 주문 실행 및 모의 계정 테스트 지원
- 보안을 위한 킬 스위치 및 감사 원장 시스템 포함
- 36개의 MCP 도구 및 CLI/REST/Web 인터페이스 제공
English | 中文 | 日本語 | 한국어 | العربية
단 한 번의 명령으로 에이전트에게 포괄적인 트레이딩 (Trading) 능력을 부여하세요
Website · Docs · News · Features · Shadow Account · Demo · Quick Start · Examples · API / MCP · Roadmap · Contributing
2026-06-02🔌6개의 새로운 브로커 커넥터 (Tiger / Longbridge / Alpaca / OKX / Binance / Futu) 추가: 커넥터 우선 (Connector-first) 트레이딩 레이어가 IBKR (로컬) 및 Robinhood (MCP)와 더불어 직접 SDK 전송 방식을 확보했습니다. 각 커넥터는 읽기 전용 계정 / 포지션 / 주문 / 시세 / 내역을 노출하며, 모의 계정 (Paper-account) 주문 실행 기능도 제공합니다. 이를 통해 이러한 브로커들의 모의 계정에서 전략을 테스트할 수 있습니다. 이 중 5개(Tiger, Alpaca, OKX, Binance, Futu)는 Robinhood와 동일한 안전 모델을 기반으로 한 **제한적이고 권한이 부여된 주문 실행 (Bounded, mandate-gated order placement)**을 지원합니다: 사용자가 약속한 권한 (종목 유니버스 / 주문 크기 / 노출도 / 레버리지 / 일일 한도), 파일 시스템 킬 스위치 (Kill switch), 장애 발생 시 차단되는 프리 트레이드 게이트 (Fail-closed pre-trade gate), 그리고 전체 감사 원장 (Audit ledger)이 포함됩니다. Longbridge는 모의 계정 + 읽기 전용만 지원합니다 (해당 API는 런타임 시 모의/실제 계정 구분자를 노출하지 않음). 모든 모의/실제 구분은 계정 ID 형식, 호스트 분리, 데모 플래그 또는 거래 환경과 같은 브로커별 구조적 보호 장치로 이루어집니다. 새로운 trading_place_order / trading_cancel_order 도구가 추가되었으며, 홍콩 및 A-share 자산군이 권한 유니버스(Mandate universe)에 추가되었습니다. 실험적 기능이므로 사용 시 주의하십시오.
2026-06-01🚀v0.1.9 출시 (pip install -U vibe-trading-ai): 0.1.8 버전 이후의 모든 사항을 통합했습니다. 커넥터 우선 브로커 프로필 (IBKR 로컬 읽기 전용 TWS / IB Gateway + OAuth 기반의 Robinhood 에이전트 트레이딩, 약속된 권한, 주문 보호 장치, 감사 원장 및 즉시 중단 기능). CLI / REST / MCP / Web 전반에 걸친 Research Goal 런타임. 스웜 패스 (Swarm pass) — 실시간 조정(Live reconcile) + MCP 킵얼라이브(Keepalive), 운영자가 구성하는 워커 MCP 도구, 엄격한 알파-벤치(Alpha-bench) 무작위 제어, 그리고 실패하거나 오래된 실행을 재시작하기 위한 새로운 retry_run (현재 36개의 MCP 도구 제공). 리프레시된 터미널 UI를 포함한 agent/cli/ 패키지 리팩토링, mootdx
no-token A-share loader, and a robustness pass across backtest / agent loop / sessions.--version
이제 항상 설치된 패키지와 일치하며, 0.1.8 버전의 드리프트(drift) 문제를 해결했습니다 (#156).2026-05-31🔌커넥터 우선 브로커 아키텍처 (IBKR + Robinhood): 트레이딩 액세스는 이제 별도의 브로커/라이브 진입점 대신 선택 가능한 커넥터 프로필(connector profile)에서 시작됩니다.vibe-trading connector list/use/check/account/positions/orders/quote/history
그리고 MCP trading_* 도구들은 동일한 선택된 프로필을 공유하며, 페이퍼(paper)/라이브(live)는 커넥터의 속성(attribute)입니다. IBKR은 로컬 읽기 전용 TWS / IB Gateway 프로필을 통해 즉시 사용할 수 있는 반면, 공식 IBKR 원격 MCP 경로는 안정적인 읽기 도구 이름이 사용 가능할 때까지 OAuth mcp.read 프로브(probe)를 통해 시드(seed)됩니다. Robinhood Agentic Trading은 OAuth 뒤에서 제한된 라이브 MCP 커넥터로 유지되며, 이는 확정된 명령(mandate), 주문 가드(order guard), 감사 원장(audit ledger) 및 즉각적인 중단(instant halt) 기능을 포함합니다.
이전 뉴스
2026-05-30🧰견고성 패스(Robustness pass) — 백테스트(backtest), 에이전트 루프(agent loop), 세션(sessions): LLM 생성 시그널 엔진은 이제 인스턴스화(instantiation) 전에 사전 비행 인터페이스 검증(pre-flight interface validation)을 통과하며, 순환 자기 임포트(circular self-imports), 누락된 generate() 호출, 기본값이 설정되지 않은 __init__ 인자, 잘못된 반환 타입 등을 원시 트레이스백(raw traceback) 대신 실행 가능한 JSON 에러로 포착합니다 (#149). 후속 조치로 소스 레벨의 AST 검증 에러를 동일한 깔끔한 JSON 엔벨로프(envelope)를 통해 전달합니다. 에이전트 루프는 더 이상 출력 없이 50회의 반복을 모두 failed 상태로 소진하지 않습니다. 대신 반복 예산의 80% 지점에서 스웜 워커(swarm worker)의 마무리 독려(wrap-up nudge)를 미러링하며, 마지막 반복에서 도구 정의를 드롭(drop)하여 최종 텍스트 답변을 강제합니다 (#148). 이는 연구 목표 컨텍스트를 방해하지 않도록 실행 중간에만 작동하도록 보호됩니다. 세션 메시지 쓰기는 이제 각 추가(append) 시 flush + fsync를 수행하여 비용이 많이 드는 AI 응답이 쓰기 도중 충돌(crash)이 발생하더라도 생존할 수 있게 하며, 읽기 경로는 전체 /messages에 대해 500 에러를 내는 대신 손상된 JSONL 라인을 건너뜁니다 (복구를 위해 처음 200자까지 로깅함).
엔드포인트 (#147). Web composer는 또한 IME Enter 처리 방식을 수정하여, 글자 조합을 확정하는 Enter 키가 단어 중간에 제출되지 않도록 개선했습니다 (#146). -
2026-05-29🔐Robinhood Agentic Trading 지원 (선택 사항, 제한된 자율성): Robinhood Agentic Trading (원격 MCP, OAuth) 지원을 추가합니다. 기본값은 꺼져 있으며 읽기 전용입니다. 에이전트는 사용자가 약속한 위임 사항(종목 / 주문 크기 / 노출도 / 레버리지 / 일일 한도) 내에서만 작동하며, 파일 시스템 수준의 즉각적인 킬 스위치(kill switch), 선제적 포지션 청산(preemptive flatten), 위임 사항 자동 만료, 전체 감사 원장(audit ledger) 및 지속적인 자율 실행기(autonomous runner)를 갖추고 있습니다. 수탁(custody)이나 거래소(venue) 역할은 수행하지 않습니다. 브로커가 자금을 보유하고 실행하며, 저희는 의도(intent)를 전달할 뿐입니다. 실험적 기능이므로 사용 시 주의하십시오. -
2026-05-28🧪Swarm 안전성 + 엄격한 알파 게이트 + 워커 MCP: Swarm DAG는 상위 작업이 실패할 경우 하위 작업을 차단합니다 (#145). 새로운 run_bench_strict()는 동일 유니버스 내의 무작위 대조군과 OOS(Out-of-Sample) 분할을 추가하여, 단순히 시장 베타(market beta)를 추종하는 요인들을 포착합니다 (#143, @Soli22de님께 감사드립니다). Swarm 워커는 신뢰 경계(trust boundary)가 고정된 상태에서 운영자가 설정한 외부 MCP 서버를 호출할 수 있습니다 (#142, @shadowinlife님께 감사드립니다). -
2026-05-27📊mootdx A주 데이터 소스 + 출력 개선: 새로운 mootdx 로더는 A주 OHLCV를 위해 통다신(通达信) 네이티브 TCP 프로토콜을 사용합니다 (인증 없음, IP 속도 제한 없음, 25페이지 워크백(walk-back) 페이지네이션을 지원하는 일간 및 일중 데이터). 이는 폴백 체인(fallback chain)에서 tushare와 akshare 사이에 위치합니다 (#107). CCXT 로더는 이제 HTTP_PROXY/HTTPS_PROXY/ALL_PROXY를 읽을 수 있어, 제한된 네트워크에서도 Binance/OKX 공개 데이터를 사용할 수 있습니다 (#126, @ruok808님께 감사드립니다). 최종 답변 렌더링에서도 CLI 및 Web의 보기 좋지 않은 전각 --- 수평 구분선을 제거했습니다. 이제 시스템 프롬프트가 에이전트에게 마크다운 테이블과 ## 헤딩을 사용하도록 유도하며, CLI 렌더러는 심층 방어(defense-in-depth) 차원에서 단독 HR(Horizontal Rule)을 제거하고, 채팅 버블은 모든 <hr>을 숨깁니다.
빠져나가는 것(#139, @sdwxm188님 감사합니다). -
2026-05-26✅Research Goal 생명주기 종료 (Research Goal lifecycle closure): Goal 모드가 이제 실제 태스크 러너 (task runner)처럼 동작합니다: Web UI에서의 Goal 생성은 세션을 생성하거나 바인딩(bind)하며 즉시 킥오프 턴 (kickoff turn)을 전송합니다. 활성 Goal은 Web/API/CLI/MCP 전반에 걸쳐 계속 진행, 수정, 취소 및 완료될 수 있습니다. 또한 에이전트는 오직 원래의 프롬프트(prompt)뿐만 아니라 현재의 Goal 스냅샷(기준, 증거, 주장, 미결 항목)으로부터 진행됩니다. 커버되었으나 여전히 활성 상태인 Goal은 조용히 중단되는 대신 이제 감사/상태 업데이트 (audit/status update) 단계로 진입하며, 백엔드(backend), CLI, MCP 및 프론트엔드(frontend) 이벤트 전반에 걸쳐 회귀 테스트 (regression) 커버리지를 제공합니다. -
2026-05-25🧼더 깔끔한 채팅 UI + 컴포저 워크플로우 (composer workflow): Web UI는 채팅이 다음 동작에 집중되도록 유지합니다: 업로드(upload), 스웜(swarm), 리서치 골(research-goal) 모드는 이제 플로팅 패널(floating panels) 대신 컴포저(composer) + 메뉴 뒤에 위치합니다. 활성 컨텍스트(active context)는 입력창 위에 컴팩트한 칩(chips) 형태로 나타나며, Goal 상세 정보는 필요할 때만 인라인(inline)으로 확장됩니다. 또한 UI는 기존의 커스텀 i18n 레이어를 제거하고 직접적인 영어 문구를 사용하며, 전체 보고서(Full Report) 카드는 보고할 가치가 있는 실행(run)에 대해서만 제한적으로 제공합니다. 그리고 신뢰할 수 있는 브라우저 스모크 테스트 (smoke tests)를 위해 로컬 개발 시작/상태 보고 기능을 강화했습니다. -
2026-05-24🎯Research Goal 런타임 (runtime): 백엔드(backend), CLI, API/MCP, SSE 및 Web UI 전반에 걸쳐 세션 범위(session-scoped)의 Research Goal 레이어를 추가했습니다. Goal은 주장(claims), 수락 기준(acceptance criteria), 증거 행(evidence rows), 예산(budgets) 및 완료 정책(completion policy)을 유지합니다. 에이전트 도구는 Goal을 생성하고 증거를 첨부할 수 있습니다; /goal
CLI에 직접적인 진입점을 제공합니다; REST/MCP는 목표 스냅샷(goal snapshots) 및 증거 기록(evidence writes)을 노출하며, SSE는 채팅 클라이언트를 최신 상태로 유지합니다. 후속 감사(audit)를 통해 검증된 증거를 잠금 처리하고, 에이전트 도구를 통한 실시간 거래(live-trading) 위험 계층을 차단하며, CLI에서 생성된 목표를 이후 턴에 연결하고, 세션 삭제 시 목표 원장(goal ledgers)을 정리하며, 전체 재생(replay-all)을 활성화하고, 세션 간 프론트엔드 경합(race) 문제를 수정했습니다. -
2026-05-23🖥️대화형 CLI 새로고침: 터미널 진입점이 더 큰 Vibe-Trading 배너, 더 깔끔한 프롬프트 구분선, 이전 턴 요약, 실행 후 타이밍, 그리고 실시간 에이전트 작업을 위한 Claude Code 스타일의 활동 레일(activity rail)과 함께 열립니다. 도구 호출(tool calls), 웹/데이터 페치(fetches), 쉘 스타일 액션, 마크다운(Markdown) 답변, 파이프 테이블이 더 읽기 쉬운 트랜스크립트로 렌더링되는 반면, 파이프 연결된 실행이나 비 TTY 실행은 자동화를 위해 일반 텍스트 출력을 유지합니다. 생성된 CLI 스크린샷은 이제 커밋되는 문서 파일 대신 로컬 아티팩트(artifacts)로 취급되어 저장소를 더 가볍게 유지합니다. -
2026-05-22🧭Swarm 복구 + MCP keepalive: Swarm 상태는 이제 매 읽기 시마다 라이브 작업 파일로부터 조정(reconcile)되므로, API/MCP/SSE/목록 뷰가 영구적인 running 스냅샷을 보여주는 대신 충돌하거나 오래된 실행을 복구합니다. run_swarm은 폴링(polling)하는 동안 MCP 진행 하트비트(heartbeats)를 전송하며, 전송 중단 후 재연결하는 클라이언트를 위해 swarm_started run_id=<id>라는 고정된 첫 프레임을 제공합니다; 워커(workers)는 이제 LLM 스트리밍, 그라운딩 페치(grounding fetches), 도구 실행을 통해 하트비트를 보냅니다. 오래된 실행 정리 도구(stale-run reaper)는 실행당 임계값을 사용하고 작업 상태로부터 터미널 상태를 도출하며, SwarmTool은 이제 대기 예산(wait budget)이 만료되었다는 이유만으로 여전히 실행 중인 팀을 취소하지 않으며, MCP 클라이언트는 명시적인 정리를 위해 reap_stale_runs()를 호출할 수 있습니다. 오늘의 DX(개발자 경험) 패스에서는 프로바이더 기본 모델을 새로 고치고 CI 구문 검사를 새로운 agent/cli/ 패키지에 맞게 정렬했습니다. 하이드레이션(hydration), 터미널 복구, 오래된 실행 정리, keepalive 주기, 환경 변수 파싱, 하트비트 연결을 포함하는 22개의 새로운 회귀 테스트(regressions)가 포함되었습니다; 전체 swarm/MCP 스위트는 169개 통과, 4개 건너뛰기 상태입니다. -
2026-05-21🧱CLI 패키지 리팩토링:agent/cli.py
(3216 LOC)가 agent/cli/ 패키지로 분할되었습니다 — 대화형 프런트 도어(interactive front door), 슬래시 라우터(slash router), Rich 컴포넌트, 그리고 모든 서브커맨드(subcommand)를 보존하고 모든 공개 심볼(public symbol)을 재내보내어 cli.cmd_*, /cli._INIT_ENV_PATH, /cli.Confirm이 계속 작동하도록 하는 _legacy.py 심(shim)을 포함합니다. 새로운 FastAPI 미들웨어는 브라우저가 /runs/{id} 또는 /correlation을 직접 열거나 실행할 때 SPA 셸(shell)을 제공하며, 동일한 좁히기(narrowing) 작업이 Vite 개발 프록시(dev proxy)에도 적용되었습니다. cli/_version.py를 통해 버전이 통합되어(더 이상 --version과 배너 간의 불일치가 발생하지 않음), __main__.py를 통해 python -m cli가 복구되었으며, chat --help / chat extra가 REPL에 의해 삼켜지는 대신 레거시 argparse에 도달하도록 채팅 게이트(chat-gate)를 좁혔습니다. -
2026-05-20🔬Hypothesis Registry CLI: 2026-05-16에 백엔드 전용으로 출시된 Hypothesis Registry의 CLI 측면을 완성합니다. vibe-trading hypothesis list는 Rich 테이블 또는 JSON(--status 필터, --limit)을 출력합니다; show <id>는 연결된 실행 카드(run cards)를 포함한 상세 패널을 렌더링합니다; invalidate <id> --note "..."는 상태를 rejected로 전환하며, --note가 생략될 경우 이전의 무효화 노트를 보존합니다. 기존의 VIBE_TRADING_HYPOTHESES_PATH 환경 변수 오버라이드를 준수하며 호출당 --path를 추가합니다. 22개의 새로운 테스트가 와이어링(wiring), JSON 출력, 상태 필터, 제한(limit), ID 누락 오류 및 노트 지속성을 다룹니다. -
2026-05-19✨실시간 도구 피드백 + 우아한 취소(graceful cancel): 실행 시간이 긴 도구들(백테스트, 대용량 PDF, 스웜 워커(swarm workers))이 더 이상 멈춘 것처럼 보이지 않습니다. 이제 각 도구 호출은 3초 간격의 하트비트(heartbeat)와 단계별 구조화된 진행 상황을 방출합니다 — run_backtest는 단계 마커(validate / simulate / finalize)를 보여주고, read_document는 PDF의 페이지당 또는 Excel의 시트당 틱(tick)을 표시하며, read_url은 fetch / parse를 표시합니다. CLI Rich Live 대시보드는 유니코드 스피너(Unicode spinner), ASCII 진행 바(progress bar), ETA(예상 완료 시간)를 렌더링하며 이름별로 키가 지정된 최대 3개의 병렬 도구를 쌓아 올립니다; 프런트엔드 채팅에는 rAF-병합(rAF-coalesced) 렌더링, 스크린 리더를 위한 ARIA role="status" + 숨겨진 네이티브 <progress>를 갖춘 새로운 ToolProgressIndicator와 결정론적(determinate) ProgressRing이 탑재되었습니다.
전체 합계가 알려진 경우의 SVG. 이제 CLI 실행 중 첫 번째 Ctrl+C는 우아한 종료 (graceful exit, 현재 단계 완료 및 트레이스(trace)의 깔끔한 종료)를 위해 agent.cancel()을 호출하며, 2초 이내의 두 번째 입력은 강제 종료(force-quit)합니다. 이 과정에서 재사용 가능한 프리미티브(primitives)인 ProgressBar.tsx와 lib/tools.ts (공통 도구 이름 국제화(i18n))가 추출되었습니다. -
2026-05-18🧹정리 작업 + 3개의 잠재적 버그 수정:CompositeEngine이 더 이상 RB2410과 같은 순수 중국 선물 코드를 GlobalFuturesEngine으로 잘못 라우팅하지 않습니다. — _is_china_futures는 케이스 정규화(case-normalized)된 상품 테이블과 비(非) 중국 거래소 가드(guard)를 포함하는 공유 _market_hooks 모듈로 이동되었으며, 9개의 새로운 회귀 테스트(regression cases)가 추가되었습니다. 세션 FTS5 인덱스는 이제 타임스탬프를 유지하여 세션 간 검색 시 날짜별 정렬이 가능합니다. 동일한 경로를 통해 매 세션의 started_at을 벽시계 시간(wall-clocking)으로 재업서트(re-upsert)하던 문제도 해결되었습니다. Vite 개발 모드 프록시에 누락되었던 /alpha 엔트리가 추가되어 npm run dev 시 AlphaZoo 페이지가 정상적으로 해결됩니다. tests/test_e2e_harness_v2.py (실제 LLM E2E 스위트)는 이제 VIBE_TRADING_RUN_LIVE_E2E=1 뒤에 게이트(gated)되어, CI가 환경 변수 키의 존재 여부에 따라 형태가 변하지 않도록 했습니다. Factor Zoo를 위해 Ruff의 per-file-ignores를 추가하여 (3783 → 0개의 F401 노이즈), 프론트엔드 tsconfig에서 회귀 방지책으로 noUnusedLocals / noUnusedParameters를 활성화하였으며, gtja191 알파(alphas)에서 사용되지 않는 76줄의 vw = vwap(...) 보일러플레이트 코드를 제거했습니다. 순 코드 라인(LOC) -918개 감소. -
2026-05-17🧬Alpha Zoo v1 (0.1.8): 4개의 Zoo에 걸쳐 452개의 사전 구축된 퀀트 알파(quant alphas) 제공 — qlib158
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Python (daily)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기