Caduceus

OBSERVED: traced from caduceus/ at 6b83b91 (v0.3.3) — multi-seat decision engine on Hermes Agent

Caduceus OBSERVED: traced from caduceus/ at 6b83b91 (v0.3.3) — multi-seat decision engine on Hermes Agent Local: macOS Spend Guard · per-run + daily cap · Local: macOS · soft cap / hard cap Spend Guard per-run + daily cap soft cap / hard cap Command Guard · pre_tool_call, fail-closed · Local: macOS · two-person rule Command Guard pre_tool_call, fail-closed two-person rule Operator · the Shaper · Architecture component Operator the Shaper cad CLI · stdlib only · Local: macOS cad CLI stdlib only Council · 3-phase deliberation · Local: macOS · implicit consensus Council 3-phase deliberation implicit consensus Transport · API + CLI fallback · Local: macOS Transport API + CLI fallback Hermes Gateways · 5 seats, :8651-8655 · Local: macOS Hermes Gateways 5 seats, :8651-8655 Model Families · via OpenRouter + Alibaba · Architecture component Model Families via OpenRouter + Alibaba Telegram · memo broadcast · Architecture component Telegram memo broadcast Dashboard · self-contained HTML · Local: macOS Dashboard self-contained HTML Believability Ledger · SQLite · Local: macOS · 45-day half-life Believability Ledger SQLite 45-day half-life asks runs drafts HTTP 4 families pre_tool_call per-run ceiling weights + settle reads memo Legend Frontend Backend Database Cloud Security External

The five seats

  • • FORGE - build and sequence (qwen3.7-plus, Alibaba coding plan)
  • • FINISHER - verify, gate, approve risky commands (claude-sonnet-5)
  • • RECON - cited, confidence-graded evidence (deepseek-v4-pro)
  • • SPARRING - attack plans and dissent (hermes-4-405b)
  • • ENVOY - outbound tone pass (qwen3.7-flash)

Deliberation protocol

  • • Independent drafts, then anonymized cross-examination, then weighted synthesis
  • • Dissent is preserved as a Minority Report
  • • Uncited position flips are logged as conformity
  • • Agreement is detected by Jaccard overlap, not by vote

Why it stays honest

  • • Ledger weights move only when a run is settled against reality
  • • Laplace-smoothed per seat x domain, 45-day half-life
  • • CRITICAL commands have no override; HIGH needs a different model family or the operator
  • • Raising a spend ceiling needs a two-person token; lowering is free

Cost posture

  • • Idle cost is zero — councils, cron ticks, and kanban dispatch are all event-driven
  • • Transport is stdlib urllib and subprocess; no httpx or requests

Casting constraints

  • • Four model families on purpose - same-family seats agree too easily
  • • SPARRING is provisioned with every toolset stripped: it argues, it never touches the filesystem
  • • FORGE routes through an Alibaba coding plan; the other four go via OpenRouter
  • • models.py checks the OpenRouter catalog for candidate freshness on a 24h cache
  • • Quick pair is FORGE + FINISHER; full council adds RECON + SPARRING