chore: remove legacy startup paths
This commit is contained in:
43
README.md
43
README.md
@@ -21,8 +21,11 @@ The repository name still uses `evotraders`, but the product-facing branding now
|
||||
**Multi-agent trading team**
|
||||
Six roles collaborate like a real desk: four specialist analysts (fundamentals, technical, sentiment, valuation), one portfolio manager, and one risk manager.
|
||||
|
||||
**Continuous learning**
|
||||
Agents can persist long-term memory with ReMe, reflect after each cycle, and evolve their decision patterns over time.
|
||||
**Continuous learning & Evolution**
|
||||
Agents persist long-term memory with ReMe and reflect after each cycle. The **Autonomous Policy Optimizer (APO)** automatically tunes agent operational policies (`POLICY.md`) based on daily P&L feedback to correct recurring mistakes.
|
||||
|
||||
**Robust execution with recovery**
|
||||
The trading pipeline supports **phase-based checkpointing**. If a run is interrupted, it can resume from the last successful phase (Analysis, Risk, Discussion, Decision, Execution, or Settlement), ensuring resilience in production.
|
||||
|
||||
**Backtest and live modes**
|
||||
The same runtime model supports historical simulation and live execution with real-time market data.
|
||||
@@ -68,6 +71,7 @@ Runtime state is stored in `runs/<run_id>/` — this is the **runtime source of
|
||||
|
||||
### Documentation
|
||||
|
||||
- [docs/README.md](./docs/README.md) — documentation index and reading order
|
||||
- [docs/current-architecture.md](./docs/current-architecture.md) — canonical architecture facts
|
||||
- [services/README.md](./services/README.md) — service boundaries and migration details
|
||||
- [docs/current-architecture.excalidraw](./docs/current-architecture.excalidraw) — visual diagram
|
||||
@@ -84,15 +88,11 @@ Runtime state is stored in `runs/<run_id>/` — this is the **runtime source of
|
||||
# clone this repository, then:
|
||||
cd evotraders
|
||||
|
||||
# backend runtime dependencies
|
||||
uv pip install -r requirements.txt
|
||||
|
||||
# install package entrypoint in editable mode
|
||||
uv pip install -e .
|
||||
|
||||
# optional
|
||||
# optional dev dependencies
|
||||
# uv pip install -e ".[dev]"
|
||||
# pip install -e .
|
||||
```
|
||||
|
||||
Frontend dependencies:
|
||||
@@ -103,7 +103,7 @@ npm ci
|
||||
cd ..
|
||||
```
|
||||
|
||||
Production deployment should prefer `requirements.txt` for backend and `npm ci` for frontend so the pulled environment matches the checked-in lockfiles and version pins.
|
||||
Production deployment should prefer the checked-in Python package metadata in `pyproject.toml` for backend installation and `npm ci` for frontend so the pulled environment matches the checked-in dependency declarations and lockfiles.
|
||||
|
||||
### 2. Configure environment
|
||||
|
||||
@@ -206,13 +206,13 @@ Recommended local development flow:
|
||||
./start-dev.sh
|
||||
```
|
||||
|
||||
This starts:
|
||||
This starts directly from the script:
|
||||
|
||||
- `agent_service` at `http://localhost:8000`
|
||||
- `trading_service` at `http://localhost:8001`
|
||||
- `news_service` at `http://localhost:8002`
|
||||
- `runtime_service` at `http://localhost:8003`
|
||||
- gateway WebSocket at `ws://localhost:8765`
|
||||
- gateway WebSocket at `ws://localhost:8765` via `runtime_service` managed startup
|
||||
|
||||
Then start the frontend in another terminal:
|
||||
|
||||
@@ -229,31 +229,34 @@ python -m uvicorn backend.apps.agent_service:app --host 0.0.0.0 --port 8000 --re
|
||||
python -m uvicorn backend.apps.trading_service:app --host 0.0.0.0 --port 8001 --reload
|
||||
python -m uvicorn backend.apps.news_service:app --host 0.0.0.0 --port 8002 --reload
|
||||
python -m uvicorn backend.apps.runtime_service:app --host 0.0.0.0 --port 8003 --reload
|
||||
# compatibility gateway path, not the recommended primary dev entrypoint
|
||||
python -m backend.main --mode live --host 0.0.0.0 --port 8765
|
||||
|
||||
# then create a runtime so runtime_service can spawn the Gateway subprocess
|
||||
curl -X POST http://localhost:8003/api/runtime/start \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"launch_mode":"fresh","tickers":["AAPL","MSFT"],"mode":"live"}'
|
||||
```
|
||||
### 4. Run backtest or live mode
|
||||
|
||||
Backtest:
|
||||
|
||||
```bash
|
||||
python backend/main.py --mode backtest --config-name smoke_fullstack --start-date 2025-11-01 --end-date 2025-12-01
|
||||
python backend/main.py --mode backtest --config-name smoke_fullstack --start-date 2025-11-01 --end-date 2025-12-01 --enable-memory
|
||||
curl -X POST http://localhost:8003/api/runtime/start \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"launch_mode":"fresh","mode":"backtest","tickers":["AAPL","MSFT"],"start_date":"2025-11-01","end_date":"2025-12-01"}'
|
||||
```
|
||||
|
||||
Live:
|
||||
|
||||
```bash
|
||||
python backend/main.py --mode live --config-name live
|
||||
python backend/main.py --mode live --config-name live --enable-memory
|
||||
python backend/main.py --mode live --config-name live --interval-minutes 60
|
||||
python backend/main.py --mode live --config-name live --trigger-time 22:30
|
||||
curl -X POST http://localhost:8003/api/runtime/start \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"launch_mode":"fresh","mode":"live","tickers":["AAPL","MSFT"]}'
|
||||
```
|
||||
|
||||
Help:
|
||||
|
||||
```bash
|
||||
python backend/main.py --help
|
||||
python backend/main.py --help # compatibility standalone entrypoint only
|
||||
```
|
||||
### Offline backtest data
|
||||
|
||||
@@ -311,7 +314,7 @@ If these are not set, the frontend falls back to its local defaults and compatib
|
||||
|
||||
```text
|
||||
Market data -> independent analyst work -> team communication -> portfolio decision ->
|
||||
risk review -> execution/settlement -> reflection/memory update
|
||||
risk review -> execution/settlement -> reflection/memory update -> APO policy tuning
|
||||
```
|
||||
|
||||
The runtime manager also tracks:
|
||||
|
||||
Reference in New Issue
Block a user