113 lines
3.3 KiB
Markdown
113 lines
3.3 KiB
Markdown
# 项目当前状态简报
|
|
|
|
## 当前结论
|
|
|
|
当前仓库已经具备交付给 OpenClaw 的基础条件。
|
|
|
|
当前主链路是:
|
|
|
|
`FreshRSS 未读 -> RSS 内容提取 -> LLM 总结 -> 规则过滤 -> OpenClaw delivery payload`
|
|
|
|
OpenClaw 应通过 MCP 工具 `run_freshrss_openclaw_pipeline` 调用这条链路,而不是自行拼接脚本。
|
|
|
|
## 当前已完成
|
|
|
|
- 已完成 FreshRSS `greader` API 接入与未读拉取
|
|
- 已完成 FreshRSS 条目到标准化 `item` 的映射
|
|
- 已完成 RSS-first 提取策略
|
|
- 已完成 LLM 总结与校验闭环
|
|
- 已完成规则引擎过滤
|
|
- 已完成 `ArticleCandidateRecord` 与 `OpenClawCandidateInput` 分层
|
|
- 已完成 `OpenClawDeliveryPayload` 批量投递结构
|
|
- 已完成 FreshRSS 已读状态回写
|
|
- 已完成“仅在最终 payload 成功写盘后再标记已读”的语义
|
|
- 已完成 MCP 工具 `run_freshrss_openclaw_pipeline`
|
|
- 已完成默认精简输出模式,减少中间文件
|
|
|
|
## 当前 MCP 工具
|
|
|
|
当前服务入口:
|
|
|
|
- `src/summary_mcp/server.py`
|
|
|
|
当前暴露的 MCP 工具:
|
|
|
|
- `extract_url_content`
|
|
- `extract_item_content`
|
|
- `filter_summary_result`
|
|
- `run_freshrss_openclaw_pipeline`
|
|
|
|
其中生产主入口是:
|
|
|
|
- `run_freshrss_openclaw_pipeline`
|
|
|
|
## 当前关键文件
|
|
|
|
- MCP 服务入口
|
|
- `src/summary_mcp/server.py`
|
|
- FreshRSS 统一工作流
|
|
- `src/summary_mcp/workflows/freshrss_pipeline.py`
|
|
- 摘要循环
|
|
- `src/summary_mcp/core/summary_loop.py`
|
|
- 提取主流程
|
|
- `src/summary_mcp/core/pipeline.py`
|
|
- FreshRSS 集成
|
|
- `src/summary_mcp/integrations/freshrss.py`
|
|
- 规则引擎
|
|
- `src/summary_mcp/filters/engine.py`
|
|
- LLM 结果校验
|
|
- `src/summary_mcp/validators/llm_result.py`
|
|
- OpenClaw candidate 模型
|
|
- `src/summary_mcp/models/article_candidate.py`
|
|
- OpenClaw delivery 模型
|
|
- `src/summary_mcp/models/openclaw_delivery.py`
|
|
- 生产脚本入口
|
|
- `scripts/run_freshrss_pipeline.py`
|
|
- OpenClaw 交接说明
|
|
- `docs/openclaw/openclaw-handoff.md`
|
|
|
|
## 当前输出规则
|
|
|
|
默认生产模式只输出:
|
|
|
|
- `raw/freshrss.raw.json`
|
|
- `candidates/openclaw-delivery-payload.json`
|
|
- `run-report.json`
|
|
|
|
如果需要排障,可开启:
|
|
|
|
- `debug_artifacts=true`
|
|
- 或脚本参数 `--debug-artifacts`
|
|
|
|
这样才会额外输出逐条中间文件。
|
|
|
|
## 当前验证状态
|
|
|
|
已经验证通过:
|
|
|
|
- FreshRSS 未读拉取成功
|
|
- 已读回写成功
|
|
- MCP 工具入口可直接触发完整链路
|
|
- 微信公众号样本可直接使用 RSS 提供的 `summary` 内容提取,不再回源抓网页
|
|
- 精简输出模式已实际跑通
|
|
|
|
## 当前已知限制
|
|
|
|
- 当前对 FreshRSS 条目采用 RSS-first 策略,不再回源抓原网页
|
|
- 如果 RSS 中没有足够正文内容,该条会直接跳过,不会进入后续总结
|
|
- 某些规则仍偏保守,部分内容可能落到 `review`
|
|
- `paywall` 相关启发式仍可能误判中文文本
|
|
- Webhook / 主动投递到 OpenClaw 外部接口尚未实现,当前是由 OpenClaw 通过 MCP 主动调用
|
|
|
|
## 当前最建议的交接阅读顺序
|
|
|
|
1. `README.md`
|
|
2. `docs/openclaw/openclaw-handoff.md`
|
|
3. `docs/openclaw/openclaw-candidate-input-field-spec.md`
|
|
4. `docs/openclaw/openclaw-delivery-payload-spec.md`
|
|
5. `TODO.md`
|
|
|
|
## 一句话结论
|
|
|
|
当前仓库已经从“提取 MCP 原型”演进到“可供 OpenClaw 调用的 FreshRSS -> OpenClaw payload 上游处理器”,可以开始交接,但后续仍建议继续补 webhook / delivery 接线与规则收敛。
|