[FEATURE] 整合FNewsCrawler补充市场情绪实时新闻数据
✨ 功能描述 / Feature Description
简要描述 / Brief description:
整合FNewsCrawler的MCP服务,为TradingAgents-CN的市场情绪分析模块提供实时中文财经新闻、社交媒体讨论及资金流向数据,解决当前实时新闻数据缺失导致的情绪分析空泛问题。
详细说明 / Detailed description:
- 通过FNewsCrawler的MCP接口调用同花顺问财等平台的工具(如
iwencai_news_query获取新闻、get_iwencai_industry_funds获取资金流向、股吧讨论爬取工具等),实时获取指定股票/行业的相关资讯。 - 新增数据适配层,将FNewsCrawler返回的结构化数据(新闻标题、摘要、发布时间、资金流向指标等)转换为TradingAgents-CN情绪分析模块可直接使用的格式。
- 在市场情绪分析流程中增加数据验证机制,若FNewsCrawler返回数据为空,自动降级为原有数据源(如Google News),确保分析连续性。
- 支持在Web界面配置FNewsCrawler服务地址、调用频率限制及数据源优先级,适配不同部署环境。
使用场景 / Use Case
问题背景 / Problem:
当前市场情绪分析(social_media_analyst.py)依赖的数据源有限,无法获取实时中文财经新闻(如同花顺、东方财富股吧)和资金流向数据,导致分析结果缺乏时效性和具体依据(如报告中频繁出现“无法获取数据”的通用框架)。
解决方案 / Solution:
通过集成FNewsCrawler的MCP服务,实时拉取同花顺问财的新闻资讯、概念板块资金流向、股吧讨论等数据,补充市场情绪分析的多维度依据,使情绪评分(如散户情绪、机构情绪)更具象化。
使用示例 / Usage Example:
# 在social_media_analyst.py中调用FNewsCrawler工具
from tradingagents.toolkit.fnewscrawler_tool import FNewsCrawlerTool
def social_media_analyst_node(state):
ticker = state["company_of_interest"]
# 初始化FNewsCrawler客户端
fnc_tool = FNewsCrawlerTool(base_url=os.getenv("FNEWSCRAWLER_URL"))
# 获取实时新闻(如贵州茅台相关新闻)
news_data = fnc_tool.get_financial_news(query=ticker, page=1)
# 获取所属行业资金流向(如白酒行业)
industry_funds = fnc_tool.get_industry_funds(industry_name="白酒")
# 获取股吧讨论数据
guba_discussions = fnc_tool.get_concept_funds(concept_name=ticker)
# 将数据传入情绪分析逻辑
sentiment_score = analyze_sentiment(news_data, industry_funds, guba_discussions)
return {
"social_sentiment_report": f"实时情绪评分:{sentiment_score},基于{len(news_data)}条新闻和{len(guba_discussions)}条讨论",
"raw_data": {"news": news_data, "funds": industry_funds}
}实现建议 / Implementation Suggestions
技术方案 / Technical Approach:
- 部署FNewsCrawler服务:通过Docker部署FNewsCrawler,确保MCP服务可用(默认地址
http://localhost:8480),并启用同花顺问财新闻、股吧讨论、资金流向等工具。 - 开发MCP客户端适配层:在
tradingagents/toolkit/下新增fnewscrawler_tool.py,封装FNewsCrawler的工具调用逻辑(如处理参数校验、错误重试、数据格式转换)。 - 修改情绪分析模块:
- 在
social_media_analyst.py中引入FNewsCrawler工具,将实时新闻和讨论数据纳入情绪评分模型(如增加“新闻热度权重”“资金流向相关性”指标)。 - 在
news_analyst.py中补充新闻事件的时效性标签(如“5分钟内发布”),增强事件影响分析的实时性。
- 在
- 配置管理:在
.env文件中新增FNewsCrawler服务地址、超时时间等配置,支持多环境适配。
相关组件 / Related Components:
- 数据获取 / Data Acquisition
- 分析引擎 / Analysis Engine
- 配置管理 / Configuration
替代方案 / Alternatives
其他解决方案 / Alternative solutions:
- 直接开发针对同花顺、东方财富的爬虫:但需自行处理反爬机制、登录状态维护和数据格式标准化,开发成本高且稳定性差。
- 接入付费财经数据API(如同花顺开放平台):成本较高,且接口限制较多,灵活性低于FNewsCrawler。
现有工具 / Existing tools:
FNewsCrawler已实现同花顺问财、东方财富等平台的爬虫功能,并通过MCP协议标准化接口,无需重复开发,且支持高并发和自动重试,适配TradingAgents-CN的多智能体架构。
优先级 / Priority
重要性 / Importance:
- 高优先级 / High Priority - 核心功能缺失(市场情绪分析依赖实时数据,当前数据不足导致分析结果可信度低)
紧急性 / Urgency:
- ⏰ 尽快 / Soon - 影响用户体验(用户无法获取基于实时新闻的情绪分析,核心功能效果打折扣)
界面设计 / UI/UX Design
界面要求 / UI Requirements:
- 在市场情绪分析报告中新增“数据源标识”,如“实时新闻来源:同花顺问财(FNewsCrawler)”,提升透明度。
- Web界面增加FNewsCrawler服务状态指示器(如绿色“已连接”/红色“断开”),便于用户排查数据获取问题。
交互流程 / User Flow:
- 用户在Web界面输入股票代码(如600519)并触发分析。
- 系统自动调用FNewsCrawler的MCP接口,获取该股票的实时新闻、股吧讨论及资金流向数据。
- 情绪分析模块结合新数据生成多维度评分(如新闻正面占比65%、散户情绪指数7.2/10)。
- 分析结果页面展示具体新闻摘要和情绪驱动因素(如“基于3条新品发布新闻,机构情绪偏乐观”)。
影响评估 / Impact Assessment
受益用户 / Target Users:
- 新手用户 / Beginner Users
- 高级用户 / Advanced Users
- 所有用户 / All Users
预期收益 / Expected Benefits:
- 增强易用性 / Better usability(解决“数据缺失”问题,分析报告更具体)
- 扩展功能 / Extended functionality(覆盖同花顺、股吧等中文数据源)
- 提升准确性 / Accuracy improvement(实时数据使情绪评分更贴合市场动态)
相关资源 / Related Resources
参考链接 / References:
- FNewsCrawler GitHub地址:https://github.com/noimank/FNewsCrawler
- MCP协议适配文档:前文“MCP协议及其适配”说明
- TradingAgents-CN情绪分析模块代码:
tradingagents/agents/analysts/social_media_analyst.py
相关Issues / Related Issues:
- 关联功能请求:市场情绪分析数据来源扩展
额外信息 / Additional Context
- FNewsCrawler支持的工具列表中,
iwencai_news_query(新闻)、get_iwencai_concept_funds(概念资金流向)、东方财富股吧爬虫是核心适配对象,需优先集成。 - 建议在测试环境中验证数据获取频率(如每30分钟一次),避免触发平台反爬限制。
Source: hsliuping/TradingAgents-CN