FinnewsHunter 金融情报平台
将多源财经新闻转化为可检索、可分析的投资研究信号。
这个 Agent 能做什么,适合哪些场景?
FinnewsHunter 是一个基于 AgenticX 的自托管金融新闻分析平台,面向中国财经新闻与股票研究场景。它以 FastAPI 提供后端 API,并通过 React + TypeScript 前端展示新闻、分析结果、搜索和股票 K 线。Celery Beat 定时派发抓取任务,Celery Worker 抓取、去重并保存新闻;PostgreSQL 保存业务数据,Redis 用于缓存,Milvus 保存向量。NewsAnalyst 可调用配置的模型对新闻进行情绪和市场影响分析,分析后的文本可异步向量化。项目还提供由 BullResearcher、BearResearcher、SearchAnalyst 和 InvestmentManager 参与的多智能体投资辩论流程,以及三种辩论模式。
系统通过 10 个已配置来源抓取财经新闻,并以 URL 去重、保留 24 小时内新闻及执行股票关键词过滤。新闻写入 PostgreSQL 后,可通过 /api/v1/news/latest、/api/v1/news/sources 和搜索界面按标题、内容、股票代码或来源查询;前端支持批量选择、批量删除和批量分析。对指定新闻调用 POST /api/v1/analysis/news/{id} 时,NewsAnalyst 生成情绪、情绪分数、置信度和分析结果;EmbeddingService 使用 BailianEmbeddingProvider 生成向量,VectorStorage 使用 MilvusStorage 存储并支持相似度检索。股票页面调用 AkShare 数据,提供日线及 60m、30m、15m、5m、1m K 线和股票代码/名称模糊搜索。辩论流程可让研究角色以 [SEARCH: ...] 格式请求 AkShare、BochaAI、浏览器搜索或知识库数据,再由 InvestmentManager 输出投资评级报告。
- 量化研究团队需要把新浪财经、腾讯财经、东方财富等来源的近期新闻集中入库,并按情绪或股票代码筛选时。
- 投研分析师希望对单篇新闻或一批新闻调用指定模型,获得情绪、置信度与市场影响分析时。
- 关注 A 股的研究人员需要搜索约 5000 只预加载股票,并查看个股多周期 K 线、成交量和均线时。
- 投资团队希望围绕一只股票组织多轮多空辩论,并在辩论中按需补充财务指标、资金流或新闻资料时。
- 自托管工程团队需要以 Docker Compose 运行 PostgreSQL、Redis、Milvus 与 Celery,而将 FastAPI 和前端作为独立开发服务启动时。
这个 Agent 有哪些优点和局限?
- 从抓取、调度、新闻分析、向量存储到 React 前端均有明确组件,适合需要完整自托管研究工作流的团队。
- 支持 Bailian、OpenAI、DeepSeek、Kimi 和 Zhipu 五类模型提供商,并在前端提供模型切换。
- 使用 Celery Beat 和 Worker 自动调度 10 个财经新闻来源,并提供 URL 去重、时间过滤与抓取状态排查方式。
- 同时覆盖新闻情绪分析、Milvus 向量化、股票 K 线,以及带动态检索的多空辩论流程。
- 批量选取、删除和分析新闻的接口与前端操作均有文档说明。
- 运行依赖 AgenticX,安装说明要求从特定本地路径以 editable 模式安装,未提供独立的 AgenticX 安装或版本固定方案。
- 完整部署需要 PostgreSQL、Redis、Milvus、Docker Compose、Celery、Python 和 Node.js,运维面较大。
- 新闻抓取依赖第三方站点可用性;文档明确提到站点 URL 变化可能引发 404,需要修改对应 crawler 配置。
- 至少需要一个模型提供商 API 密钥;不同提供商的可用模型和访问条件由其外部服务决定。
- WebSocket 实时推送与智能体执行轨迹可视化仍标为进行中,知识图谱、记忆和自我演化功能仍属计划。
如何安装或部署这个 Agent?
前提:安装 Python 3.11+、Docker、Docker Compose;前端开发还需要 Node.js 18+。先安装 AgenticX:
cd /Users/damon/myWork/AgenticX
pip install -e .
安装后端依赖并配置环境:
cd FinnewsHunter/backend
pip install -r requirements.txt
cp env.example .env
在 .env 中至少配置一个模型提供商密钥;例如 Bailian:
DASHSCOPE_API_KEY=sk-your-dashscope-key
DASHSCOPE_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
BAILIAN_MODELS=qwen-plus,qwen-max,qwen-turbo
启动基础服务并初始化数据库:
cd FinnewsHunter
docker compose -f deploy/docker-compose.dev.yml up -d postgres redis milvus-etcd milvus-minio milvus-standalone
cd backend
python init_db.py
可选地初始化股票数据:
python -m app.scripts.init_stocks
启动 API:
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
另开终端启动调度与前端:
cd FinnewsHunter
docker compose -f deploy/docker-compose.dev.yml up -d celery-worker celery-beat
cd frontend
npm install
npm run dev
如何使用这个 Agent?
服务启动后,前端地址为 http://localhost:3000,API 文档为 http://localhost:8000/docs。首次可通过以下请求抓取新浪财经新闻:
curl -X POST http://localhost:8000/api/v1/news/crawl -H "Content-Type: application/json" -d '{"source": "sina", "start_page": 1, "end_page": 1}'
查看新闻:
curl "http://localhost:8000/api/v1/news/latest?limit=200"
分析新闻 ID 1:
curl -X POST http://localhost:8000/api/v1/analysis/news/1
选择模型进行批量分析:
curl -X POST "http://localhost:8000/api/v1/analysis/batch" -H "Content-Type: application/json" -d '{"news_ids": [1, 2, 3], "provider": "bailian", "model": "qwen-plus"}'
查询股票 K 线:
curl "http://localhost:8000/api/v1/stocks/SH600519/kline?period=daily&limit=180"