amprsnd1/openclaw-news-intel

GitHub: amprsnd1/openclaw-news-intel

面向 OpenClaw 智能体的本地优先新闻情报扫描器,将公开头条与观察列表匹配并生成结构化简报。

Stars: 0 | Forks: 0

# news-intel OpenClaw agents 的本地头条信号扫描器和新闻情报连接器。 `news-intel` 是一个本地优先的 CLI 工具,它会刷新公开的新闻头条源,将其与观察列表进行匹配,将相关的头条新闻分组为信号簇,并返回紧凑的 markdown 简报,供 OpenClaw 直接使用。 主要的 UX(用户体验)设计十分简单: ``` news-intel morning-scan ``` 研究模式仍然存在,但它是出现信号后进行深入研究的高级路径。它不是默认的晨间工作流。 ## 状态 公开 Beta 候选版本 / 本地优先 Beta 版。 软件包版本:`0.2.0-beta.1`。 ## 功能介绍 - 扫描头条新闻源以获取与观察列表相关的信号。 - 将相关的头条新闻分组为簇。 - 将头条新闻路由到主要和次要主题。 - 在有请求时显示源限制和被拒绝的/噪声匹配。 - 通过 CLI 和 SQLite 数据库在本地运行。 - 可被 OpenClaw 作为安全的本地技能使用。 - 支持用于深度研究的高级收集、丰富、搜索和简报工作流。 ## 不包含的功能 - 不会绕过付费墙。 - 不抓取 Reuters、Bloomberg、FT、WSJ 或 Dow Jones 的全文。 - 不提供有保证的实时新闻。 - 不能替代获得许可的新闻专线访问。 - 不作为托管的 SaaS 运行。 - 不抓取仅限订阅的内容,也不对受限的媒体机构使用浏览器自动化。 ## 心智模型 ``` Sources -> Fast Scan -> Watchlists -> Signals / Clusters -> OpenClaw briefing ``` 高级模式: ``` Signal found -> Collect -> Enrich -> Digest -> Deep research briefing ``` RSS、Google News RSS 和 GDELT 用于发现头条新闻和元数据。观察列表定义了要监控的内容。`morning-scan` 和 `scan` 用于快速获取头条信号。`collect -> enrich -> digest` 用于更深入的研究。Fundus 可以选择在发现信号后丰富公开支持的文章。除非配置了许可的 API 访问权限,否则受限的媒体机构仅保留元数据。 ## 快速开始 ``` git clone cd openclaw-news-intel bash scripts/setup.sh source .venv/bin/activate news-intel doctor news-intel morning-scan ``` 可选的 OpenClaw 设置: ``` bash scripts/install_openclaw_skill.sh openclaw skills info news-intelligence ``` 然后询问 OpenClaw: ``` Use News Intelligence. Run morning scan. ``` ## 路径约定 在示例中,`` 表示此代码库的本地检出路径。 ``` export NEWS_INTEL_HOME=/path/to/news-intel cd "$NEWS_INTEL_HOME" ``` ## 主命令 ``` news-intel morning-scan ``` 将此用于每日头条监控、快速信号检测、观察列表警报和 OpenClaw 晨间简报。 `morning-scan` 首先运行新的 RSS 摄取,然后扫描过去 24 小时内的所有观察列表,将重复的头条新闻分组为簇,将每条头条新闻路由到一个主要主题,并返回简洁的 markdown。 ## Doctor 退出代码 `news-intel doctor` 将损坏的配置与可用的降级配置区分开来: | 退出代码 | 状态 | 含义 | |---:|---|---| | 0 | `usable` | 核心 CLI、配置、数据库、观察列表、源组和 RSS 路径运行正常。 | | 1 | `broken` | 必需的核心组件已损坏,例如配置加载、数据库初始化、观察列表、源组或 RSS 核心设置。 | | 2 | `usable_but_degraded` | 配置仍然可以运行,但可选或外部组件处于降级状态。 | 常见的退出代码 `2` 示例包括:最近的 GDELT HTTP 429 速率限制、GDELT 不可用、Fundus 不可用、缺少 OpenClaw 技能注册、Google News RSS 被禁用,或已启用的非核心源失败。退出代码 `2` 并不意味着 `morning-scan` 已损坏。 ## 我应该使用哪个命令? | 目标 | 命令 | |---|---| | 每日晨间简报 | `news-intel morning-scan` | | 扫描单个主题 | `news-intel scan --topic "iran_war_risk" --since "24h"` | | 扫描自由格式的查询 | `news-intel scan --query "NATO troops eastern Europe" --since "24h"` | | 搜索本地数据库 | `news-intel search "Ukraine IMF loan" --mode precise` | | 深度研究 | `collect -> enrich -> digest` | | 检查设置 | `news-intel doctor` | | 检查源 | `news-intel source-health` | ## OpenClaw 设置 OpenClaw 不直接抓取新闻。OpenClaw 通过新闻情报技能调用本地的 `news-intel` CLI。 安装或刷新技能: ``` bash scripts/install_openclaw_skill.sh openclaw skills info news-intelligence ``` 推荐的 OpenClaw 命令: ``` news-intel morning-scan ``` 示例提示词: - 使用新闻情报。运行晨间扫描。 - 使用新闻情报。扫描过去 24 小时的伊朗战争风险。 - 使用新闻情报。在本地数据库中搜索乌克兰 IMF 贷款。 - 使用新闻情报。为欧洲-俄罗斯战争准备运行深度简报。 ## 观察列表 包含的战略观察列表: - `europe_ru_war_preparations` - `china_taiwan_risk` - `iran_war_risk` - `migration_policy_europe` - `global_trade_and_country_flows` 基准观察列表还包括: - `ukraine_financing` - `eu_energy_security` 观察列表位于 `config/watchlists.yaml` 中。它们定义了上下文术语、核心术语、建议查询、默认扫描源组、硬性限制和简报重点。 ## 源访问模型 - RSS/公开源:头条新闻和公开元数据。 - Google News RSS:元数据/头条新闻发现。 - GDELT:元数据发现;可能会受到速率限制。 - Fundus:针对公开支持文章的可选丰富。 - Reuters/Bloomberg/FT/WSJ/Dow Jones:除非配置了获得许可的 API 访问权限,否则仅限元数据。 本项目不会绕过付费墙、登录、发布者限制或仅限订阅的访问。 `news-intel source-health` 将失败的已启用源与已禁用的路线图占位符区分开来。`disabled_roadmap` 源意味着该源有意处于非活动状态,因为没有配置稳定的公开源;它不是失败的源。 ## 晨间扫描模式 主要用户流程: ``` news-intel morning-scan ``` 用于: - 每日头条监控。 - 快速信号检测。 - 观察列表警报。 - OpenClaw 晨间简报。 等效的显式命令: ``` news-intel scan --all-watchlists --since "24h" --min-confidence medium --group-by-primary --fresh ``` 晨间扫描输出包括: - 最新摄取状态。 - 顶级警报。 - 信号簇。 - 主要、次要和溢出主题路由。 - 源多样性说明。 - 观察列表摘要。 - 源限制。 使用 `--show-seen` 包含之前已显示的项目。在调试为什么头条新闻被排除或降级时使用 `--show-rejected`。 ## 主题扫描模式 聚焦扫描: ``` news-intel scan --topic "iran_war_risk" --since "24h" ``` 用于: - 检查单个主题。 - 运行聚焦扫描。 - 调试观察列表行为。 - 使用 `--show-rejected` 检查被拒绝的/噪声匹配。 自由格式查询扫描: ``` news-intel scan --query "NATO troops eastern Europe" --since "24h" ``` 在需要时可以指定源组: ``` news-intel scan --topic "global_trade_and_country_flows" --since "24h" --source market_signals,google_news_rss --min-confidence medium ``` ## 研究模式,高级 研究模式是出现信号后用于获取更深层背景信息的高级工作流。它不是默认的晨间工作流。 ``` news-intel collect --topic "" --days 7 --max-items 30 --max-queries 1 --use-cache-first news-intel enrich --topic "" --days 30 --adapter fundus --max-items 50 --include-rss news-intel digest --topic "" --days 7 --include-metadata-only ``` 用于: - 出现信号后的深度挖掘。 - 收集上下文。 - 公开文章丰富。 - 每周研究简报。 - 源诊断和仅限元数据的披露。 研究模式保守地将 GDELT 用于主题发现,将 Fundus(可选)用于公开文章丰富,并使用简报渲染以获得更长的简报。GDELT 和 Fundus 的失败应降级为警告,而不是破坏核心的 RSS 扫描路径。 ## 故障排除 - `news-intel: command not found`:激活 `.venv`,运行 `python3 -m pip install -e .`,或检查 `which news-intel`。 - `news-intel doctor` 退出代码为 `2`:这意味着 `Status: usable_but_degraded`,而不是损坏。阅读 `Degraded components`、`Why this is not fatal` 和 `Recommended action`。Fundus 不可用、GDELT 429 以及缺少 OpenClaw 注册对于本地扫描来说是非致命的。 - Fundus 不可用:使用 `python3 -m pip install -e ".[fundus]"` 安装可选的额外依赖;在 macOS 原生依赖项错误时,运行 `brew install lz4 xz zstd`,并使用 Homebrew 的包含/库标志重试。 - GDELT HTTP 429:等待并稍后使用 `--max-queries 1 --use-cache-first` 重试;RSS 和 Google News RSS 扫描应仍然有效。 - `morning-scan` 返回零信号:当不存在高/中信号时,零可能是正常的。要检查更多内容,请运行 `news-intel morning-scan --show-seen` 或 `news-intel scan --all-watchlists --since "24h" --min-confidence low --group-by-primary --show-rejected --show-seen`。 - OpenClaw 技能不可见:运行 `bash scripts/install_openclaw_skill.sh`,然后运行 `openclaw skills info news-intelligence`;如果过时,请使用 `openclaw stop` 和 `openclaw start` 重启。 - OpenClaw 使用了过时的技能:将 `openclaw-skills/news-intelligence/SKILL.md` 与 `~/.openclaw/custom-skills/news-intelligence/SKILL.md` 进行比较,然后重新运行安装脚本。 - Google News RSS 仅缓存:缓存的元数据对于扫描是可以接受的;如果查询源没有返回新条目,请稍后重新运行。 - 输出中没有 URL:当 URL 可用时,扫描输出使用 markdown 链接;没有 URL 的源记录将显示为不可用,而不是捏造。 ## 开发 项目结构: ``` news_pipeline/ cli.py # CLI entrypoints scanner.py # fast scan, routing, clustering, signal output collector.py # GDELT/topic collection and enrichment orchestration digest.py # search and digest markdown rendering storage.py # SQLite storage config.py # sources/watchlists configuration loading ingest/ # RSS, GDELT, Fundus adapters config/ sources.yaml watchlists.yaml openclaw-skills/ news-intelligence/SKILL.md scripts/ setup.sh install_openclaw_skill.sh setup_with_fundus.sh smoke_test.sh ``` 设置: ``` bash scripts/setup.sh source .venv/bin/activate ``` 验证: ``` pytest -q bash scripts/smoke_test.sh news-intel doctor news-intel morning-scan ``` 本地运行时文件被有意忽略:`.venv/`、`data/*.sqlite`、日志、缓存和本地 OpenClaw 运行时配置。 ## 许可证 MIT
标签:RSS, SQLite, 数据聚合, 文档结构分析, 新闻情报, 本地部署, 逆向工具