diff --git a/cli/main.py b/cli/main.py index e6ff309..3f42f2e 100644 --- a/cli/main.py +++ b/cli/main.py @@ -97,7 +97,7 @@ class MessageBuffer: if content is not None: latest_section = section latest_content = content - + if latest_section and latest_content: # Format the current section for display section_titles = { @@ -808,7 +808,7 @@ def run_analysis(): msg_type = "System" # Add message to buffer - message_buffer.add_message(msg_type, content) + message_buffer.add_message(msg_type, content) # If it's a tool call, add it to tool calls if hasattr(last_message, "tool_calls"): diff --git a/tradingagents/agents/analysts/fundamentals_analyst.py b/tradingagents/agents/analysts/fundamentals_analyst.py index 644d9f6..716d4de 100644 --- a/tradingagents/agents/analysts/fundamentals_analyst.py +++ b/tradingagents/agents/analysts/fundamentals_analyst.py @@ -51,9 +51,14 @@ def create_fundamentals_analyst(llm, toolkit): result = chain.invoke(state["messages"]) + report = "" + + if len(result.tool_calls) == 0: + report = result.content + return { "messages": [result], - "fundamentals_report": result.content, + "fundamentals_report": report, } return fundamentals_analyst_node diff --git a/tradingagents/agents/analysts/market_analyst.py b/tradingagents/agents/analysts/market_analyst.py index 4a18761..41ee944 100644 --- a/tradingagents/agents/analysts/market_analyst.py +++ b/tradingagents/agents/analysts/market_analyst.py @@ -76,9 +76,14 @@ Volume-Based Indicators: result = chain.invoke(state["messages"]) + report = "" + + if len(result.tool_calls) == 0: + report = result.content + return { "messages": [result], - "market_report": result.content, + "market_report": report, } return market_analyst_node diff --git a/tradingagents/agents/analysts/news_analyst.py b/tradingagents/agents/analysts/news_analyst.py index 12222f5..e1f03aa 100644 --- a/tradingagents/agents/analysts/news_analyst.py +++ b/tradingagents/agents/analysts/news_analyst.py @@ -47,9 +47,14 @@ def create_news_analyst(llm, toolkit): chain = prompt | llm.bind_tools(tools) result = chain.invoke(state["messages"]) + report = "" + + if len(result.tool_calls) == 0: + report = result.content + return { "messages": [result], - "news_report": result.content, + "news_report": report, } return news_analyst_node diff --git a/tradingagents/agents/analysts/social_media_analyst.py b/tradingagents/agents/analysts/social_media_analyst.py index 42fb1f7..d556f73 100644 --- a/tradingagents/agents/analysts/social_media_analyst.py +++ b/tradingagents/agents/analysts/social_media_analyst.py @@ -47,9 +47,14 @@ def create_social_media_analyst(llm, toolkit): result = chain.invoke(state["messages"]) + report = "" + + if len(result.tool_calls) == 0: + report = result.content + return { "messages": [result], - "sentiment_report": result.content, + "sentiment_report": report, } return social_media_analyst_node