用途:先完整采集可持续类期刊的 RSS/Atom 条目并持久化,再进行主题相关性筛选,为后续 API、全文或摘要流程提供以 DOI 为键的稳定存储。
主要能力:使用独立 SQLite 数据库保存 RSS 元数据;entries 表以 doi 为主键,含 title、url、summary、categories 等元数据字段,以及 doi_is_surrogate 与 is_relevant 标记(1 相关、0 已裁剪、NULL 未标注);源中缺少 DOI 时生成确定性的替代 DOI 键;筛选后相关条目保留元数据,无关条目清空元数据仅留 DOI 行;支持订阅源管理、OPML 导入与查询。
使用方式:先安装依赖并初始化数据库: python3 -m pip install feedparser export SUSTAIN_RSS_DB_PATH="/absolute/path/to/workspace-rss-bot/sustainability_rss.db" python3 scripts/rss_subscribe.py init-db --db "$SUSTAIN_RSS_DB_PATH" 再按时间窗口采集:python3 scripts/rss_subscribe.py collect-window --db "$SUSTAIN_RSS_DB_PATH" --opml assets/journal.opml --start 2026-02-01 --end 2026-02-10 --max-items-per-feed 150 --topic-prompt "..." --output /tmp/sustainability-candidates.json --pretty。随后在智能体上下文中做语义筛选,产出 candidate_id 列表,再执行:python3 scripts/rss_subscribe.py insert-selected --db "$SUSTAIN_RSS_DB_PATH" --candidates /tmp/sustainability-candidates.json --selected-ids 3,7,12,21。可选维护同步用 sync,源管理用 add-feed、import-opml,查询用 list-feeds、list-entries。
适用场景:需要以 DOI 为键稳定存储可持续主题期刊 RSS 记录,并在入库后做基于提示词的主题筛选与存储裁剪的流程。
限制:筛选为语义判断而非仅正则,需在智能体上下文中完成;无效 selected IDs 会在标注与裁剪写入前直接失败;网络或订阅源失败时继续处理其他源并在源状态中保留错误;缺少 feedparser 时返回安装指引。支持的参数包括 --db、SUSTAIN_RSS_DB_PATH、--opml、--feed-url、--use-subscribed-feeds、--topic-prompt、--start/--end、--max-feeds、--max-items-per-feed、--user-agent、--cleanup-ttl-days。参考文件为 references/input-model.md、references/output-rules.md、references/time-range-rules.md;资源为 assets/journal.opml、assets/config.example.json;脚本为 scripts/rss_subscribe.py。收费、价格与具体效果暂未提供。