fix(graph): resolve instrument identity to stop wrong-company hallucination
Agents had no ground-truth ticker→company mapping, so the market analyst could pattern-match a price chart to the wrong company (e.g. TOTDY read as "TotalEnergies"), and every downstream agent inherited the bad framing. Resolve identity once at run start via a cached, fail-open yfinance lookup and inject company/sector/exchange into the shared instrument context that all twelve agents consume, with an explicit do-not-substitute instruction. Resolution runs on both the propagate() and CLI entry points. Also replaces the bare "Continue" message-clear placeholder, which some OpenAI-compatible providers interpreted as the user task, with a context-anchored placeholder carrying the resolved identity and date. #814 #888
This commit is contained in:
1 parent
61522e103e
commit
d7b40a2a5c
18 files changed
+390
-44
No files matched your search
@@ -21,12 +21,21 @@ class Propagator:
|
||||
trade_date: str,
|
||||
asset_type: str = "stock",
|
||||
past_context: str = "",
|
||||
instrument_context: str = "",
|
||||
) -> Dict[str, Any]:
|
||||
"""Create the initial state for the agent graph."""
|
||||
"""Create the initial state for the agent graph.
|
||||
|
||||
``instrument_context`` is the deterministic ticker-identity string
|
||||
resolved once at run start (see
|
||||
``TradingAgentsGraph.resolve_instrument_context``). When empty, agents
|
||||
fall back to ticker-only context via
|
||||
``get_instrument_context_from_state``.
|
||||
"""
|
||||
return {
|
||||
"messages": [("human", company_name)],
|
||||
"company_of_interest": company_name,
|
||||
"asset_type": asset_type,
|
||||
"instrument_context": instrument_context,
|
||||
"trade_date": str(trade_date),
|
||||
"past_context": past_context,
|
||||
"investment_debate_state": InvestDebateState(
|
||||
|
||||
Reference in new issue
Block a user