Install
openclaw skills install @thcjp/feed-digest-tool-proopenclaw skills install @thcjp/feed-digest-tool-pro功能说明: 本技能涵盖 与分析工具、化工作流场景 等核心能力。
AI深度摘要+多源聚合+定时推送+团队共享。企业级订阅管理全功能覆盖。
将复杂的订阅内容管理与分发任务交给专业工具处理。专业版在免费版基础筛选能力之上,新增AI深度摘要、多源聚合、定时推送、团队共享、个性化推荐、全文语义搜索、阅读统计分析七大高级能力,满足企业级场景对信息管理的深度、广度与协作要求.
| 能力维度 | 免费版 | 专业版 |
|---|---|---|
| 获取最新内容 | 支持 | 支持 |
| 未读条目扫描 | 支持 | 支持 |
| 智能筛选 | 基础(关键词) | AI增强(LLM) |
| 全文阅读 | 支持 | 支持 |
| 标记已读 | 支持 | 支持 |
| AI深度摘要 | 不支持 | 支持(LLM生成) |
| 多源聚合 | 不支持 | 支持(主题聚合) |
| 定时推送 | 不支持 | 支持(cron调度) |
| 团队共享 | 不支持 | 支持(团队订阅) |
| 个性化推荐 | 不支持 | 支持(基于历史) |
| 全文搜索 | 基础 | 语义搜索 |
| 阅读统计 | 不支持 | 支持 |
| 技术支持 | 社区 | 优先工单响应 |
详细代码示例已移至
references/detail.md
处理: 解析AI深度摘要的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回AI深度摘要的响应数据,包含状态码、结果和日志.
处理: 解析多源聚合的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回多源聚合的响应数据,包含状态码、结果和日志.
处理: 解析定时推送的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回定时推送的响应数据,包含状态码、结果和日志.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 订阅摘要(专业版)处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
class TeamSharing:
"""团队共享(专业版)"""
# ...
def __init__(self):
self.team_subscriptions = {}
self.shared_digests = []
# ...
def create_team(self, team_name, members=None):
"""创建团队"""
self.team_subscriptions[team_name] = {
'members': members or [],
'feeds': [],
'shared_entries': []
}
print(f"团队 {team_name} 已创建")
# ...
def add_team_feed(self, team_name, feed_url):
"""添加团队订阅"""
if team_name in self.team_subscriptions:
self.team_subscriptions[team_name]['feeds'].append(feed_url)
print(f"已为团队 {team_name} 添加订阅:{feed_url}")
# ...
def share_entry(self, team_name, entry, shared_by, comment=""):
"""分享条目到团队"""
if team_name not in self.team_subscriptions:
return False
# ...
shared_entry = {
'entry': entry,
'shared_by': shared_by,
'comment': comment,
'shared_at': datetime.now().isoformat()
}
self.team_subscriptions[team_name]['shared_entries'].append(shared_entry)
print(f"已分享到 {team_name}:{entry.get('title', '')}")
return True
# ...
def get_team_digest(self, team_name):
"""获取团队共享摘要"""
return "团队不存在"
# ...
team = self.team_subscriptions[team_name]
entries = team['shared_entries']
# ...
if not entries:
return "团队暂无共享内容"
# ...
lines = [f"=== {team_name} 团队共享 ===\n"]
for shared in entries[-20:]: # 最近20条
entry = shared['entry']
lines.append(f"- {entry.get('title', '')}")
lines.append(f" 分享人:{shared['shared_by']}")
if shared['comment']:
lines.append(f" 评论:{shared['comment']}")
lines.append("")
# ...
return "\n".join(lines)
# ...
team = TeamSharing()
team.create_team("engineering", ["alice", "bob", "charlie"])
team.add_team_feed("engineering", "https://example.com/tech-feed.xml")
# ...
team.share_entry(
"engineering",
{'title': '某篇深度技术文章', 'url': 'https://...'},
shared_by="alice",
comment="推荐阅读,关于系统设计的思考"
)
# ...
print(team.get_team_digest("engineering"))
处理: 解析团队共享的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回团队共享的响应数据,包含状态码、结果和日志.
input_params参数,支持创建/查询/导出操作处理: 解析个性化推荐的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回个性化推荐的响应数据,包含状态码、结果和日志. 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:企业级订阅摘要专、团队共享与个性化、订阅摘要助手专业、版是面向企业级场、景的完整、RSS、订阅内容管理与分、析工具、在免费版基础筛选、能力之上、全文搜索增强、阅读统计分析七大、高级能力、Use、when、需要数据分析、报表生成、统计洞察、数据可视化时使用、不适用于实时流数、据处理、适用于独立开发者、企业团队和自动化、工作流场景等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.
场景描述:每日自动获取技术订阅,AI摘要后推送到企业飞书群.
scheduler = ScheduledDigestPusher()
scheduler.pusher.register("feishu", "https://open.feishu.cn/open-apis/bot/v2/hook/未指定", "feishu")
scheduler.start()
场景描述:团队成员分享高价值订阅内容,统一管理.
team = TeamSharing()
team.create_team("backend", ["alice", "bob", "charlie"])
team.add_team_feed("backend", "https://example.com/backend-feed.xml")
# ...
team.share_entry("backend", entry, "alice", "这篇关于微服务的文章很有启发")
print(team.get_team_digest("backend"))
场景描述:基于阅读历史获得个性化推荐.
recommender = PersonalizedRecommender()
recommender.record_read(entry1)
recommender.record_read(entry2)
# ...
patterns = recommender.analyze_reading_patterns()
print(f"已读 {patterns['total_reads']} 篇")
print(f"最常读主题:{patterns['most_read_theme']}")
# ...
recommendations = recommender.recommend(all_entries, top_n=10)
export FEISHU_WEBHOOK=https://open.feishu.cn/open-apis/bot/v2/hook/未指定
# ...
python3 ai_digest.py --entries 50 --push feishu
# ...
python3 aggregate.py --by theme --output digest.md
pip install requests schedule beautifulsoup4
# ...
cat > feed_digest_config.yaml <<EOF
sources:
- https://example.com/feed1.xml
- https://example.com/feed2.xml
# ...
schedule:
daily: "0 8 * * *"
noon: "0 12 * * *"
weekly: "0 9 * * 1"
# ...
push:
feishu: https://open.feishu.cn/open-apis/bot/v2/hook/未指定
slack: https://hooks.slack.com/services/未指定
# ...
ai:
model: gpt-4o
digest_style: formal
max_entries: 20
# ...
team:
name: engineering
members: [alice, bob, charlie]
shared_feeds:
- https://tech-feed.com/rss
EOF
# ...
python3 feed_digest_service.py --config feed_digest_config.yaml
sources:
- name: 技术博客
url: https://example.com/tech-feed.xml
- name: 行业资讯
com/industry-feed.xml
- name: 学术论文
# ...
ai_digest:
model: gpt-4o
max_entries: 20
digest_style: formal # formal / brief / colloquial
topic_extraction: true
cross_reference: true
# ...
aggregation:
by_theme: true
by_importance: true
find_cross_references: true
# ...
schedule:
daily_digest: "0 8 * * *"
noon_express: "0 12 * * *"
weekly_report: "0 9 * * 1"
# ...
push:
channels:
- type: feishu
url: https://open.feishu.cn/open-apis/bot/v2/hook/未指定
- type: slack
url: https://hooks.slack.com/services/未指定
- type: email
url: https://api.email-service.com/send
# ...
team:
teams:
- name: engineering
members: [alice, bob, charlie]
shared_feeds:
- name: product
members: [dave, eve]
shared_feeds:
- https://product-feed.com/rss
# ...
personalization:
track_history: true
recommend_based_on: [keywords, themes, feeds]
top_n: 10
DIGEST_TEMPLATES = {
'formal': '正式报告风格,包含详细分析与关联',
'brief': '简洁要点风格,3-5条核心要点',
'colloquial': '口语化风格,便于团队群聊分享',
'academic': '学术风格,包含引用与参考文献',
}
TEAM_GUIDELINES = {
'min_share_per_week': 3, # 每周至少分享3篇
'comment_required': True, # 分享时必须附评论
'tag_required': True, # 必须打标签
'themes': ['AI', '架构', '性能', '安全'], # 推荐主题
}
def update_preferences_based_on_history(recommender):
"""基于阅读历史自动更新偏好"""
analyze_reading_patterns()
if patterns['most_read_theme']:
recommender.update_preferences({
'themes': [patterns['most_read_theme']]
})
专业版完全兼容免费版的所有功能。feed CLI命令、基础筛选、Markdown输出在专业版中均可直接使用。升级后原有脚本无需修改,仅新增高级能力可用.
专业版使用GPT-4o模型路由,提供更强的内容理解与摘要生成能力。支持自定义prompt模板,可生成不同风格的摘要(正式/简洁/口语化/学术).
多源聚合从所有订阅源获取条目后,按主题跨源分类聚合。支持三种聚合方式:(1) 按主题聚合(如AI/架构/前端);(2) 按重要程度聚合(高/中/低);(3) 跨源关联发现(不同源的相关条目).
专业版支持创建多个团队,每个团队有独立的订阅源列表和共享内容。团队成员可分享条目并附评论,所有成员可查看团队共享摘要。支持团队订阅规范配置(如最低分享频率).
个性化推荐基于三个维度:(1) 关键词偏好(用户感兴趣的关键词);(2) 主题偏好(常读的主题);(3) 来源偏好(常读的订阅源)。系统会自动分析阅读历史并更新偏好.
专业版支持:(1) 飞书(交互式卡片);(2) Slack(带格式文本);(3) 邮件(HTML/Markdown);(4) 钉钉(Markdown);(5) 企业微信(Markdown);(6) 通用Webhook(JSON).
建议:(1) 使用AI摘要自动筛选高价值内容;(2) 按主题聚合减少认知负担;(3) 设置每日推送频率避免堆积;(4) 定期标记已读清理;(5) 使用个性化推荐优先阅读最相关内容.
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| feed CLI | 工具 | 必需 | brew install odysseus0/tap/feed 或源码编译 |
| Python 3.8+ | 运行时 | 必需 | 官网下载安装 |
| requests | Python库 | 必需 | pip install requests(推送功能) |
| schedule | Python库 | 必需 | pip install schedule(定时任务) |
| PyYAML | Python库 | 可选 | pip install pyyaml(YAML配置) |
| SQLite | 数据库 | 必需 | feed CLI内置 |
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
本专业版相比免费版新增以下能力:
此外,专业版还提供:
| 版本 | 价格 | 功能 | 适用场景 |
|---|---|---|---|
| 免费体验版 | ¥0 | 获取+扫描+基础筛选+全文阅读+标记已读 | 个人试用、基础订阅 |
| 收费专业版 | ¥35/月 | AI摘要+多源聚合+定时推送+团队共享+个性化推荐+语义搜索+阅读统计+优先支持 | 团队/企业、知识管理 |
专业版通过SkillHub SkillPay发布.
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
输出:返回执行结果,包含操作状态和输出数据
用户: 执行核心功能
Skill: 正在执行核心功能...
Skill: 执行完成,结果如下: 操作成功
{
"success": true,
"data": {
"result": "订阅摘要(专业版)处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "feed digest pro"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}
| 风险类型 | 防范措施 |
|---|---|
| API密钥泄露 | 通过环境变量配置,禁止硬编码到代码或配置文件中 |
| 命令执行风险 | 仅执行白名单命令,避免拼接用户输入到命令行参数中 |
| 网络通信安全 | 使用HTTPS协议,验证SSL证书有效性 |
| 敏感数据暴露 | 输出结果中不包含密钥、令牌等敏感信息 |
使用前请确认已阅读依赖说明章节,确保运行环境满足安全要求。