{"skill":{"slug":"article-workflow","displayName":"Article Workflow","summary":"自动抓取并分析文章URL，生成摘要、标签和质量评分，支持去重、归档至飞书及定时监控。","description":"# Article Workflow Skill\n\n## 描述\n\n文章分析工作流自动化 Skill。提供从文章抓取、分析、归档到质量评分的完整流程，支持 URL 去重、Heartbeat 自动触发、监控日志等功能。\n\n> **注意：** 本 Skill 已合并原 `article-analyzer` 功能，推荐使用本 Skill。\n\n## 🔒 安全说明\n\n**数据边界：**\n- ✅ 所有数据文件在 `skills/article-workflow/data/` 内\n- ✅ 所有日志文件在 `skills/article-workflow/logs/` 内\n- ✅ 不访问工作区外文件\n- ✅ 路径验证确保所有操作在 Skill 目录内\n\n**凭证要求：**\n- ✅ 需要 `BITABLE_APP_TOKEN` 和 `BITABLE_TABLE_ID`\n- ✅ 凭证通过 `config.json` 或环境变量提供\n- ✅ 敏感信息不会被提交到版本控制（.gitignore）\n\n**运行模式：**\n- **独立模式** - 仅 CLI 功能（去重检查、状态查看）\n- **集成模式** - 需要 OpenClaw 环境（完整功能）\n\n## 使用场景\n\n当用户需要：\n- 分析文章 URL（微信、知乎、GitHub 等）\n- 自动生成摘要、标签、分析报告\n- 将分析结果归档到飞书多维表格和文档\n- 对文章进行质量评分（S/A/B/C/D）\n- 自动检查重复 URL\n- 定时自动处理群聊中的文章链接\n- **批量分析多篇文章**（并发执行）\n\n## 🚀 智能路由模式\n\n### 单篇模式（默认）\n\n**触发：** 单篇文章 URL\n\n```\n分析这篇文章：https://example.com/article\n```\n\n**执行方式：** 主 Agent 一次性执行（1 次流式请求）\n\n```\n主 Agent（机器人）\n  ├─ 流式请求开始 ─────┐\n  │  1. web_fetch 抓取   │\n  │  2. 自己分析内容     │  ← 同一次流式请求\n  │  3. 生成完整报告     │\n  │  4. feishu_create_doc│\n  │  5. feishu_bitable   │\n  └─ 流式请求结束 ─────┘\n  \n模型请求次数：1 次 ✅\n```\n\n### 批量模式（自动）\n\n**触发：** 多篇文章 URL\n\n```\n批量分析这些文章：\n- https://example.com/article1\n- https://example.com/article2\n- https://example.com/article3\n```\n\n**执行方式：** SubAgent 并发执行（N 次但并行）\n\n```\n主 Agent（机器人）\n  ├─ 创建 3 个 SubAgent（并发）\n  │   ├─ SubAgent-1: 分析 url1  →  1 次流式请求\n  │   ├─ SubAgent-2: 分析 url2  →  1 次流式请求\n  │   └─ SubAgent-3: 分析 url3  →  1 次流式请求\n  └─ 汇总结果\n  \n模型请求次数：3 次（但并发执行，总时间 ≈ 1 次）✅\n```\n\n### 并发控制\n\n- **最大并发数：** 5 个 SubAgent\n- **超过限制：** 自动分批处理\n- **流式优化：** 工具调用不中断流式，算 1 次请求\n\n---\n\n## 工作流程\n\n### 单篇模式\n\n```\n输入：文章 URL\n  ↓\n主 Agent 智能路由（单篇模式）\n  ├─ web_fetch 抓取内容\n  ├─ 分析内容 + 质量评分\n  ├─ 生成详细报告\n  ├─ feishu_create_doc 创建文档\n  └─ feishu_bitable 归档到多维表格\n  ↓\n输出：摘要 + 报告链接 + 评分\n```\n\n### 批量模式\n\n```\n输入：多篇文章 URL\n  ↓\n主 Agent 智能路由（批量模式）\n  ├─ 创建 SubAgent #1 ─→ 分析文章 1\n  ├─ 创建 SubAgent #2 ─→ 分析文章 2\n  ├─ 创建 SubAgent #3 ─→ 分析文章 3\n  └─ 等待所有 SubAgent 完成\n      ↓\n    汇总所有结果\n  ↓\n输出：汇总报告 + 各文章链接\n```\n\n## 🔧 配置管理\n\n### 配置保护机制\n\n**重要：** `config.json` 包含敏感信息，已加入 `.gitignore`，不会被 Git 提交。\n\n**在修改/升级 Skill 前：**\n```bash\ncd skills/article-workflow\n\n# 1. 备份配置（修改前必做）\npython3 scripts/config_manager.py backup\n\n# 或使用脚本\n./scripts/backup-config.sh\n```\n\n**修改/升级后：**\n```bash\n# 恢复配置\npython3 scripts/config_manager.py restore\n\n# 或使用脚本\n./scripts/restore-config.sh\n```\n\n### 首次使用配置\n\n**方式 1：配置向导（推荐）**\n```bash\npython3 scripts/config_manager.py guide\n```\n\n**方式 2：手动创建**\n```bash\n# 复制示例配置\ncp config.example.json config.json\n\n# 编辑配置\nvim config.json\n```\n\n**方式 3：环境变量**\n```bash\nexport BITABLE_APP_TOKEN=your_token\nexport BITABLE_TABLE_ID=your_table_id\n```\n\n### 配置参数\n\n在 `config.json` 中配置：\n\n```json\n{\n  \"bitable\": {\n    \"app_token\": \"YOUR_BITABLE_TOKEN\",\n    \"table_id\": \"YOUR_TABLE_ID\"\n  },\n  \"workflow\": {\n    \"check_interval_hours\": 6,\n    \"batch_limit\": 10,\n    \"enable_quality_score\": true,\n    \"enable_url_dedup\": true\n  },\n  \"paths\": {\n    \"data\": \"./data\",\n    \"logs\": \"./logs\"\n  }\n}\n```\n\n## 命令\n\n### 分析单篇文章\n\n**飞书单聊（推荐）：**\n\n```\n分析这篇文章：https://example.com/article\n```\n\n**飞书群聊：**\n\n```\n分析这篇文章：https://example.com/article\n```\n\n单聊时无需@机器人，直接发送即可。\n\n### 查看状态\n\n```bash\ncd skills/article-workflow\n./scripts/monitor.sh status\n```\n\n### 生成周报\n\n```bash\n./scripts/monitor.sh report\n```\n\n### 清理数据\n\n```bash\n./scripts/monitor.sh cleanup\n```\n\n## 输出格式\n\n### 群聊消息\n\n```\n✅ 文章分析完成\n\n📌 [文章标题]\n🔗 [URL]\n\n📝 简短摘要\n[3-5 句摘要]\n\n🏷️ 标签：[标签 1] [标签 2] [标签 3]\n⭐ 重要程度：[高/中/低]\n📊 质量评分：[85/100] (A 级)\n\n📄 详细报告：[飞书文档链接]\n📊 已录入：[Bitable 链接]\n```\n\n### Bitable 字段映射\n\n**必填字段：**\n| 字段名 | 说明 | 来源 |\n|--------|------|------|\n| **文章标题（主）** | 主字段（显示用） | 文章标题 |\n| **标题** | 副标题（兼容用） | 文章标题（与主字段相同） |\n| **简短摘要** | 3-5 句摘要 | LLM 生成 |\n| **阅读日期** | 分析日期 | 当前时间戳 |\n| **来源** | 文章来源 | 微信/GitHub/知乎等 |\n| **关键词标签** | 多选标签 | LLM 提取 + 匹配现有选项 |\n| **重要程度** | 高/中 | 根据质量评分 |\n| **状态** | 已完成 | 固定值 |\n| **创建方式** | 手动触发/自动分析 | 根据触发方式 |\n| **URL 链接** | 原文链接 | 用户提供的 URL |\n| **详细报告链接** | 飞书文档链接 | feishu_create_doc 返回 |\n\n**注意：** \"文章标题（主）\"和\"标题\"都需要填写，确保数据完整性。\n\n### 质量评分\n\n| 总分 | 等级 | 重要程度 | 处理策略 |\n|------|------|---------|---------|\n| 85-100 | S 级 | 极高 | 立即处理 + 团队分享 |\n| 70-84 | A 级 | 高 | 优先处理 + 详细分析 |\n| 55-69 | B 级 | 中 | 正常处理 + 标准报告 |\n| 40-54 | C 级 | 低 | 简略处理 + 基础摘要 |\n| 0-39 | D 级 | 极低 | 跳过或仅存档 |\n\n## 依赖\n\n- Python 3.7+\n- 飞书开放平台 API\n- OpenClaw 框架\n\n## 安装\n\n```bash\ncd ~/.openclaw/workspace/skills\ngit clone <repo_url> article-workflow\ncd article-workflow\n./install.sh\n```\n\n## 文件结构\n\n```\narticle-workflow/\n├── SKILL.md                    # 本文件\n├── README.md                   # 详细文档\n├── install.sh                  # 安装脚本\n├── config.example.json         # 配置模板\n├── scripts/                    # 可执行脚本\n│   ├── check_url_dup.py        # URL 去重\n│   ├── monitor.sh              # 监控\n│   └── workflow.py             # 主流程\n├── docs/                       # 文档\n│   ├── config.md               # 配置说明\n│   ├── quality-score.md        # 评分标准\n│   └── automation.md           # 自动化\n├── data/                       # 运行时数据\n│   └── url_cache.json\n└── logs/                       # 日志\n    ├── workflow.log\n    └── error.log\n```\n\n## 注意事项\n\n1. **首次使用**需要配置 `config.json`\n2. **飞书授权**需要完成 OAuth 流程\n3. **Heartbeat 自动触发**需要在 HEARTBEAT.md 中配置\n4. **日志文件**建议定期清理（>30 天）\n5. **URL 缓存**保留最近 1000 条记录\n\n## 故障排查\n\n### URL 去重不生效\n- 检查 `data/url_cache.json` 是否存在\n- 验证 Python 脚本权限：`chmod +x scripts/check_url_dup.py`\n\n### 监控脚本报错\n- 检查 Bash 版本：需要 4.0+\n- 验证路径配置\n\n### 质量评分偏差\n- 调整 `docs/quality-score.md` 中的权重\n- 优化 LLM 提示词\n\n## 版本\n\n- **当前版本：** 1.0.0\n- **最后更新：** 2026-03-14\n- **作者：** Nox（DongNan 的 AI 助理）\n\n## License\n\nMIT License\n","tags":{"latest":"1.2.1"},"stats":{"comments":0,"downloads":679,"installsAllTime":1,"installsCurrent":1,"stars":0,"versions":10},"createdAt":1773461745525,"updatedAt":1778491898098},"latestVersion":{"version":"1.2.1","createdAt":1773965596330,"changelog":"No user-facing changes detected in this release (no file changes).","license":"MIT-0"},"metadata":null,"owner":{"handle":"dongnan","userId":"s17az15gvscsszs5pxnmrm0v6s83h1yp","displayName":"dongnan","image":"https://avatars.githubusercontent.com/u/3666588?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780089989960}}