乐于分享
好东西不私藏

用openclaw做个人知识管理二:信息收集——全渠道捕获有价值信息

用openclaw做个人知识管理二:信息收集——全渠道捕获有价值信息
真正的效率不是收集更多,而是让有价值的信息自动归位。

2026 年,我们每天被信息包围:公众号文章、知乎回答、微博动态、播客视频、PDF 文档...信息散落在各处,需要时找不到。

本教程将教你用 OpenClaw 搭建全渠道信息收集系统,让有价值的信息自动流入知识库。


信息收集渠道

主流信息来源:

渠道
特点
收集方式
RSS 订阅
结构化、及时
自动抓取
微信公众号
深度内容
API/手动
知乎
专业问答
API/爬虫
微博
实时动态
API
网页文章
最广泛
剪藏
视频/播客
多媒体
转录文字
PDF 文档
正式资料
OCR/解析
聊天记录
即时想法
导出整理
语音输入
闪念捕捉
语音转文字
截图图片
视觉信息
OCR 识别

收集原则:

  • 📥 自动化优先(能自动不手动)
  • 🎯 质量优先(宁缺毋滥)
  • 🏷️ 及时标签(收集时就分类)
  • 🔗 保留来源(方便追溯)

RSS 自动收集

步骤 1:配置 RSS 订阅源

// ~/.openclaw/workspace/config/rss-feeds.json{"feeds":[{"name":"阮一峰的网络日志","url":"http://www.ruanyifeng.com/blog/atom.xml","category":"Tech","priority":"high"},{"name":"酷壳","url":"https://coolshell.cn/feed","category":"Tech","priority":"high"},{"name":"待办","url":"https://daobang.app/rss","category":"Productivity","priority":"medium"},{"name":"36 氪","url":"https://36kr.com/feed","category":"News","priority":"low"}]}

步骤 2:创建 RSS 收集脚本

// ~/.openclaw/workspace/scripts/rss-collector.jsconst { OpenClaw } = require('openclaw-sdk');constParser = require('rss-parser');const fs = require('fs');const path = require('path');asyncfunctioncollectRSS() {const oc = newOpenClaw();const parser = newParser();const feeds = JSON.parse(fs.readFileSync('./config/rss-feeds.json''utf-8'));// 获取上次收集时间const lastRun = awaitgetLastRunTime();for (const feed of feeds.feeds) {console.log(`收集:${feed.name}`);try {// 抓取 RSSconst feedData = await parser.parseURL(feed.url);// 过滤新文章const newItems = feedData.items.filter(item =>newDate(item.pubDate) > lastRun      );for (const item of newItems) {// AI 判断价值const valueScore = await oc.ai.score({task'content_value',input: {title: item.title,content: item.contentSnippet,category: feed.category          }        });// 只保存高价值内容if (valueScore >= 7) {awaitsaveArticle({title: item.title,url: item.link,author: item.creator || item.author,date: item.pubDate,content: item.content,source: feed.name,category: feed.category,value_score: valueScore          });console.log(`  ✓ 保存:${item.title}`);        } else {console.log(`  ✗ 跳过:${item.title}(分数:${valueScore})`);        }      }    } catch (error) {console.error(`收集失败 ${feed.name}:`, error.message);    }  }// 更新运行时间awaitupdateLastRunTime();console.log('RSS 收集完成!');}asyncfunctionsaveArticle(article) {const oc = newOpenClaw();// AI 生成摘要和标签const analysis = await oc.ai.analyze({task'article_analysis',input: article.content.substring(03000)  });// 创建笔记const note = {title: article.title,url: article.url,author: article.author,datenewDate(article.date).toISOString().slice(010),source: article.source,category: article.category,tags: analysis.tags,summary: analysis.summary,key_points: analysis.keyPoints,content: article.content,value_score: article.value_score  };// 保存文件const filename = `${note.date}_${note.title.replace(/[^a-zA-Z0-9\u4e00-\u9fa5]/g, '_')}.md`;const filepath = path.join('./knowledge/Resources/Inbox', filename);const markdown = generateMarkdown(note);  fs.writeFileSync(filepath, markdown);// 发送到待读列表await oc.wecom.send({content`📰 新文章待读\n\n标题:${note.title}\n来源:${note.source}\n价值分:${note.value_score}/10`  });}functiongenerateMarkdown(note) {return`${note.title}**来源:** [${note.source}](${note.url})  **作者:** ${note.author}**日期:** ${note.date}**标签:** ${note.tags.join(', ')}**价值分:** ${note.value_score}/10---## AI 摘要${note.summary}## 关键点${note.key_points.map(p => `- ${p}`).join('\n')}## 原文内容${note.content}---## 我的思考<!-- 在此添加你的思考 -->## 相关笔记<!-- AI 会自动填充相关笔记链接 -->---*创建时间:${newDate().toISOString()}*  `.trim();}asyncfunctiongetLastRunTime() {const statePath = './state/rss-collector.json';try {const state = JSON.parse(fs.readFileSync(statePath, 'utf-8'));returnnewDate(state.lastRun);  } catch {returnnewDate(0);  // 首次运行  }}asyncfunctionupdateLastRunTime() {const statePath = './state/rss-collector.json';  fs.writeFileSync(statePath, JSON.stringify({lastRunnewDate().toISOString()  }, null2));}collectRSS().catch(console.error);

步骤 3:设置定时任务

# 每 2 小时收集一次openclaw cron create \  --name "RSS 自动收集" \  --schedule "0 */2 * * *" \  --command"node ~/.openclaw/workspace/scripts/rss-collector.js" \  --enabled true

网页剪藏

需求: 看到好文章,一键保存到知识库。

创建浏览器书签脚本:

// 书签代码(保存为浏览器书签)javascript:(function(){const data = {titledocument.title,url: location.href,contentdocument.body.innerText,selectedwindow.getSelection().toString()  };fetch('http://localhost:18789/api/clip', {method'POST',headers: {'Content-Type''application/json'},bodyJSON.stringify(data)  }).then(() => {alert('已保存到知识库!');  });})();

服务端接收脚本:

// ~/.openclaw/workspace/scripts/web-clipper-server.jsconst { OpenClaw } = require('openclaw-sdk');const express = require('express');const fs = require('fs');const path = require('path');const app = express();app.use(express.json());app.post('/api/clip'async (req, res) => {const oc = newOpenClaw();const { title, url, content, selected } = req.body;// AI 处理const analysis = await oc.ai.analyze({task'clip_analysis',input: selected || content.substring(02000)  });// 创建笔记const note = {title: title,url: url,datenewDate().toISOString().slice(010),tags: analysis.tags,summary: analysis.summary,selected_text: selected,full_content: content  };// 保存const filename = `${note.date}_${title.replace(/[^a-zA-Z0-9\u4e00-\u9fa5]/g, '_')}.md`;const filepath = path.join('./knowledge/Resources/Inbox', filename);const markdown = `${note.title}**链接:** ${url}**日期:** ${note.date}**标签:** ${note.tags.join(', ')}---## AI 摘要${note.summary}## 选中内容${note.selected_text || '全文剪藏'}---## 我的思考<!-- 在此添加思考 -->---*剪藏时间:${newDate().toISOString()}*  `.trim();  fs.writeFileSync(filepath, markdown);  res.json({ successtrue, filepath });});app.listen(3456() => {console.log('剪藏服务运行中...');});

微信文章收集

需求: 公众号文章自动保存到知识库。

创建收集脚本:

// ~/.openclaw/workspace/scripts/wechat-collector.jsconst { OpenClaw } = require('openclaw-sdk');const fs = require('fs');asyncfunctioncollectWeChatArticles() {const oc = newOpenClaw();// 1. 获取星标公众号列表const accounts = awaitgetStarredAccounts();for (const account of accounts) {// 2. 获取最新文章const articles = awaitfetchWeChatArticles(account.id);for (const article of articles) {// 3. 检查是否已收集const exists = awaitcheckIfCollected(article.url);if (exists) continue;// 4. 抓取文章内容const content = awaitfetchArticleContent(article.url);// 5. AI 分析const analysis = await oc.ai.analyze({task'article_analysis',input: content.substring(03000)      });// 6. 保存笔记awaitsaveWeChatArticle({title: article.title,url: article.url,account: account.name,date: article.publishTime,content: content,analysis: analysis      });console.log(`已保存:${article.title}`);    }  }}asyncfunctionsaveWeChatArticle(article) {const markdown = `${article.title}**公众号:** ${article.account}**日期:** ${newDate(article.date).toLocaleDateString('zh-CN')}**链接:** ${article.url}**标签:** ${article.analysis.tags.join(', ')}---## AI 摘要${article.analysis.summary}## 关键点${article.analysis.keyPoints.map(p => `- ${p}`).join('\n')}## 原文${article.content}---## 我的思考<!-- 在此添加思考 -->---*收集时间:${newDate().toISOString()}*  `.trim();const filename = `${article.account}_${article.date}_${article.title.replace(/[^a-zA-Z0-9\u4e00-\u9fa5]/g, '_')}.md`;  fs.writeFileSync(`./knowledge/Resources/WeChat/${filename}`, markdown);}collectWeChatArticles().catch(console.error);

语音输入收集

需求: 走路/开车时有想法,语音输入保存。

创建语音收集脚本:

// ~/.openclaw/workspace/scripts/voice-note.jsconst { OpenClaw } = require('openclaw-sdk');const fs = require('fs');asyncfunctioncreateVoiceNote(audioPath) {const oc = newOpenClaw();// 1. 语音转文字const transcription = await oc.ai.transcribe({audio: audioPath,language'zh-CN'  });// 2. AI 整理const organized = await oc.ai.organize({task'voice_note_organization',input: transcription  });// 3. 创建闪念笔记const note = {type'fleeting_note',content: organized.text,tags: organized.tags,action_items: organized.actionItems,created_atnewDate().toISOString()  };// 4. 保存const filename = `voice_${newDate().toISOString().slice(0,19).replace(/:/g,'-')}.md`;const markdown = `# 语音笔记**时间:** ${note.created_at}**标签:** ${note.tags.join(', ')}---## 内容${note.content}## 行动项${note.action_items.map(a => `- [ ] ${a}`).join('\n') || '无'}---*语音转文字,可能有误差*  `.trim();  fs.writeFileSync(`./knowledge/Resources/Inbox/${filename}`, markdown);console.log('语音笔记已保存!');}createVoiceNote(process.argv[2]).catch(console.error);

效果评估

实施前后对比:

指标
实施前
实施后
提升
信息收集时间
30 分钟/天
自动
100%↓
文章保存量
5 篇/周
30 篇/周
6 倍↑
信息遗漏率
60%
5%
92%↓
收集满意度
5/10
9/10
80%↑

写在最后

信息收集的目标不是囤积,而是为后续处理提供原料。

让系统处理:

  • 全渠道自动收集
  • AI 初步筛选
  • 自动标签分类
  • 统一格式存储

你专注于:

  • 判断信息价值
  • 深度阅读理解
  • 思考内化连接
  • 行动实践应用

收集是第一步,后续还有整理、连接、输出。


系列教程:个人知识管理实战 第 2 篇

上一篇: 第 1 篇:入门指南

下一篇: 第 3 篇:笔记系统实战