튜토리얼 카테고리 Skills 소개
ZH EN JA KO
스킬 플러그인

OpenClaw RSS 구독 및 뉴스 푸시 Skill 튜토리얼

· 14 분 소요

소개

정보 폭발의 시대에 RSS는 여전히 가장 효율적인 정보 수집 방법 중 하나입니다. RSS 구독 Skill을 개발하면 OpenClaw가 관심 있는 정보 소스를 자동으로 모니터링하고, 요약을 생성하여 채팅 채널로 푸시할 수 있습니다.

이 튜토리얼에서는 다중 소스 집계, AI 요약, 예약 푸시, OPML 가져오기를 지원하는 RSS 구독 및 뉴스 푸시 Skill을 완성합니다.

기능 개요

기능 설명
구독 추가 RSS/Atom URL을 통한 구독 소스 추가
OPML 가져오기 기존 RSS 구독 일괄 가져오기
예약 수집 설정된 간격으로 자동으로 새 콘텐츠 확인
AI 요약 기사 요약 자동 생성
채널 푸시 지정된 채팅 채널로 새 콘텐츠 푸시
구독 관리 구독 소스 조회, 삭제, 분류 관리

준비 작업

MCP 도구 설정

~/.config/openclaw/openclaw.json5에 필요한 MCP 도구를 추가합니다:

{
  mcp: {
    servers: {
      "http-fetch": {
        command: "npx",
        args: ["-y", "@openclaw-mcp/http-fetch"]
      },
      "filesystem": {
        command: "npx",
        args: ["-y", "@modelcontextprotocol/server-filesystem",
               "--allow-read", "--allow-write",
               "~/.openclaw/data/rss/"]
      },
      "scheduler": {
        command: "npx",
        args: ["-y", "@openclaw-mcp/scheduler"]
      }
    }
  }
}

데이터 디렉토리를 생성합니다:

mkdir -p ~/.openclaw/data/rss/

SKILL.md 작성

~/.openclaw/skills/rss-reader.SKILL.md를 생성합니다:

---
name: rss-reader
version: 1.0.0
description: RSS/Atom 订阅监控和新闻推送技能
triggers:
  - rss
  - 订阅
  - subscribe
  - 新闻
  - news
  - 资讯
  - feed
mcp_tools:
  - http_fetch
  - filesystem
  - scheduler
---

# RSS 订阅和新闻推送技能

## Description

监控 RSS/Atom 订阅源,自动抓取新内容,生成 AI 摘要,
并推送到用户所在的聊天频道。

## Commands

用户可以通过以下命令与 RSS 技能交互:

### 添加订阅
- "订阅 {URL}" - 添加一个 RSS 订阅源
- "订阅 {URL} 分类到 {分类名}" - 添加并归类

### 管理订阅
- "我的订阅" / "订阅列表" - 查看所有订阅
- "取消订阅 {名称或编号}" - 删除订阅
- "暂停订阅 {名称或编号}" - 暂停更新检查
- "恢复订阅 {名称或编号}" - 恢复更新检查

### 查看内容
- "最新资讯" / "今天的新闻" - 查看最新未读内容
- "查看 {订阅名} 的更新" - 查看特定源的更新

### OPML 操作
- "导入OPML {URL或内容}" - 批量导入订阅
- "导出OPML" - 导出当前所有订阅

### 推送设置
- "设置推送时间 {时间}" - 设定每日推送时间
- "关闭推送" / "开启推送" - 切换推送状态

## Behavior

### 添加订阅流程

1. 用户提供 RSS/Atom URL
2. 使用 http_fetch 获取 feed 内容
3. 解析 feed,提取标题、描述等元信息
4. 保存到 ~/.openclaw/data/rss/feeds.json
5. 确认订阅成功,显示源名称和最近文章数

### 定时抓取流程

1. 每 30 分钟(默认,可配置)检查所有活跃订阅
2. 使用 http_fetch 获取 feed 最新内容
3. 与已存储的文章对比,找出新增文章
4. 对新文章生成 AI 摘要(50-100字)
5. 存储新文章到 articles.json
6. 如果开启了推送,发送到用户频道

### OPML 导入流程

1. 解析 OPML XML 内容
2. 提取所有 feed URL 和分类信息
3. 逐个验证 feed 可访问性
4. 批量添加到 feeds.json
5. 报告导入结果(成功数、失败数)

## Data Schema

### feeds.json

```json
{
  "feeds": [
    {
      "id": "feed_001",
      "url": "https://example.com/rss.xml",
      "title": "Example Blog",
      "description": "A great blog about tech",
      "category": "技术",
      "status": "active",
      "pollInterval": 1800,
      "lastChecked": "2026-03-28T10:00:00+08:00",
      "lastUpdated": "2026-03-28T09:30:00+08:00",
      "addedAt": "2026-03-25T14:00:00+08:00",
      "channelType": "telegram",
      "channelId": "12345678"
    }
  ]
}

articles.json

{
  "articles": [
    {
      "id": "art_20260328_001",
      "feedId": "feed_001",
      "title": "Article Title",
      "url": "https://example.com/post/123",
      "publishedAt": "2026-03-28T08:00:00Z",
      "summary": "AI生成的文章摘要...",
      "isRead": false,
      "isPushed": false
    }
  ]
}

Output Format

添加订阅成功

✅ 订阅成功!

📰 名称:{源名称}
🔗 地址:{URL}
📁 分类:{分类}
📊 当前文章数:{N} 篇

最近 3 篇文章:
1. {标题1} ({日期1})
2. {标题2} ({日期2})
3. {标题3} ({日期3})

订阅列表

📋 你的 RSS 订阅(共 {N} 个)

技术:
  1. ✅ Example Blog (最后更新: 2小时前) [feed_001]
  2. ✅ Tech News (最后更新: 30分钟前) [feed_002]

设计:
  3. ⏸️ Design Weekly (已暂停) [feed_003]

未分类:
  4. ✅ Personal Blog (最后更新: 1天前) [feed_004]

新闻推送

📬 今日资讯推送 (2026-03-28)

━━━━━━━━━━━━━━━━

📰 Example Blog
▸ {文章标题1}
  {50-100字AI摘要}
  🔗 阅读全文

▸ {文章标题2}
  {50-100字AI摘要}
  🔗 阅读全文

━━━━━━━━━━━━━━━━

📰 Tech News
▸ {文章标题3}
  {50-100字AI摘要}
  🔗 阅读全文

━━━━━━━━━━━━━━━━
共 {N} 条新内容

Push Schedule Configuration

用户可以自定义推送时间:

  • 默认每日推送时间:08:00 和 18:00
  • 支持自定义:任意时间点,多个时间点
  • 使用 scheduler 工具注册定时任务

推送配置存储在 feeds.json 的顶层:

{
  "pushSettings": {
    "enabled": true,
    "times": ["08:00", "18:00"],
    "timezone": "Asia/Shanghai",
    "maxArticlesPerPush": 20,
    "summarize": true
  },
  "feeds": [...]
}

OPML Format Reference

导入时支持标准 OPML 格式:

<?xml version="1.0" encoding="UTF-8"?>
<opml version="2.0">
  <head>
    <title>My Subscriptions</title>
  </head>
  <body>
    <outline text="技术" title="技术">
      <outline type="rss" text="Example Blog"
               xmlUrl="https://example.com/rss.xml"
               htmlUrl="https://example.com"/>
    </outline>
  </body>
</opml>

导出时生成同样格式的 OPML,用户可以导入到其他 RSS 阅读器。

Error Handling

  • URL 无法访问:提示用户检查 URL 是否正确
  • 非 RSS/Atom 格式:尝试自动发现页面中的 feed 链接
  • 抓取频率限制:尊重 feed 的 TTL 设置和 HTTP Cache 头
  • 存储文件损坏:自动备份并从备份恢复

## 고급 설정

### 커스텀 수집 간격

구독 유형에 따라 다른 수집 간격을 설정할 수 있습니다:

```json5
// openclaw.json5에서 RSS 스킬에 추가 설정
{
  skillConfig: {
    "rss-reader": {
      defaultPollInterval: 1800,   // 기본 30분
      minPollInterval: 300,        // 최소 5분
      maxArticlesStore: 1000,      // 최대 1000개 기사 저장
      summaryMaxLength: 100,       // 요약 최대 글자 수
      autoCleanupDays: 30          // 30일 이전 기사 자동 정리
    }
  }
}

콘텐츠 필터링

구독 소스에 키워드 필터를 설정할 수 있습니다:

订阅 https://example.com/rss.xml 只看包含 AI 或 机器学习 的文章

스킬은 feed 설정에 필터 규칙을 기록하고, 수집 시 일치하는 기사만 유지합니다.

테스트 절차

# 재시작하여 스킬 로드
openclaw restart

# 스킬 로드 확인
openclaw skill list

테스트 시나리오:

  1. 알려진 RSS 소스 추가 (예: Hacker News):

    订阅 https://hnrss.org/frontpage
    
  2. 구독 목록 확인:

    我的订阅
    
  3. 최신 콘텐츠 확인:

    最新资讯
    
  4. OPML 가져오기 테스트 (온라인 OPML 파일 사용)

  5. 푸시 시간 설정 후 트리거 대기

추천 RSS 소스

테스트에 편리한 고품질 중국어 RSS 소스입니다:

이름 URL 카테고리
少数派 https://sspai.com/feed 테크
36氪 https://36kr.com/feed 벤처/투자
InfoQ 中文 https://www.infoq.cn/feed 기술
编程随想 직접 검색 기술
Hacker News https://hnrss.org/frontpage 기술

마무리

RSS 구독 Skill은 OpenClaw를 지능형 정보 수집기로 변환합니다. AI 자동 요약 생성과 예약 푸시를 통해 정보의 홍수에 빠지지 않으면서도 중요한 정보를 놓치지 않을 수 있습니다. 이 Skill은 여러 MCP 도구(HTTP 요청, 파일 저장, 예약 스케줄링)를 결합하여 복잡한 기능을 구축하는 방법을 보여줍니다.

OpenClaw는 무료 오픈소스 개인 AI 어시스턴트로, WhatsApp, Telegram, Discord 등 다양한 플랫폼을 지원합니다