Skip to content

What (One-liner)

Canvas Bear Agent, symmetric to bull_agent_v1: shares the same 2 calls — bull_portfolio (SPY+QQQ) / bear_portfolio (TLT+GLD) simulation — but the UI extracts the bear weight instead.

How to use

macro_snapshot_v1 → bear_agent_v1  (regime=contraction, n_periods=12)
                                   → weight=0.75, total_return=-1.8%, max_drawdown=5.2%

Paired pattern:

       ┌─ bull_agent_v1
regime ┤
       └─ bear_agent_v1
       (both nodes share the backend; only the extracted weight field differs)

Core formulas

Identical to bull_agent_v1 (shared backend). Canvas picks bear_weight vs bull_weight at extraction time based on graphletType === 'bear_agent_v1'.

Assumptions & applicability

Same as bull_agent_v1.

Known limitations

See the bull_agent_v1 card for the full list — bear_agent_v1 shares all backend constraints.

References

Same as bull_agent_v1 (Faber 2007 + Pangura Internal Rulebook).

Golden Test

Shares the bull_agent_v1 golden test suite (casa_trader_select + casa_dual_agent fixtures, 17 tests total). Because both graphlets call the same 2 endpoints, shared backend validation is sufficient.

Changelog

  • 1.0.0 (2026-04-21) — First Active (Tier 4 batch 1.3; sister operator bull_agent_v1)

Verifiable intelligence for the decisions that demand scrutiny.