TradingAgents/agent_os
ahmet guzererler 2145b04318
fix: graceful LLM 404 handling + per-tier fallback model config (#108)
* fix: per-tier fallback LLM for provider 404/policy errors

- tool_runner: catch status_code==404 from chain.invoke(), re-raise as
  RuntimeError with actionable message (OpenRouter privacy URL + env var hint)
- langgraph_engine: wrap astream_events in try/except, detect policy errors
  and re-raise with model/provider context
- langgraph_engine: _run_one_ticker distinguishes policy 404s (logger.error,
  no traceback) from real bugs (logger.exception with traceback); if fallback
  is configured, rebuilds pipeline with fallback model tier and retries
- langgraph_engine: add _is_policy_error() and _build_fallback_config() helpers
- default_config: add quick/mid/deep_think_fallback_llm + _provider keys
  (TRADINGAGENTS_QUICK_THINK_FALLBACK_LLM etc.)
- .env.example: document new fallback env vars

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: ADR 017 LLM policy fallback, correct ADR 016 findings, update CLAUDE.md

- docs/agent/decisions/017: add ADR for per-tier LLM fallback design decision
- docs/agent/decisions/016: correct 3 inaccurate review findings — list_pm_decisions
  ObjectId projection, created_at datetime type, and base_dir pointer handling are
  all already correctly implemented in PR#106
- CLAUDE.md: add Per-Tier Fallback LLM section and _is_policy_error critical pattern
- CURRENT_STATE.md: update milestone and recent progress for PR#106/107/108 merges

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 11:19:08 +01:00
..
backend fix: graceful LLM 404 handling + per-tier fallback model config (#108) 2026-03-25 11:19:08 +01:00
frontend fix: address all PR#106 review findings (ADR 016) (#106) 2026-03-25 11:14:23 +01:00
DESIGN.md docs: finalize AgentOS documentation 2026-03-22 22:54:20 +01:00
README.md docs: finalize AgentOS documentation 2026-03-22 22:54:20 +01:00
__init__.py fix: add missing __init__.py files to agent_os package tree 2026-03-23 07:16:38 +00:00

README.md

AgentOS: Visual Observability & Command Center

AgentOS is a real-time observability and command center for the TradingAgents framework. It provides a visual interface to monitor multi-agent workflows, analyze portfolio risk metrics, and trigger automated trading pipelines.

System Architecture

  • Backend: FastAPI (Python)
    • Orchestrates LangGraph executions.
    • Streams real-time events via WebSockets.
    • Serves portfolio data from Supabase.
    • Port: 8088 (default)
  • Frontend: React (TypeScript) + Vite
    • Visualizes agent workflows using React Flow.
    • Displays high-fidelity risk metrics (Sharpe, Regime, Drawdown).
    • Provides a live terminal for deep tracing.
    • Port: 5173 (default)

Getting Started

1. Prerequisites

  • Python 3.10+
  • Node.js 18+
  • uv (recommended for Python environment management)

2. Backend Setup

# From the project root
export PYTHONPATH=$PYTHONPATH:.
uv run python agent_os/backend/main.py

The backend will start on http://127.0.0.1:8088.

3. Frontend Setup

cd agent_os/frontend
npm install
npm run dev

The frontend will start on http://localhost:5173.

Key Features

  • Literal Graph Visualization: Real-time DAG rendering of agent interactions.
  • Top 3 Metrics: High-level summary of Sharpe Ratio, Market Regime, and Risk/Drawdown.
  • Live Terminal: Color-coded logs with token usage and latency metrics.
  • Run Controls: Trigger Market Scans, Analysis Pipelines, and Portfolio Rebalancing directly from the UI.

Port Configuration

AgentOS uses port 8088 for the backend to avoid conflicts with common macOS services. The frontend is configured to communicate with 127.0.0.1:8088.