Repository navigation
v0.2.0 -- Autonomous mode (silence-bias-gated paper trading)
v0.2.0 -- Autonomous mode (silence-bias-gated paper trading)
THIRD PDR SURFACE: Hermes watches the watchlist on a cadence and
fires paper trades automatically when the 4-dim silence-bias gate
agrees. Per the founding charter, silence is the DEFAULT -- the gate
is rewarded for correct inaction.
Highlights
- ADR-0016 -- autonomous mode contract codifying charter principles
- 4-dim silence-bias gate: confidence x urgency x voices x salience;
ALL FOUR must pass for FIRE - Config-driven watchlist with flock + atomic-rename safety
- tick() orchestrator: mode-gated, kill-switch-gated, per-symbol
error isolation, structured operator-readable output - 5 new tools (15 total): quant_autonomous_tick (dry-run default),
quant_autonomous_status, quant_watchlist_add/remove/list - CLI: hermes quant autonomous {tick, status, start, stop, reset,
watchlist {list, add, remove}} - Slash: /quant auto tick|status, /quant watchlist list|add|remove
Safety rails
- Tool surface defaults to dry_run=True. LLM agents cannot fire
trades through tool calls -- only cron with --no-dry-run does. - Mode gate read on every call -- flip without restart.
- max_per_tick_opens caps new positions per tick (default 1).
- Kill switch (default -10% cumulative paper P&L) auto-disables
autonomous; reset requires hermes quant autonomous reset --confirm. - Paper-only in v0.2. Live deferred to v0.3 behind three locks.
Tests: 426 passed, 1 skipped (was 365 -> +61, zero regressions).
Quick start
hermes quant autonomous start --cadence 15m \
--watchlist BTC/USDT:crypto:1h,ETH/USDT:crypto:1h,AAPL:equity:1d
hermes quant autonomous status
hermes quant autonomous tick # safe dry-run
hermes quant autonomous tick --no-dry-run # real paper trade if FIRE
Then wire the cron tick (printed by start):
hermes cron create "15m" \
--script "$(which hermes) quant autonomous tick --no-dry-run --json" \
--no-agent
Operators see every tick output (FIRE / SILENCE_* / ERROR) delivered
to their configured cron destination -- nothing fires silently.
Files: docs/adr/ADR-0016-autonomous-mode.md, hermes_quant/gates/,
hermes_quant/watchlist.py, hermes_quant/autonomous.py.
Architecture: ADR-0013 (no monkeypatches), ADR-0014 (advisor reused),
ADR-0015 (PaperReactor reused), ADR-0010 (settlement journal feedback).