Skip to content

v0.2.0 -- Autonomous mode (silence-bias-gated paper trading)

Choose a tag to compare

@baladithyab baladithyab released this 13 May 21:21
· 889 commits to main since this release

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).