feat: market regime, self-learning journal, AI investment committee

- regime.py: computed SPY/VIX/sector-momentum snapshot injected into every kickoff
- journal.py: each agent sees its own past picks marked-to-market (learns from wins/losses)
- committee.py: Chief-Risk-Officer LLM pass over the whole book — approve/reduce/veto
  per pick with reasons; memo lands in reports; executor enforces verdicts at open

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016DvdRZkyCy9NJpHYDdPqmS
This commit is contained in:
Aryan SinghandClaude Opus 4.8 committed 2026-07-02 12:27:05 -05:00
1 parent 6b1c461a80
commit 4beee3dc82
6 files changed
+323 -2

No files matched your search

+5 -1
View File
@@ -237,6 +237,7 @@ def run_agent(
step_budget: int,
min_steps: int = 0,
min_seconds: float = 0.0,
context_blurb: str = "",
checkpointer=None,
model_name: str = "",
) -> AgentOutput:
@@ -252,9 +253,12 @@ def run_agent(
compact_budget = get_settings().compaction_token_budget
date_str = datetime.now().astimezone().strftime("%A %Y-%m-%d")
kickoff = RESEARCH_KICKOFF.format(date=date_str, n=persona.target_pick_count)
if context_blurb: # market regime + the agent's own track record (self-learning)
kickoff = f"{context_blurb}\n\n{kickoff}"
messages: list = [
SystemMessage(content=persona.system_prompt),
HumanMessage(content=RESEARCH_KICKOFF.format(date=date_str, n=persona.target_pick_count)),
HumanMessage(content=kickoff),
]
running_summary = ""
reasoning_trace: list[str] = []