checking system…
Docs / back / config/arenas/report_to_action.yaml · line 1
YAML · 151 lines
  1name: report_to_action
  2description: |
  3  Fast-path arena: takes a fomo2 markdown report (or any structured analysis),
  4  runs three specialist views in parallel (signals, news/sentiment, risk), then
  5  synthesises a single BUY/HOLD/SELL action. The output is a structured
  6  TradingAction published to maf:actions:out — trtools2 picks it up and
  7  executes/queues/logs per ``action_mode`` (auto/semi/manual).
  8
  9  Trigger paths:
 10    - control plane: XADD maf:control:in {command: run_arena,
 11        args: {arena: report_to_action, target: {ticker: NVDA, ...},
 12               action_mode: "semi"}}
 13    - dashboard: POST /api/arenas/report_to_action/run
 14    - CLI: python -m maf trigger report_to_action --ticker NVDA --action-mode semi
 15
 16schedule: null
 17output_stream: "maf:arena:report_to_action:output"
 18
 19llm:
 20  default_provider: ollama
 21  quick_provider: ollama
 22  quick_model: "auto"    # picker → gpt-oss:20b-cloud
 23  deep_provider: ollama
 24  deep_model: "auto"     # picker → gpt-oss:120b-cloud
 25  providers:
 26    ollama:
 27      api_key: "${OLLAMA_API_KEY}"
 28      model: "auto"
 29      base_url: "https://ollama.com/v1"
 30      max_output_tokens: 8192
 31      temperature: 0.3
 32
 33# Sources — bind whatever fomo2 / trtools2 streams are most useful for the
 34# question at hand. These are reasonable defaults; arena-edit them via the
 35# dashboard or set_data_source control command for finer control.
 36sources:
 37  - name: report
 38    adapter: fomo2_report
 39    config:
 40      output_dir: "../fomo2/output"
 41      glob_pattern: "analyze_*.md"
 42      max_chars_for_simulation: 8000
 43
 44  - name: latest_news
 45    adapter: trtools2_news
 46    config:
 47      stream: "trtools2:news"
 48      count: 30
 49
 50  - name: indicators
 51    adapter: trtools2_indicators
 52    config:
 53      stream: "trtools2:indicators"
 54      count: 30
 55
 56  - name: strategy_events
 57    adapter: trtools2_strategy_events
 58    config:
 59      stream: "trtools2:strategy:events"
 60      count: 20
 61
 62  - name: enriched_items
 63    adapter: fomo2_items
 64    config:
 65      count: 30
 66
 67  - name: deep_data_request
 68    adapter: fomo2_request
 69    config:
 70      wait: true
 71      wait_seconds: 20
 72
 73  # EODHD MCP — fundamentals + earnings calendar. Skipped gracefully when
 74  # $EODHD_API_KEY isn't set; agents will see {error, data:{...}} and
 75  # downgrade confidence. Bind once per tool you want.
 76  - name: eodhd_fundamentals
 77    adapter: eodhd
 78    config:
 79      tool: get_fundamentals
 80  - name: eodhd_earnings_calendar
 81    adapter: eodhd
 82    config:
 83      tool: get_earnings_calendar
 84  - name: eodhd_news
 85    adapter: eodhd
 86    config:
 87      tool: get_news
 88
 89memory:
 90  instances:
 91    - { name: synthesis_bm25, type: bm25 }
 92
 93phases:
 94  - name: analysis
 95    pattern: parallel
 96    agents:
 97      - name: signal_analyst
 98        role: specialist
 99        system_prompt_file: src/maf/arenas/trading_intelligence/prompts/market_analyst.txt
100        sources:
101          - report
102          - indicators
103          - strategy_events
104        llm_tier: quick
105        max_react_steps: 3
106      - name: sentiment_analyst
107        role: specialist
108        system_prompt_file: src/maf/arenas/trading_intelligence/prompts/news_analyst.txt
109        sources:
110          - latest_news
111          - enriched_items
112          - deep_data_request
113        llm_tier: quick
114        max_react_steps: 3
115      - name: risk_analyst
116        role: specialist
117        system_prompt_file: src/maf/arenas/trading_intelligence/prompts/risk_analyst.txt
118        sources:
119          - indicators
120          - strategy_events
121        llm_tier: quick
122        max_react_steps: 2
123      - name: earnings_reviewer
124        role: specialist
125        # Vendored Anthropic-FS "earnings-reviewer" agent prompt — gives the
126        # arena a senior-equity-research view when the report is an earnings
127        # event. Returns low confidence (de-weighted in synthesis) when the
128        # target hasn't reported recently.
129        system_prompt_file: src/maf/prompts/anthropic_fs/agents/earnings_reviewer.md
130        sources:
131          - latest_news
132          - deep_data_request
133          - indicators
134          - eodhd_fundamentals       # ← EODHD MCP: actuals vs consensus
135          - eodhd_earnings_calendar  # ← EODHD MCP: dates + estimates
136          - eodhd_news               # ← EODHD MCP: ticker-filtered news
137        llm_tier: deep
138        max_react_steps: 5
139    transition: synthesis
140
141  - name: synthesis
142    pattern: sequential
143    signal_extract: false
144    agents:
145      - name: synthesis_agent
146        role: synthesis
147        system_prompt_file: src/maf/arenas/trading_intelligence/prompts/synthesis_agent.txt
148        memory: synthesis_bm25
149        llm_tier: deep
150    transition: END