NVIDIA-owned component
Compliance / risk gate
3rd-party / open-source
Components used (by layer)
| Layer | Component | Role | Notes |
|---|---|---|---|
| 1 · UI | FastAPI · uvicorn | Web server | 22 REST endpoints · CORS · JSON-shaped error responses |
| Tailwind CDN + Inter + JetBrains Mono | Styling | Dark theme, NVIDIA green (#76b900); tenant CSS-variable overrides | |
| TradingView Lightweight Charts 4.2 | Charts | MIT · candles + volume + MA21/MA50 + buy/sell markers | |
| 2 · Agent orchestration | NVIDIA NeMo Agent Toolkit (NAT) | Observability | Per-agent spans · /api/observability/* endpoints · llm.reasoning.<role> spans capture Nemotron chain-of-thought in Phases 8/9 |
| A2A event bus (live · src/traderspace/bus/) | Async pub/sub | asyncio fan-out, error-isolated, OTel-traced. Ring buffer history (1000 events). REST: GET /api/bus/agents, GET /api/bus/events, POST /api/bus/trigger. | |
| Typed event vocabulary (51 events) | Contracts | Forward cascade + Phase 8 DPO closure (PreferenceRecorded → NeMoRLTrainingStarted → PolicyPromoted → LocalInferenceReloadStarted) + Phase 9 discovery loop (SignalDiscoveryRequested → SignalFormulaProposed/Compiled/Evaluated/Accepted → AdvisorCritiqued → PromoteToSleeve) | |
| NVIDIA AI Q&A Blueprint (AIQ) | DeepResearch | Literal blueprint adapter + in-house variant (planner → researcher → synthesizer → citer) | |
| NVIDIA-AI-Blueprints quantitative-signal-discovery-agent | Phase 9 closed loop | Adapted: 4 Nemotron-driven agents (Generator t=0.8 · CodeGenerator t=0.2 · Advisor t=0.5 · Orchestrator t=0.3) · 66-operator JSON-AST vocabulary · IC + p-value acceptance gate (|IC|≥0.02, p≤0.05). Differs from upstream: AST whitelist (no exec() on LLM output) · policy_router for DPO-replaceable roles · Nemotron 3 Super 120B (vs upstream Nano-30B-A3B) · Grinold-Kahn α-tilt on cuFOLIO scenarios for backtest integration. | |
| 36-agent roster | Specialization | 32 active by default + 4 example agents inactive until activated via Agent Builder. Phase 0–9 lifecycle agents wired end-to-end. | |
| Tier 8a · DPO closure (Phase 8) | Loop closure | PolicyPromotionAgent auto-validates trained checkpoints (DCP → HF safetensors via NeMo-RL converter) and promotes to data/policies/registry.json · InferenceServerAgent hot-reloads vLLM on PolicyPromoted | |
| Tier 8b · Feedback | Loop closure | NeMoRLFeedback (10 fills → DPO retrain) · PreferenceLearning (every decision → DPO row) · Audit (every event → immutable JSONL) | |
| 3a · LLM inference | NVIDIA Build API | Hosted inference | OpenAI-compatible REST · retry w/ backoff · tool calls + reasoning_content |
| Nemotron 3 Super 120B | Reasoning | nvidia/nemotron-3-super-120b-a12b · DeepResearch · PM narration · backtest Q&A · all 4 Phase-9 Signal-Discovery agent roles | |
| Nemotron 3 Nano Omni 30B | Vision (VLM) | nvidia/nemotron-3-nano-omni-30b · chart technical reads | |
| Kimi K2.6 (via Build) | Tool calls | moonshotai/kimi-k2.6 · PM chat with 39 tools registered | |
| vLLM 0.21.0 (Phase 8 local) | Local inference | OpenAI-compatible server on :8024 · hosts DPO-promoted Nemotron checkpoints · hot-reloads on PolicyPromoted · health-probed via /v1/models · cold-start ~30-60s, policy_router falls back to cloud automatically | |
| policy_router | Routing | 4 decision_types (rebalance / validation / thesis / post-trade narration) each pointing at an active policy. Local vLLM when promoted + healthy, else cloud Nemotron. Routed-to + policy_id stamped into every audit row. | |
| 3b · GPU optimization | NVIDIA cuFOLIO | Portfolio LP | Mean-CVaR · KDE scenario generation on GPU |
| NVIDIA cuOpt | LP solver | PDLP · ~250ms typical solve on GB10 | |
| NemoRL (in-house) | RL fine-tune | NVTraderEnv (Gymnasium) · stable-baselines3 PPO · reward = period_return − turnover_cost − vol_penalty | |
| PyTorch 2.12+cu130 | GPU runtime | NemoRL training auto-routes to cuda; CPU fallback | |
| 4 · Data sources | yfinance | Bars (EOD + intraday) | Daily back to 1980+ for blue-chips; intraday rolling 60d |
| Webull OpenAPI | Live snapshots + orders | App-key signed · prod + UAT (paper) clusters | |
| Finnhub | Fundamentals / news / consensus | 60 req/min on free tier | |
| SEC EDGAR | 10-K / 10-Q / 8-K | No key · polite User-Agent | |
| Tavily · Polygon · Alpha Vantage · IEX · Databento · SerpAPI | Optional upgrade | UI-linkable per-user via account page · pluggable adapters | |
| 5 · Compliance + execution | ComplianceAgent | Risk gate | Hard / soft / warn vetos: max_position_pct, sector_pct, turnover, wash_sale, restricted_list |
| SimBroker · WebullBroker · AlpacaBroker | Pluggable brokers | Same wire shape (BrokerAdapter ABC); switch via BROKER env or per-user setting | |
| Approve / Override / Reject | PM gate | Override and Reject never submit · all 3 audit to immutable ledger | |
| 6 · Persistence | User DB · per-tenant scope | Auth | Encrypted-at-rest credentials · tenant data isolation · postgres-swappable for prod |
| Encrypted API key store | Provider creds | Symmetric-key encryption · only masked prefix/suffix surfaces in UI | |
| Decision audit + trace ledger | Audit | Append-only · auto-rotated · queryable via /api/audit/* + /api/observability/* | |
| 7 · Hardware + deployment | NVIDIA DGX Spark · GB10 | GPU | compute 12.1 · cuFOLIO + cuOpt + NemoRL all execute here |
| Docker · docker-compose | Containerization | nvidia/cuda:12.3.0-runtime base · GPU passthrough via --gpus all · optional postgres / phoenix profiles | |
| Tailscale | Network | 0.0.0.0:8015 → reachable via 100.103.228.71 on tailnet |