Skip to content

097/market-intelligence-agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Market Intelligence Agent

一个可被 OpenClaw 或其他 AI coding agent 触发的市场情报 pipeline,通过 新闻抓取 → 标准化 → 分诊 → 风险检查 → 简报生成 的方式,将 RSS 原始资讯转化为结构化市场情报。

项目简介

这不是一个手动运行的脚本集合,而是一个设计用于自动化触发的 market intelligence agent。

核心功能:

  • 从 RSS 源抓取市场新闻
  • 标准化新闻字段(清洗 HTML、统一时间格式)
  • 使用 LLM 进行新闻分诊(识别事件类型、相关标的、重要性)
  • 执行风险检查(来源可信度、信息冲突、旧闻过滤)
  • 根据 watchlist 生成市场情报简报
  • 导出 Markdown 和 JSON 格式报告

适用场景:

  • 作为 OpenClaw 的外部 pipeline / agent 使用
  • 定期触发生成市场情报
  • 支持分阶段运行(外网抓取 + 内网 LLM 分析)

运行入口

完整运行(推荐)

适合同一网络环境可同时访问外网 RSS 和 LLM API 的场景:

python scripts/run_pipeline.py

执行完整流程:fetch → normalize → triage → risk_check → digest → export

分阶段运行

适合抓取和 LLM 分析需要分离网络环境的场景:

阶段 1: 数据采集(需外网/代理)

python scripts/run_ingest.py

执行:fetch + normalize,输出 data/raw/data/normalized/

阶段 2: 数据分析(需 LLM API)

python scripts/run_analysis.py

执行:triage + risk_check + digest + export,输出最终报告

输入来源

RSS 新闻源

配置文件:configs/rss_sources.yaml

当前配置源:

  • 36氪(有效,中文)
  • Reuters Business(已配置,需验证可用性)
  • Bloomberg Technology(已配置,需验证可用性)
  • WSJ Markets(已配置但默认禁用)

Watchlist 标的

配置文件:configs/watchlist.yaml

当前跟踪:

  • Xiaomi (1810.HK)
  • NVIDIA (NVDA)
  • Apple (AAPL)
  • 以及其他 31 家科技公司(详见配置文件)

输出位置

最终报告(推荐读取)

  • data/digest/daily_digest.md - Markdown 格式市场情报简报(OpenClaw 推荐读取此文件)
  • data/digest/digest_<timestamp>.json - 结构化 JSON 简报(包含元数据和完整事件列表)

中间数据目录

  • data/raw/ - 原始 RSS 抓取结果
  • data/normalized/ - 标准化后的新闻
  • data/triaged/ - LLM 分诊后的事件
  • data/risk_checked/ - 风险检查后的事件

环境变量

LLM API Key

Pipeline 的 triage 阶段需要 LLM API Key(推荐使用 OpenRouter)。

方式 1:使用 .env 文件

cp .env.example .env
# 编辑 .env,填入 OPENROUTER_API_KEY

方式 2:导出环境变量

export OPENROUTER_API_KEY=your_api_key_here

如果未设置 API key,triage 会自动回退到 mock 规则模式(准确性较低)。

切换 LLM Provider

configs/settings.yaml 中修改 llm.active 字段:

llm:
  active: openrouter-sonnet  # 当前唯一可用选项

OpenClaw 集成说明

触发方式

OpenClaw 可以将本 repo 作为外部 agent/pipeline 触发,推荐使用以下方式:

方案 1:完整运行(一键生成)

cd /path/to/market-intelligence-agent
source .venv/bin/activate
python scripts/run_pipeline.py

方案 2:分阶段运行(网络环境分离)

如果 OpenClaw 在内网环境运行,可分为两阶段:

  1. 外网环境:python scripts/run_ingest.py(抓取 RSS)
  2. 内网环境:python scripts/run_analysis.py(LLM 分析 + 生成报告)

读取结果

OpenClaw 推荐读取以下文件作为最终输出:

  • 主要输出data/digest/daily_digest.md(人类可读的市场简报)
  • 结构化输出data/digest/digest_<timestamp>.json(包含完整事件列表和元数据)

环境要求

  • Python 3.9+
  • 已安装依赖(pip install -r requirements.txt
  • 已设置 OPENROUTER_API_KEY 环境变量
  • 网络要求:
    • run_ingest.py 需要访问外网 RSS 源(可能需要代理)
    • run_analysis.py 需要访问 LLM API(OpenRouter / 自建 LLM)

Pipeline 流程

RSS 抓取      标准化         新闻分诊         风险检查         简报生成         导出报告
fetch → normalize → run_triage → run_risk_check → build_digest → export_report
(raw)   (normalized)   (triaged)    (risk_checked)     (digest)    (markdown)

各阶段说明

阶段 脚本 功能 LLM 输出
fetch fetch_news.py 从 RSS 抓取原始新闻 data/raw/
normalize normalize_news.py 清洗 HTML、统一格式、截断文本 data/normalized/
triage run_triage.py 识别事件类型、相关标的、重要性 data/triaged/
risk_check run_risk_check.py 检测来源风险、重复新闻、信息冲突 data/risk_checked/
digest build_digest.py 根据 watchlist 生成市场情报摘要 data/digest/
export export_report.py 输出 Markdown 格式报告 data/digest/daily_digest.md

当前状态

组件 状态 说明
market-news-triage LLM + fallback mock 优先调用 LLM,失败时回退到规则
risk-red-flag Mock rule engine 基于规则的风险检测
watchlist-digest Mock rule engine 基于规则的简报生成

快速验证

运行 pipeline 并检查输出:

# 1. 运行完整 pipeline
python scripts/run_pipeline.py

# 2. 查看各阶段数据统计
python scripts/debug_pipeline.py

# 3. 查看最新简报 JSON
cat data/digest/digest_*.json | python -m json.tool | head -50

# 4. 查看生成的 Markdown 报告
cat data/digest/daily_digest.md

安装与配置

1. 创建虚拟环境

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

2. 配置 API Key

cp .env.example .env
# 编辑 .env,填入 OPENROUTER_API_KEY

3. (可选)修改 watchlist 或 RSS 源

  • 编辑 configs/watchlist.yaml 添加/删除跟踪标的
  • 编辑 configs/rss_sources.yaml 添加/删除新闻源

目录结构

├── configs/                  # 配置文件
│   ├── watchlist.yaml        # Watchlist 标的定义
│   ├── rss_sources.yaml      # RSS 新闻源
│   └── settings.yaml         # 全局设置(LLM provider)
├── scripts/                  # Pipeline 脚本
│   ├── run_pipeline.py       # 完整运行(推荐)
│   ├── run_ingest.py         # 阶段 1: 采集(fetch + normalize)
│   ├── run_analysis.py       # 阶段 2: 分析(triage → export)
│   ├── fetch_news.py         # RSS 抓取
│   ├── normalize_news.py     # 新闻标准化
│   ├── run_triage.py         # 新闻分诊(LLM)
│   ├── run_risk_check.py     # 风险检查
│   ├── build_digest.py       # 简报生成
│   ├── export_report.py      # Markdown 导出
│   ├── skill_runner.py       # Skill 调用引擎
│   └── utils.py              # 工具函数
├── skills/                   # Skill 定义
│   ├── market-news-triage/
│   ├── risk-red-flag/
│   └── watchlist-digest/
├── data/                     # 数据目录(git 忽略)
│   ├── raw/                  # 原始 RSS 数据
│   ├── normalized/           # 标准化新闻
│   ├── triaged/              # 分诊后事件
│   ├── risk_checked/         # 风险检查后事件
│   └── digest/               # 最终简报(Markdown + JSON)
├── docs/                     # 文档
└── tests/                    # 测试

事件类型(Event Taxonomy)

事件类型 说明
earnings 财报和业绩公告
acquisition 并购、收购或投资
partnership 战略合作或伙伴关系
regulation 政策或监管变化
product_launch 产品或服务发布
management_change 高管变动、人事调整
lawsuit 诉讼、法律纠纷
supply_chain 供应链变化
industry_trend 行业趋势或分析
other 其他新闻事件

详见 docs/event-schema.md

当前限制

  • 新闻源较少:主要依赖 36氪,其他国际源需验证可用性
  • 风险检查和简报生成未接 LLM:使用简单规则引擎
  • 无事件去重/聚类:相同事件的多篇报道可能重复出现
  • 无持久化存储:每次运行覆盖上一次数据
  • 无自动调度:需手动或外部 agent 触发

不包含

这是 MVP 版本,不包含

  • 自动交易逻辑
  • 数据库存储
  • 推送机器人(Telegram / 飞书)
  • Web UI

Roadmap

  • 接入 risk-red-flag / watchlist-digest 的 LLM
  • 增加更多新闻源,排查国际 RSS feed 可用性
  • 引入事件去重与聚类
  • 引入事件数据库(PostgreSQL)
  • 自动推送市场简报
  • Web UI 查看历史 digest

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages