checking system…
Docs / back / config/arenas/equity_research.yaml · line 1
YAML · 148 lines
  1name: equity_research
  2description: |
  3  Sector / thematic research arena. Adapted from Anthropic Cowork's
  4  market-researcher cookbook — three sub-agents (sector reader, comps
  5  spreader, note writer) produce a research-note-quality deliverable on
  6  a sector or theme.
  7
  8  Target: free-text sector or theme + optional angle.
  9    target = { sector: "AI semiconductors", angle: "valuation reset",
 10               tickers: ["NVDA","AMD","AVGO","MRVL","ARM"] }
 11
 12  The tickers list is the peer set the comps spreader spreads. If omitted,
 13  the sector reader is asked to surface 8-15 names first.
 14
 15  Outputs a GenericDecision envelope to maf:decisions:out (not actions:out
 16  — this is research, not trading).
 17
 18schedule: null
 19output_stream: "maf:arena:equity_research:output"
 20max_iterations: 1
 21target_key: sector_id
 22
 23llm:
 24  default_provider: ollama
 25  quick_provider: ollama
 26  quick_model: "auto"
 27  deep_provider: ollama
 28  deep_model: "auto"
 29  providers:
 30    ollama:
 31      api_key: "${OLLAMA_API_KEY}"
 32      model: "auto"
 33      base_url: "https://ollama.com/v1"
 34      max_output_tokens: 8192
 35      temperature: 0.3
 36
 37memory: {}
 38
 39# Sources — the upstream cookbook calls CapIQ / FactSet MCPs. We translate
 40# to trtools2_api (snapshot for multiples), web_search + sec_filings (for
 41# landscape + TAM), fomo2_knowledge (cached graph context), trtools2_news
 42# + fomo2_items (recent news), fred_api (macro context).
 43sources:
 44  - name: snapshot
 45    adapter: trtools2_api
 46    config:
 47      query_type: snapshot
 48  - name: bars_history
 49    adapter: trtools2_api
 50    config:
 51      query_type: bars
 52      timeframe: 1d
 53      lookback_days: 90
 54      limit: 90
 55  - name: latest_news
 56    adapter: trtools2_news
 57    config:
 58      count: 50
 59  - name: macro_context
 60    adapter: fred_api
 61    config: {}
 62  - name: sector_graph
 63    adapter: fomo2_knowledge
 64    config: {}
 65  - name: filings
 66    adapter: sec_filings
 67    config: {}
 68  - name: web
 69    adapter: web_search
 70    config: {}
 71
 72  # EODHD MCP — institutional-grade fundamentals + earnings calendar +
 73  # news. Adds real depth to comps_spreader and sector_reader when
 74  # $EODHD_API_KEY is set; gracefully no-ops otherwise.
 75  - name: eodhd_fundamentals
 76    adapter: eodhd
 77    config:
 78      tool: get_fundamentals
 79  - name: eodhd_earnings_calendar
 80    adapter: eodhd
 81    config:
 82      tool: get_earnings_calendar
 83  - name: eodhd_eod
 84    adapter: eodhd
 85    config:
 86      tool: get_eod_data
 87  - name: eodhd_resolve_ticker
 88    adapter: eodhd
 89    config:
 90      tool: resolve_ticker
 91  - name: eodhd_news
 92    adapter: eodhd
 93    config:
 94      tool: get_news
 95
 96# Smart triggers — fire research when a sector event lands.
 97triggers:
 98  - name: "mirofish high-impact crowd-sim mentions a sector"
 99    on_stream: "mirofish:sims:emitted"
100    when: "payload.tickers != [] and payload.tickers != None"
101    target:
102      sector_id: "auto"
103      tickers: "{payload.tickers}"
104    cooldown_s: 1800
105    action_mode: manual
106
107phases:
108  - name: research
109    pattern: parallel
110    transition: synthesis
111    agents:
112      - name: sector_reader
113        role: specialist
114        system_prompt_file: src/maf/prompts/anthropic_fs/agents/sector_reader.md
115        sources:
116          - latest_news
117          - sector_graph
118          - filings
119          - web
120          - macro_context
121          - eodhd_news              # ← EODHD MCP: institutional news
122          - eodhd_resolve_ticker    # ← EODHD MCP: name → SYMBOL.EXCHANGE
123        llm_tier: deep
124        max_react_steps: 6
125      - name: comps_spreader
126        role: specialist
127        system_prompt_file: src/maf/prompts/anthropic_fs/agents/comps_spreader.md
128        sources:
129          - snapshot
130          - bars_history
131          - eodhd_fundamentals      # ← EODHD MCP: real ratios (EV/Sales, EV/EBITDA, P/E NTM)
132          - eodhd_eod                # ← EODHD MCP: clean EOD bars when trtools2 stale
133          - eodhd_earnings_calendar  # ← EODHD MCP: upcoming catalysts
134        llm_tier: quick
135        max_react_steps: 6
136
137  - name: synthesis
138    pattern: sequential
139    transition: END
140    agents:
141      - name: note_writer
142        role: synthesis
143        # Vendored note-writer prompt — synthesises the upstream specialists'
144        # AgentSignals into a research-note-quality deliverable.
145        system_prompt_file: src/maf/prompts/anthropic_fs/agents/note_writer.md
146        llm_tier: deep
147        max_react_steps: 1