快速摘要:ClawFeed 是一个开源的 AI 信息摘要工具,能够将 Twitter/X、RSS、HackerNews、Reddit、GitHub Trending 等多个平台的信息聚合到一起,由 AI 自动筛选并生成结构化摘要。 它支持 4 小时、每日、每周、每月四种摘要频率,提供 Source Packs 信息源共享机制和 Mark & Deep Dive 深度分析功能。你可以通过 ClawHub 一行命令安装,也可以独立部署到自己的服务器。往下看,莫潇羽@无忆研习社 将为你详细拆解这个工具的技术原理、安装配置的每一步操作,以及实际使用中的各种技巧。
为什么我们需要一个"信息防火墙"
不知道你有没有这样的体验——每天醒来打开手机,社交软件上有人在讨论最新的 AI 模型,HackerNews 上又出了一个热门开源项目,Reddit 的技术版块里有人分享了一篇深度文章,GitHub Trending 上有几个新仓库值得关注……你在这些平台之间来回切换,刷了一两个小时,回头一想,真正记住的有用信息却没几条。
这不是你的问题,这是信息时代的通病。
现代知识工作者平均每天需要处理的信息量是三十年前的数十倍,但人的注意力带宽并没有随之增加——你每天依然只有那么多"有效注意力"可以分配。当信息供给远远超出注意力的承载能力时,"信息过载"就成了一个结构性的困境。
传统的 RSS 阅读器虽然能聚合信息源,但它只是把内容堆在一起,你依然需要自己一条一条去看。RSS 解决了"信息分散"的问题,却没有解决"信息过多"的问题。你打开 RSS 阅读器,面对几百条未读消息的那种焦虑感,可能比在各平台之间来回切换还要重。
而各平台的算法推荐呢?它们越来越"聪明"——你点过什么,它就拼命给你推什么。短期来看似乎省心了,但长期下来你会发现,你的信息茧房越来越厚,视野反而越来越窄。更麻烦的是,算法推荐的核心目标是"留住你的注意力",而不是"让你获取最有价值的信息"。这两个目标很多时候是矛盾的。
那么有没有一种方式,既能把多个平台的信息聚合到一起,又能在海量信息中自动筛选出真正重要的内容?
在这个背景下,莫潇羽(无忆研习社 www.wuyi.wiki)发现了一个思路独特的开源项目——ClawFeed。它不是简单地把信息堆到你面前,而是让 AI 帮你做了一层"预处理":先聚合,再筛选,最后生成一份结构化的摘要报告。你要做的,只是每天花几分钟看一份精炼后的信息简报。
这个思路和传统 RSS 阅读器的本质区别在于:RSS 阅读器是信息的"搬运工",而 ClawFeed 是信息的"筛选官"。 它把你从"被动的信息接收者"变成了"主动的信息筛选者"——你不再需要在各种平台之间疲于奔命,而是让工具替你完成信息的初步筛选工作,你只需要在筛选后的精华内容上做出最终的阅读决策。
ClawFeed 到底是什么
ClawFeed 由开发者 Kevin He 构建,是一个 AI 驱动的新闻摘要工具。项目的口号是"Stop scrolling. Start knowing."——停止无意义的刷信息流,开始真正获取知识。
"Claw"这个词的意思是"爪子"。你可以把它想象成一只灵巧的爪子,从信息的汪洋大海中精准地抓取出你真正需要的内容。
从技术架构上看,ClawFeed 做了这几件事情:
第一步是信息聚合。 它可以同时接入多个信息源——Twitter/X 上的用户动态和列表、任意 RSS/Atom 订阅源、HackerNews 的首页和热门帖子、Reddit 的任意子版块、GitHub Trending 的热门项目(支持按编程语言筛选)、任意网站的内容抓取,甚至还支持接入自定义 API 数据源和其他用户的 ClawFeed 摘要。
第二步是 AI 筛选。 聚合来的海量信息会经过 AI 的处理,按照你预设的规则和偏好,筛选出真正重要的内容,过滤掉噪音。
第三步是摘要生成。 AI 会把筛选后的内容整理成结构化的摘要报告,包含关键信息的提炼、趋势的归纳,让你在最短时间内获取最多有效信息。
ClawFeed 可以作为独立项目部署运行,也可以作为 OpenClaw 或 Zylos 的一个 Skill(技能插件)来运行,集成到更大的 AI 代理工作流中。OpenClaw 是目前非常火的一个开源 AI 代理平台,它的技能生态系统(ClawHub)中已经有数千个社区贡献的技能插件,ClawFeed 就是其中之一。
在线体验地址:https://clawfeed.kevinhe.io
项目开源地址:https://github.com/kevinho/clawfeed
莫潇羽@无忆研习社 提示:建议先通过在线体验地址感受一下 ClawFeed 的实际效果,再决定是否需要自己部署。在线版本已经预置了一些 AI 领域的信息源,可以直接查看 AI 摘要报告的呈现形式。
技术原理深度解析
要真正用好一个工具,最好先理解它背后的运行机制。下面 莫潇羽@无忆研习社 帮大家详细拆解 ClawFeed 的技术原理。
信息采集层:多源数据抓取
ClawFeed 的信息采集层是整个系统的"感知器官"。它的核心任务是从多种异构数据源中提取结构化的内容。
对于 RSS/Atom 源,这是最标准的信息获取方式。RSS(Really Simple Syndication,简易信息聚合)是一种 XML 格式的内容分发协议,大多数博客、新闻网站、技术社区都提供 RSS 输出。ClawFeed 通过解析 RSS/Atom feed 的 XML 结构,提取标题、摘要、正文、发布时间、作者等字段。这一层的技术实现相对成熟,Node.js 生态中有很多成熟的 RSS 解析库可以使用。
对于 Twitter/X,情况稍微复杂一些。Twitter 的 API 访问策略经历了多次变更,ClawFeed 支持通过用户名和列表来获取推文内容。在实际使用中,你可以关注特定的行业大佬、技术专家的账号,也可以关注你自己维护的 Twitter 列表。
对于 HackerNews,ClawFeed 通过 HackerNews 的公开 API(https://hacker-news.firebaseio.com)来获取数据。HackerNews 的 API 设计非常简洁,提供了 Top Stories、New Stories、Best Stories 等多个端点,返回的是 JSON 格式的数据。
对于 Reddit,每个子版块(Subreddit)都有对应的 JSON API 端点,比如 https://www.reddit.com/r/programming/.json 可以获取编程版块的最新帖子。ClawFeed 通过这些端点获取帖子的标题、内容、评分、评论数等信息。
对于 GitHub Trending,ClawFeed 可以抓取 GitHub 的趋势页面,获取热门开源项目的信息,包括项目名称、描述、Stars 数量、编程语言等,并且支持按语言进行筛选。
对于 网站抓取,ClawFeed 提供了直接输入网址进行内容抓取的功能。这个功能的背后是网页内容提取技术,通常包括 HTML 解析、正文提取(去除导航栏、广告、侧边栏等无关内容)、以及文本清洗等步骤。
此外,ClawFeed 还支持 自定义 API 数据源,这意味着如果你有自己的数据接口(比如公司内部的知识库 API、某个垂直领域的数据服务),也可以接入 ClawFeed 的信息采集体系中。
AI 处理层:筛选与摘要生成
信息采集完成后,真正的"魔法"发生在 AI 处理层。
ClawFeed 的 AI 处理流程可以概括为以下几个环节:
内容过滤是第一道关卡。ClawFeed 提供了可配置的内容过滤规则,你可以在 templates/curation-rules.md 文件中定义自己的筛选策略。比如,你可以设定只关注与"大语言模型"、"计算机视觉"、"开源框架"相关的内容,或者排除某些你不感兴趣的话题。这些规则以自然语言的形式书写,AI 会理解这些规则并据此进行内容筛选。
这是一个很巧妙的设计——不是用死板的关键词匹配,而是利用 AI 的语义理解能力来做内容过滤。比如你写了"排除关于加密货币价格波动的讨论",AI 能够理解这条规则的含义,而不仅仅是匹配"加密货币"这个关键词。
摘要生成是第二个核心环节。筛选后的内容会被送入大语言模型(LLM),由 AI 生成结构化的摘要。摘要的格式模板定义在 templates/digest-prompt.md 文件中,你可以自定义 AI 输出的格式、风格、详略程度。
ClawFeed 的摘要生成不是简单的文本压缩,而是包含了信息的重新组织和价值判断。AI 会对每条信息的重要程度进行评估,将同类信息进行归纳整合,最终输出一份层次清晰、重点突出的摘要报告。
数据存储层:SQLite 的轻量级方案
在数据存储方面,ClawFeed 选择了 SQLite 作为数据库方案。
这个选择很有讲究。SQLite 是一个嵌入式的关系型数据库,它不需要单独的数据库服务进程,所有数据都存储在一个文件中。对于 ClawFeed 这样的个人或小团队使用场景来说,SQLite 有几个显著优势:
零配置:不需要安装 MySQL、PostgreSQL 之类的数据库服务,不需要配置用户名密码、端口号,不需要管理连接池。安装好 ClawFeed 之后,数据库就自动创建好了。
便携性极强:整个数据库就是一个文件。想备份?复制这个文件就行。想迁移到另一台服务器?把这个文件带走就行。
性能足够:对于个人信息摘要这个使用场景,SQLite 的读写性能绰绰有余。它处理几千条甚至几万条信息记录完全没有问题。
内存占用低:SQLite 的运行时内存占用非常小,这意味着你甚至可以在一台配置很低的 VPS 上运行 ClawFeed,而不用担心内存不足的问题。
莫潇羽@无忆研习社 觉得这是一个非常务实的技术选型。很多项目在初始阶段就引入了 MySQL 或 MongoDB,增加了部署的复杂度,而实际上这些项目的数据量根本用不到那么重的数据库方案。
用户认证层:Google OAuth(可选)
ClawFeed 支持通过 Google OAuth 进行用户认证。这是一个可选功能——如果不配置 OAuth,应用会以只读模式运行。
启用 OAuth 之后,每个用户可以拥有自己独立的书签和信息源配置。这在多人共用一个 ClawFeed 实例的场景下特别有用——比如你和同事共用一台服务器上的 ClawFeed,但各自的关注领域和信息偏好是不同的。
输出层:多种格式的信息分发
ClawFeed 的摘要生成后,可以通过多种方式分发给使用者:
Web 仪表盘是最直观的方式。ClawFeed 提供了一个单页应用(SPA)的 Web 界面,你可以在浏览器中浏览和管理你的摘要。界面支持深色和浅色两种主题,并且支持中英双语,切换起来非常方便。
RSS/JSON Feed 输出是一个很棒的设计。ClawFeed 不仅能消费 RSS,它自己也能产出 RSS。这意味着你可以把 ClawFeed 生成的摘要当作一个新的 RSS 源,用你习惯的 RSS 阅读器(比如 Feedly、Inoreader、或者自建的 Miniflux)来订阅。每个用户的摘要都有三种 Feed 格式可用:
# HTML 格式的 Feed 页面
/feed/:slug
# JSON Feed 格式(方便程序化消费)
/feed/:slug.json
# RSS 格式(兼容所有 RSS 阅读器)
/feed/:slug.rss
这形成了一个有趣的"信息处理管道":原始信息源 → ClawFeed 聚合筛选 → 摘要输出为 RSS → 你的 RSS 阅读器。你看到的是经过 AI 精炼后的内容,信噪比大大提高。
四种摘要频率的选择策略
ClawFeed 提供了四种不同频率的摘要选项,这不是一个简单的"选多还是选少"的问题,而是需要根据你的实际情况来做策略性选择的。莫潇羽@无忆研习社 根据自己的使用经验,给大家分析一下每种频率的适用场景。
4 小时摘要
4 小时一次的高频摘要,适合这几类人群:你正在密切关注某个行业事件的发展(比如某个重大开源项目的发布、某次技术大会的实时动态),或者你的工作本身就要求你对行业变化有极高的时效性感知(比如技术媒体编辑、投资分析师)。
不过要注意,4 小时摘要带来的信息量是比较大的。如果你关注的信息源很多,每 4 小时一份摘要可能会让你觉得"又有一堆东西要看了",反而增加焦虑。所以如果你选择这个频率,建议把信息源精简到你最核心关注的那几个。
每日摘要
这是大多数人的最佳选择。每天早上花 10-15 分钟看一份前一天的信息摘要,了解行业内发生了什么重要的事情,这个效率是非常高的。
莫潇羽的建议是:把每日摘要设为你的"信息早餐"。每天开始工作前,先过一遍 ClawFeed 的每日摘要,大致了解前一天的重要动态,然后把特别感兴趣的内容用 Mark 功能标记下来,有空的时候再深入阅读。
每周摘要
如果你的工作节奏比较快,平时实在没有时间每天看摘要,那么每周摘要是一个折中的选择。它会把一周内最重要的信息汇总在一起,帮你做一次"周度信息回顾"。
每周摘要还有一个好处:因为时间跨度更长,AI 在做摘要的时候会有更多的信息来进行趋势分析和关联。比如某个技术方向在一周内被多次提到,AI 可能会在周报中把这个趋势点出来,而这种宏观层面的洞察在每日摘要中是不太容易体现的。
每月摘要
每月摘要更像是一份"行业月报"。它适合用来做周期性的行业回顾,或者分享给团队作为参考资料。月报的信息密度最高,但时效性最低,更适合关注长期趋势而非实时动态的场景。
莫潇羽@无忆研习社 的实际使用建议:不必只选一种频率。你完全可以同时启用每日摘要和每周摘要。每日摘要用来跟踪实时动态,每周摘要用来做更宏观的回顾和思考。两种频率互补,效果更好。
Source Packs:信息源的"共享经济"
Source Packs(信息源包)是 ClawFeed 的一个特别有意思的社区功能,值得单独拿出来讲。
什么是 Source Packs
简单来说,Source Packs 就是"信息源的打包分享"。你可以把自己精心挑选和验证过的一组信息源(比如你关注的 10 个 AI 领域的 Twitter 账号、5 个技术博客的 RSS 源、3 个 Reddit 子版块)打包成一个 Source Pack,发布到 ClawFeed 的社区中。
其他用户看到你的 Source Pack 后,如果觉得内容符合自己的需求,可以一键安装,瞬间订阅你推荐的所有信息源。
为什么这个功能很有价值
信息源的筛选本身就是一项非常耗时的工作。找到一个高质量的 RSS 源,你可能需要试用好几天才能判断它的内容质量是否稳定、更新频率是否合适、是否有太多广告或无关内容。
Source Packs 把这个筛选工作的成果进行了"知识复用"——一个人做完筛选工作,所有人都可以受益。这就像是有人帮你做了一次"信息源的尽职调查",你只需要看一眼这个 Pack 的描述,决定是否采用就行。
怎么用 Source Packs
从使用者的角度,操作很简单。在 ClawFeed 的 Web 界面中,你可以浏览公开的 Source Packs 列表,每个 Pack 都会显示名称、描述、包含的信息源数量等信息。选好之后点击安装,所有的信息源就会自动添加到你的订阅列表中。
通过 API 的话,相关的端点如下:
# 浏览公开的 Source Packs(无需认证)
GET /api/packs
# 从你的信息源创建一个 Pack(需要认证)
POST /api/packs
# 安装一个 Pack,订阅其中的所有信息源(需要认证)
POST /api/packs/:id/install
从分享者的角度,你可以在管理好自己的信息源之后,选择想要打包的信息源,设置 Pack 的名称和描述,然后发布。建议在描述中写清楚这个 Pack 覆盖的领域、适合的人群,以及信息源的大致更新频率,这样其他用户在浏览时能更快地做出判断。
一些实用的 Source Pack 思路
如果你打算自己创建 Source Pack,这里给大家一些思路参考(by 莫潇羽@无忆研习社):
"AI 前沿动态包":可以包含几位 AI 领域知名研究者的 Twitter 账号、arXiv 的 AI 相关 RSS 源、HackerNews 和 Reddit 的 AI 相关版块、以及几个知名 AI 实验室的官方博客 RSS。
"前端技术精选包":可以包含几个前端框架(React、Vue、Svelte 等)的官方博客 RSS、一些知名前端开发者的 Twitter、以及 CSS-Tricks、Smashing Magazine 等前端技术媒体的 RSS。
"开源项目追踪包":可以包含 GitHub Trending 的多语言热门项目、几个开源资讯网站的 RSS、以及 HackerNews 的"Show HN"板块(这里经常有新项目的首发介绍)。
"信息安全速递包":可以包含几个安全研究团队的博客 RSS、安全公告的 RSS 源、以及 Reddit 的 r/netsec 等安全相关子版块。
Mark & Deep Dive:从摘要到深度理解
看摘要的时候,总会遇到一些特别感兴趣的内容——一个新发布的框架听起来很有趣,一篇深度分析文章的观点你很认同,或者一个新闻事件你想更深入地了解。
这时候 Mark & Deep Dive 功能就派上用场了。
Mark(标记) 的操作很直观。在摘要中看到感兴趣的内容,点击标记,它就会被保存到你的书签列表中。这些书签是持久化存储的,不会随着新摘要的生成而消失。你可以随时回来查看自己标记过的内容。
书签相关的 API 端点:
# 列出所有书签(需要认证)
GET /api/marks
# 添加一个书签(需要认证)
POST /api/marks
# 请求体:{ "url": "...", "title": "...", "note": "..." }
# 删除一个书签(需要认证)
DELETE /api/marks/:id
Deep Dive(深度分析) 则是在标记的基础上更进一步。你可以让 AI 对标记的内容进行深度分析——不仅仅是看摘要,而是让 AI 帮你挖掘信息背后的上下文、分析趋势走向、关联相关内容。
这个功能特别适合以下场景:一篇文章提到了一个新技术,你想了解它的技术原理和与现有方案的对比;一个新闻事件涉及多方观点,你想看到更全面的分析;一个开源项目你想知道它与同类项目相比有什么独特之处。
莫潇羽@无忆研习社 使用心得:我一般的工作流是这样的——先快速扫一遍每日摘要(5 分钟),把感兴趣的标记下来(Mark),然后选其中最想深入的 2-3 条做 Deep Dive。这样既保证了信息广度,又保证了重点内容的深度。
详细安装部署教程
接下来进入实操环节。ClawFeed 提供了多种安装方式,莫潇羽@无忆研习社 会把每种方式都讲清楚,你可以根据自己的情况选择最合适的。
方式一:通过 ClawHub 安装(最简单)
如果你已经在使用 OpenClaw 生态系统,并且安装了 ClawHub CLI,这是最省事的方式。
ClawHub 是 OpenClaw 的技能注册中心,可以理解为"AI 代理的 npm"。它提供了一个命令行工具,可以搜索、安装、更新技能插件。
安装 ClawFeed 只需要一行命令:
clawhub install clawfeed
执行完毕后,ClawFeed 就会被安装到你的 OpenClaw 技能目录中。OpenClaw 会自动检测到新安装的技能,你可以通过 OpenClaw 的界面来使用 ClawFeed 的功能。
如果你还没有安装 ClawHub CLI,可以通过以下方式安装:
# macOS / Linux
curl -sSL https://openclaw.ai/install | bash
# 验证安装
openclaw --version
clawhub --version
安装完成后,先登录 ClawHub:
clawhub login
这会打开浏览器进行认证。认证完成后就可以正常使用 clawhub install 命令了。
方式二:作为 OpenClaw Skill 安装
如果你在使用 OpenClaw 但没有安装 ClawHub CLI,可以用 Git 手动安装:
# 进入 OpenClaw 的技能目录
cd ~/.openclaw/skills/
# 克隆 ClawFeed 仓库
git clone https://github.com/kevinho/clawfeed.git
OpenClaw 会自动检测目录中的 SKILL.md 文件并加载这个技能。加载完成后,OpenClaw 代理就可以:
- 通过 cron 任务定时生成摘要
- 提供 Web 仪表盘供你浏览
- 处理书签和信息源管理的命令
这里简单解释一下 OpenClaw 的技能加载机制。OpenClaw 在启动时会扫描技能目录下的所有子文件夹,查找其中的 SKILL.md 文件。SKILL.md 是技能的"身份证",里面包含了技能的名称、描述、运行时依赖、配置要求等元数据。OpenClaw 解析这些信息后,就知道这个技能能做什么、需要什么环境,然后在适当的时候调用它。
方式三:作为 Zylos Skill 安装
Zylos 是另一个 AI 代理平台,ClawFeed 同样支持作为 Zylos 的技能运行:
# 进入 Zylos 的技能目录
cd ~/.zylos/skills/
# 克隆 ClawFeed 仓库
git clone https://github.com/kevinho/clawfeed.git
Zylos 的技能加载机制与 OpenClaw 类似,也是通过扫描技能目录来发现和加载技能。
方式四:独立部署(推荐新手使用)
如果你不用 OpenClaw 或 Zylos,或者你就是想把 ClawFeed 作为一个独立的服务来运行,那么独立部署是最灵活的选择。莫潇羽@无忆研习社 在这里会把每一步都讲得很详细。
前置条件
在开始之前,确保你的服务器或本地电脑上已经安装了以下环境:
- Node.js:建议 18.x 或更高版本。可以通过
node -v检查当前版本。如果还没安装,推荐使用 nvm(Node Version Manager)来管理 Node.js 版本。 - npm:Node.js 的包管理器,通常随 Node.js 一起安装。可以通过
npm -v检查。 - Git:用于克隆代码仓库。可以通过
git --version检查。
如果你是在 Linux 服务器(比如 Ubuntu)上部署,安装这些依赖的命令如下:
# 安装 Node.js(使用 nvm)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 18
nvm use 18
# 验证安装
node -v # 应该显示 v18.x.x
npm -v # 应该显示 9.x.x 或更高
# Git 通常 Ubuntu 自带,如果没有:
sudo apt update
sudo apt install git -y
第一步:克隆代码
# 克隆仓库
git clone https://github.com/kevinho/clawfeed.git
# 进入项目目录
cd clawfeed
# 安装依赖
npm install
npm install 会读取项目根目录下的 package.json 文件,自动下载和安装所有的依赖包。这个过程可能需要几分钟,取决于你的网络速度。
莫潇羽@无忆研习社 提示:如果你在国内服务器上操作,npm 下载速度可能比较慢。可以先切换 npm 镜像源:npm config set registryhttps://registry.npmmirror.com
切换后再执行npm install,速度会快很多。
第二步:配置环境变量
ClawFeed 通过 .env 文件来管理配置。项目中提供了一个 .env.example 文件作为模板:
# 复制配置模板
cp .env.example .env
# 用编辑器打开配置文件
nano .env # 或者用你习惯的编辑器,比如 vim、vi
下面详细解释每个环境变量的含义和配置方法。
GOOGLE_CLIENT_ID 和 GOOGLE_CLIENT_SECRET
这两个是 Google OAuth 的认证凭证。如果你想启用多用户登录功能(每个用户有自己的书签和信息源),就需要配置这两个变量。如果只是个人使用,不需要多用户区分,可以暂时不配置,应用会以只读模式运行。
配置方法(后面会单独讲 Google OAuth 的详细设置步骤):
GOOGLE_CLIENT_ID=你的Google客户端ID.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=你的Google客户端密钥
SESSION_SECRET
会话加密密钥。这是一个随机字符串,用于对用户的会话信息进行加密。你可以用以下命令生成一个随机密钥:
# 生成一个 32 字节的随机十六进制字符串
openssl rand -hex 32
把生成的字符串填入:
SESSION_SECRET=你生成的随机字符串
API_KEY
创建摘要时使用的 API 密钥。这是一个安全机制——只有携带正确 API Key 的请求才能触发摘要的生成。你可以自己设定一个足够复杂的字符串:
API_KEY=你自定义的API密钥
DIGEST_PORT
服务器监听的端口号,默认是 8767。如果这个端口已经被其他程序占用,或者你想换一个端口,可以在这里修改:
DIGEST_PORT=8767
ALLOWED_ORIGINS
CORS(跨域资源共享)允许的来源域名。如果你的 Web 前端和 API 后端不在同一个域名下,需要在这里配置前端的域名。默认值是 localhost,适合本地开发。生产环境部署时需要改成你的实际域名:
ALLOWED_ORIGINS=https://yourdomain.com
一份完整的 .env 配置示例如下:
# Google OAuth(可选,不配置则以只读模式运行)
GOOGLE_CLIENT_ID=xxxxx.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=xxxxxxxxxxxxxxxx
# 会话加密密钥(建议使用 openssl rand -hex 32 生成)
SESSION_SECRET=a1b2c3d4e5f6...
# 摘要创建 API 密钥
API_KEY=my-secure-api-key-2024
# 服务器端口
DIGEST_PORT=8767
# CORS 允许的源
ALLOWED_ORIGINS=https://yourdomain.com
关键环节:配置 AI 模型(LLM)
这是很多教程容易忽略、但实际上至关重要的一步。ClawFeed 的核心能力——信息筛选和摘要生成——依赖大语言模型(LLM)来完成。没有正确配置 LLM,ClawFeed 就只是一个信息聚合器,无法发挥 AI 的筛选和摘要能力。
支持哪些模型?
ClawFeed 运行在 OpenClaw 生态中时,可以利用 OpenClaw 支持的所有模型提供商,包括但不限于:
- Anthropic(Claude 系列):Claude Sonnet、Claude Opus 等,推理能力强,特别适合需要深度理解和结构化输出的摘要任务
- OpenAI(GPT 系列):GPT-4o 等,通用能力均衡,适合大多数场景
- Google(Gemini 系列):Gemini Pro 等,拥有超大上下文窗口,适合一次性处理大量信息源内容
- 开源本地模型(通过 Ollama / LM Studio):如 Qwen、DeepSeek 等,适合对数据隐私有要求或想降低 API 调用费用的用户
- OpenRouter:一个模型聚合平台,一个 API Key 可以访问多种模型,支持按需切换
如何配置模型 API 密钥?
如果你是通过 OpenClaw 集成使用 ClawFeed,模型配置在 OpenClaw 的 openclaw.json 中完成。最简单的方式是使用 OpenClaw 的设置向导:
# 运行 OpenClaw 的设置向导,按提示选择模型提供商并填入 API Key
openclaw onboard
向导会引导你选择模型提供商(比如 Anthropic 或 OpenAI),填入对应的 API Key,并设置默认模型。完成后,ClawFeed 作为一个 Skill 就能调用你配置好的模型来生成摘要了。
如果你想手动配置,可以在 .env 文件中添加模型相关的环境变量:
# 使用 Anthropic Claude(推荐用于摘要任务)
LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxx
# 或者使用 OpenAI
# LLM_PROVIDER=openai
# OPENAI_API_KEY=sk-xxxxxxxxxxxxx
# 或者使用 OpenRouter(一个 Key 访问多种模型)
# LLM_PROVIDER=openrouter
# OPENROUTER_API_KEY=sk-or-xxxxxxxxxxxxx
API Key 的获取方式:Anthropic 的 Key 在 console.anthropic.com 的 API Keys 页面创建;OpenAI 的 Key 在 platform.openai.com 的 API Keys 页面创建;OpenRouter 的 Key 在 openrouter.ai 注册后获取。
如何选择适合的模型?
模型的选择会直接影响摘要的质量和运行成本,莫潇羽@无忆研习社 的建议是:
如果你追求摘要质量,优先选择 Claude Sonnet 或 GPT-4o。这类模型在理解语义、提炼要点、生成结构化输出方面表现出色,生成的摘要层次清晰、重点突出。
如果你想控制成本,可以选择 Gemini Flash 或通过 Ollama 运行本地开源模型。Gemini 对开发者提供了较大的免费调用额度,而 Ollama 运行本地模型则完全不产生 API 费用,只消耗你服务器的计算资源。
如果你的信息源以中文为主,建议测试一下 DeepSeek 或 Qwen 系列模型。这些国产模型在中文语义理解方面有不错的表现,且使用成本通常低于国际模型。
模型参数调优(进阶)
对于有一定经验的用户,可以在摘要提示词模板(templates/digest-prompt.md)中间接控制模型的输出行为。比如,在提示词中明确要求"每条摘要不超过 3 句话"、"按重要程度从高到低排列"、"对趋势性内容进行归纳"等,这些指令会引导模型按照你期望的方式生成摘要。
如果通过 OpenClaw 集成,还可以在模型配置中设置多模型路由——用轻量级模型处理日常的定时摘要任务(降低成本),用高级模型处理 Deep Dive 深度分析请求(保证质量)。这种"分级处理"的策略在长期使用中能有效平衡质量和成本。
第三步:启动服务
配置完成后,启动 API 服务器:
# 生产模式启动
npm start
如果一切正常,你会在终端看到服务启动的日志信息,API 会在 http://127.0.0.1:8767 上运行。
在浏览器中打开这个地址,你应该能看到 ClawFeed 的 Web 界面了。
如果你想在开发过程中使用自动重载(修改代码后自动重启服务),可以使用开发模式:
# 开发模式(带文件监听和自动重载)
npm run dev
第四步:配置为系统服务(生产环境推荐)
如果你打算长期运行 ClawFeed(而不是在终端里临时跑一下),建议把它配置为系统服务,这样服务器重启后 ClawFeed 也会自动启动。
使用 PM2 管理(推荐):
PM2 是 Node.js 应用最常用的进程管理工具:
# 全局安装 PM2
npm install -g pm2
# 用 PM2 启动 ClawFeed
pm2 start npm --name "clawfeed" -- start
# 设置开机自启
pm2 startup
pm2 save
# 查看运行状态
pm2 status
# 查看日志
pm2 logs clawfeed
使用 systemd 管理:
如果你更习惯 systemd,可以创建一个 service 文件:
sudo nano /etc/systemd/system/clawfeed.service
文件内容:
[Unit]
Description=ClawFeed AI News Digest
After=network.target
[Service]
Type=simple
User=你的用户名
WorkingDirectory=/你的ClawFeed安装路径/clawfeed
ExecStart=/usr/bin/npm start
Restart=on-failure
RestartSec=10
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
然后启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable clawfeed
sudo systemctl start clawfeed
# 检查状态
sudo systemctl status clawfeed
Google OAuth 认证设置详细步骤
如果你需要启用多用户登录功能,需要配置 Google OAuth。下面是详细步骤,莫潇羽@无忆研习社 尽量写得对新手友好一些。
第一步:打开 Google Cloud Console(https://console.cloud.google.com),用你的 Google 账号登录。
第二步:在顶部的项目选择器中,点击"新建项目"。输入一个项目名称(比如"ClawFeed"),然后点击"创建"。
第三步:在左侧导航栏中找到"API 和服务" → "已启用的 API 和服务"。点击"启用 API 和服务",搜索 "Google People API" 并启用它。这一步是为了让 ClawFeed 能够获取登录用户的基本个人资料信息(如头像、昵称等)。
⚠️ 特别提醒:网上很多早期教程会写"启用 Google+ API",这是过时信息。Google+ API 已于 2019 年 3 月正式关停,相关的 OAuth scope(如plus.login、plus.me)也已废弃。当前 Google OAuth 登录基于 OpenID Connect 标准,配合 Google People API 来获取用户资料。如果你在 Google Cloud Console 中搜索"Google+",要么找不到,要么启用了也不会生效。请务必启用的是 Google People API,不要踩这个坑。
第四步:在左侧导航栏中找到"API 和服务" → "凭据"。点击"创建凭据" → "OAuth 客户端 ID"。
第五步:如果这是第一次创建 OAuth 凭据,系统会要求你先配置 OAuth 同意屏幕。选择"外部"用户类型,填写应用名称、支持邮箱等必填信息,其他可以先留空,点击"保存并继续"。
第六步:回到"创建 OAuth 客户端 ID"页面,应用类型选择"Web 应用"。在"已授权的 JavaScript 来源"中添加你的域名(如 https://yourdomain.com)。在"已授权的重定向 URI"中添加回调 URL:https://yourdomain.com/api/auth/callback。
第七步:创建完成后,页面会显示客户端 ID 和客户端密钥。把这两个值复制到你的 .env 文件中:
GOOGLE_CLIENT_ID=刚才获得的客户端ID
GOOGLE_CLIENT_SECRET=刚才获得的客户端密钥
第八步:重启 ClawFeed 服务使配置生效:
# 如果用 PM2
pm2 restart clawfeed
# 如果用 systemd
sudo systemctl restart clawfeed
配置完成后,在 ClawFeed 的 Web 界面中你应该能看到"Google 登录"按钮了。
公网部署:Nginx 反向代理与 HTTPS 配置
如果你打算让 ClawFeed 可以通过公网域名访问(而不仅仅是在本地 localhost 使用),还需要配置 Nginx 反向代理和 HTTPS 证书。这是公网部署的必备环节,莫潇羽@无忆研习社 把步骤写详细一些。
第一步:安装 Nginx
sudo apt update
sudo apt install nginx -y
# 检查 Nginx 是否正常运行
sudo systemctl status nginx
第二步:创建 Nginx 配置文件
sudo nano /etc/nginx/sites-available/clawfeed
写入以下配置内容:
server {
listen 80;
server_name your-domain.com; # 替换为你的实际域名
location / {
proxy_pass http://127.0.0.1:8767;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
这段配置的含义是:Nginx 监听 80 端口(HTTP),将所有发往你域名的请求转发到 ClawFeed 的 8767 端口。proxy_set_header 那几行是为了确保 ClawFeed 能获取到客户端的真实 IP 地址和协议信息,这在 OAuth 回调等场景中很重要。
第三步:启用站点配置
# 创建符号链接启用站点
sudo ln -s /etc/nginx/sites-available/clawfeed /etc/nginx/sites-enabled/
# 测试配置语法是否正确
sudo nginx -t
# 重载 Nginx 使配置生效
sudo systemctl reload nginx
此时通过 http://your-domain.com 应该已经能访问 ClawFeed 了。但 HTTP 是明文传输,不安全——特别是你启用了 Google OAuth 的话,登录凭证在传输中会有泄露风险。所以下一步是配置 HTTPS。
第四步:使用 Certbot 申请免费 HTTPS 证书
Let's Encrypt 提供免费的 SSL/TLS 证书,Certbot 是它的官方客户端工具,可以自动完成证书申请和 Nginx 配置的更新:
# 安装 Certbot 和 Nginx 插件
sudo apt install certbot python3-certbot-nginx -y
# 申请证书并自动配置 Nginx
sudo certbot --nginx -d your-domain.com
Certbot 会交互式地引导你完成配置:输入邮箱(用于证书到期提醒)、同意服务条款、选择是否将 HTTP 强制跳转到 HTTPS(建议选择"是")。
执行完毕后,Certbot 会自动修改你的 Nginx 配置文件,添加 SSL 证书路径和 HTTPS 监听配置。你的 ClawFeed 现在可以通过 https://your-domain.com 安全地访问了。
第五步:配置证书自动续期
Let's Encrypt 的证书有效期为 90