飞书读书笔记

SKILL效率

原名 feishu-reading-notes

效率 浏览器控制 许可证明确 OpenClaw
安装这个技能

feishu-reading-notes 用于整理文档、README、Markdown 和说明材料,适合在 OpenClaw 中需要把零散信息整理成结构清晰的文档时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

累计安装 3,016 本周 122
GitHub 星标 未标注 仓库 feishu-reading-notes
下载量 947 技能市场下载数
权限级别 浏览器控制 安装前请确认风险范围
许可证 许可证明确 MIT-0

安装

ClawHub 市场
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
openclaw skills install feishu-reading-notes

技能档案

效率
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方yxc168仓库 feishu-reading-notes · 版本 1.0.0
宿主客户端OpenClaw技能可被这些客户端加载
安装方式ClawHub 市场安装包 yxc168/feishu-reading-notes
权限级别浏览器控制安装前请确认风险范围
许可证MIT-0许可证明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-05-01上游最后核验时间 · 数据更新 未标注
正文体量15.3 KBSKILL.md 原文大小,越大说明说明书写得越细

能做什么

5 项能力
上游给出的能力概览与适用场景
  • 按任务关键词查找相关 Skills
  • 展示可复制的安装命令
  • 保留来源站点、仓库和原始说明,方便继续核验
  • 补充不同宿主或平台的使用分布数据
  • 展示第三方安全扫描或审计结果
OpenClaw 用户查找和安装 Skill 时用户想查找某类 Agent Skill 时需要根据任务场景推荐可安装能力包时需要对比不同来源的安装命令和来源信息时

权限与风险

浏览器控制
装之前先读完这段

安装与使用指南

安装步骤

本站只展示命令,不托管安装包,也不自动执行。

怎么用

安装后应在对应宿主中按原始 README 的触发条件使用;当前草稿只做目录说明,具体调用方式由规则抽取,异常条目再复核。

SKILL.md 全文

15.3 KB
模型实际读到的说明书原文,来自技能仓库

阅读笔记 Skill

触发条件

用户发送文章链接 + 说「阅读笔记」/「帮我记一下」/「保存这篇文章」

支持的来源

平台 格式 备注
微信公众号 mp.weixin.qq.com 链接自动加 ?scene=1
微博 weibo.com 直接抓取
雪球 xueqiu.com 直接抓取
B站 bilibili.com 视频页面信息
其他公开网页 任意 通用抓取

飞书文件夹结构

  • 根目录: https://vk8zot12ir.feishu.cn/drive/folder/U4p7fPrW1lmQzedgT9rcenKQnbh
  • 阅读笔记: https://vk8zot12ir.feishu.cn/drive/folder/C5NZflqNJlCK0EdaTQ2cmhVdnJg

分类文件夹(自动匹配)

内容关键词 分类文件夹 文件夹 Token 示例
投资、股票、财报、金融、巴菲特、芒格、估值、商业模式、段永平 投资商业 CjgCfVSCIlSpWqdgql8cdl84nlg 段永平投资理念、高盛分析报告
AI、大模型、ChatGPT、字节、腾讯、阿里、科技公司、芯片、自动驾驶、豆包、元宝、千问 AI科技 F6kOf6XahllQ1Rd5qyOcByPOnxc AI巨头竞争、技术趋势
汽车、新能源、电动车、理想、蔚来、小鹏、小米汽车、自动驾驶 汽车新能源 QyEEfY7Wll1NBadXkvEcmRybnxe 新能源车企动态
育儿、教育、家庭、孩子、学习方法 家庭教育 DK2ifbzlclZXmYd8fsOcrHUXnbf 教育理念
健康、饮食、运动、养生、饮食建议、营养 健康生活 Pnl9fjWhPlNQdddyIA3cKdoanMc 水果控糖指南
其他不匹配的内容 其他 EHv3fsHxSl9wp9d11encyKmfn3f 通用分类

⚠️ 新增分类时必须同步飞书

当用户要求新增分类(或内容无法匹配现有分类)时,必须同时完成以下步骤:

  1. 本地创建文件夹:
    bash mkdir -p "~/.openclaw/workspace/saved/reading-notes/{新分类名}"

  2. 飞书创建子文件夹:
    python # 在阅读笔记根目录下创建子文件夹 reading_folder = "C5NZflqNJlCK0EdaTQ2cmhVdnJg" resp = requests.post( "https://open.feishu.cn/open-apis/drive/v1/files/create_folder", headers=headers, json={"name": "{新分类名}", "folder_token": reading_folder} ) new_folder_token = resp.json()["data"]["folder_token"]

  3. 上传文件到飞书:
    python upload_url = "https://open.feishu.cn/open-apis/drive/v1/files/upload_all" # 上传到新创建的文件夹

  4. 更新 reading-notes-links.md:
    - 新增分类标题和文件夹链接
    - 文件夹链接格式:https://vk8zot12ir.feishu.cn/drive/folder/{新文件夹token}

  5. 更新 SKILL.md 本身:
    - 在「分类文件夹」表格中添加新分类(含关键词、文件夹 Token)
    - 保持表格持续扩展

飞书 API 配置

app_id = "cli_a929129e4278dced"
app_secret = "usgK70hkHYBTQTtqMUFUMeXPPQDp35CE"

# 文件夹 token
root_folder = "U4p7fPrW1lmQzedgT9rcenKQnbh"
reading_folder = "C5NZflqNJlCK0EdaTQ2cmhVdnJg"

# 分类文件夹 token(从 reading_folder 子文件夹获取)
# 投资商业、AI科技、汽车新能源、家庭教育、其他

处理流程

Step 0: 获取日期

⚠️ 保存日期必须是用户实际分享链接的时间,不是文章内容中的日期!

从用户消息的 timestamp 获取日期(格式如 "Sat 2026-03-28 02:06 GMT+8"),提取 YYYY-MM-DD 部分作为文件名前缀和元数据中的保存日期。

# 用户消息 timestamp
user_timestamp = "Sat 2026-03-28 02:06 GMT+8"
date_prefix = "2026-03-28"  # 从 timestamp 提取

# 元数据中的 **保存日期** 也必须写这个日期,不能从文章内容中提取

Step 1: 抓取原文

# 打开浏览器
openclaw browser open "链接?scene=1"
sleep 5

# 获取标题
openclaw browser evaluate --fn "() => document.querySelector('#activity-name')?.innerText?.trim() || ''"

# 获取原文
openclaw browser evaluate --fn "() => document.querySelector('#js_content')?.innerText || ''"

# 关闭标签
openclaw browser close

Step 2: 清理换行符

微信公众号原文中 \ 是字面量字符串,需要替换:

content = raw.replace('"', '')  # 去掉首尾引号
content = content.replace('\\
\\
\\
\\
\\
', '\
\
')
content = content.replace('\\
\\
', '\
\
')
content = content.replace('\\
', '\
')
paragraphs = [p.strip() for p in content.split('\
\
') if p.strip()]

Step 3: 合并短段落

公众号文章经常一句话一段,需要合并以提升可读性。保留原文完整性,不删减内容。

merged = []
buffer = ""
for para in paragraphs:
    # 标题段落单独处理
    if is_title(para, original_titles):
        if buffer:
            merged.append(buffer)
            buffer = ""
        merged.append(para)
        continue
    if len(buffer) + len(para) < 280:
        buffer = (buffer + " " + para).strip() if buffer else para
    else:
        if buffer:
            merged.append(buffer)
        buffer = para
if buffer:
    merged.append(buffer)

Step 4: 识别原文标题(关键步骤 ⚠️)

原文中的段落标题是文章结构的核心,绝不能忽略或自创标题。

识别方法

  1. 先收集所有短段落(<40字),作为疑似标题候选
  2. 对比合并前后的段落,找出哪些是原文的独立短段落
  3. 标题通常有以下特征:
    - 独立成段,前后有空行
    - 字数 < 40
    - 不以句号、逗号结尾
    - 包含行业/业务关键词(如"消耗战"、"转向"、"收缩"、"军备竞赛"、"巴别塔"等)

识别流程

# 第一步:在合并前,先收集所有短段落作为标题候选
title_candidates = [p for p in paragraphs if len(p) &lt; 40]

# 第二步:对每个疑似标题,检查前后段落是否有空行分隔
for i, p in enumerate(paragraphs):
    if len(p) &lt; 40:
        # 检查是否独立成段(前后是空行或内容段)
        if i &gt; 0 and i &lt; len(paragraphs) - 1:
            # 这是一个短段落,标记为标题
            标记为标题

# 第三步:合并时遇到标题就跳过,单独保留
for para in paragraphs:
    if para in original_titles:  # 标题不参与合并
        if buffer:
            merged.append(buffer)
            buffer = &quot;&quot;
        merged.append(para)  # 标题单独一段
        continue
    # 正常合并逻辑...

常见标题模式(示例,每篇文章需根据实际内容调整)

投资类:收缩、省钱、转型、盈利、亏损、估值、现金流...
科技类:DeepSeek、豆包、元宝、补课、军备竞赛、博弈、入口...
汽车类:发布会、量产、智驾、增程、纯电、交付、开城...

⚠️ 重要:不要自创标题,必须用原文的段落标题!

Step 5: 生成阅读总结

⚠️ 必须真正阅读全文后总结,不能从开头截取!

阅读总结分两部分:

## 📝 阅读总结

### 核心观点
  必须基于全文真正总结,不能从文章开头复制粘贴!
  回答&quot;这篇文章说了什么&quot;、&quot;核心论点是什么&quot;、&quot;作者想表达什么&quot;。
  长文章可按主题设小标题(如:字节策略、腾讯策略、人才战争等)
  简短文章直接概括即可,不需要套格式。

### 金句
  &gt; 必须从全文中精选3-5句有洞察力、有冲击力的原句!
  &gt; 不能从文章开头截取,要从全文各个部分挑选最有价值的句子。
  &gt; 优先选择:有数据、有判断、有比喻、有观点的原句。
  &gt; 用引用格式 &gt; 展示,每句单独一行。

Step 6: 质量检查(必须执行,逐项核对)

  • [ ] 核心观点是否真正总结 - 不能从文章开头复制粘贴!必须基于全文内容概括
  • [ ] 金句是否有乱码 - 检查是否有 \ 或 \ \ 字面量残留,必须全部清理
  • [ ] 金句是否从全文精选 - 不能只从开头截取,要从全文各部分挑选最有价值的句子
  • [ ] 金句之间是否有空行 - 每条金句后必须有空行分隔(。\ \   &gt;)
  • [ ] 元数据字段之间是否有空行 - 来源、作者、链接等每个字段后必须有两个换行符
  • [ ] 原文段落是否有缩进 - 原文全文的段落前必须用全角空格 ,不能用普通空格
  • [ ] 段落标题前没有缩进 - ## 开头的标题行前面不能有缩进
  • [ ] 原文标题是否正确插入(用 ## 分隔)
  • [ ] 是否有重复段落
  • [ ] 来源、作者、关键词信息是否完整

Step 7: 上传到飞书云盘

# 1. 获取分类文件夹 token(从上方表格查,或新增分类时创建)
# 2. 检查分类文件夹是否存在,不存在则创建(参见「⚠️ 新增分类时必须同步飞书」)
# 3. 删除该文件夹下同名旧文件
# 4. 上传新文件

upload_url = &quot;https://open.feishu.cn/open-apis/drive/v1/files/upload_all&quot;

Step 8: 更新链接记录

更新 ~/.openclaw/workspace/reading-notes-links.md,记录所有文章的飞书文档链接。

输出文件格式

~/.openclaw/workspace/saved/reading-notes/{分类}/{保存日期}-{文章标题}.md

飞书云盘路径:

个人笔记/阅读笔记/{分类}/{保存日期}-{文章标题}.md

⚠️ 文件名必须带日期前缀,格式为 {日期}-{文章标题}.md

⚠️ 日期必须使用用户发送链接的时间(从消息 timestamp 获取),不是文章内容中的日期,也不是当前时间!

示例:用户在 2026-03-28 00:44 发送链接,文件名应为:
- 2026-03-28-字节、阿里、腾讯 AI 大战全记录.md

原因: 记录"用户什么时候分享的",便于按日期做阅读统计和排序。

注意事项

  1. 微信公众号链接必须加 ?scene=1 参数
  2. 浏览器抓取后必须 close tab
  3. 原文段落合并时保留所有内容,不删减
  4. 原文标题用短段落匹配,不要自创标题 ⚠️ 这是常见错误!
  5. 段落缩进用全角空格
  6. 阅读总结分两部分:核心观点(概括文章论点)+ 金句(摘录3-5句原文精华)
  7. 质量检查时必须确认原文标题是否正确插入(用 ## 分隔)

⚠️ 格式规范(必须严格遵守)

元数据格式

每个元数据字段之间必须有两个换行符,确保正确显示:

# 文章标题

**来源:** 微信公众号

**作者:** xxx

**原文链接:** https://mp.weixin.qq.com/s/xxx

**保存日期:** 2026-03-27

**关键词:** 关键词1、关键词2

---

错误示例(不要这样):

**来源:** 微信公众号
**作者:** xxx
**原文链接:** ...

正确示例(必须这样):

**来源:** 微信公众号

**作者:** xxx

**原文链接:** https://mp.weixin.qq.com/s/xxx

金句格式

金句之间必须有空行分隔,每条金句独立一行:

### 金句

  &gt; 第一条金句,句子完整结束。

  &gt; 第二条金句,有洞察力、有判断。

  &gt; 第三条金句,有数据或有比喻。

错误示例(不要这样):

### 金句
  &gt; 第一条金句
  &gt; 第二条金句
  &gt; 第三条金句

正确示例(必须这样):

### 金句

  &gt; 第一条金句。

  &gt; 第二条金句。

  &gt; 第三条金句。

实现方法: 每条金句后加 \ \,而不是 \。

常见错误

❌ 错误:核心观点从开头截取

问题:直接复制文章开头内容作为核心观点,没有真正总结全文。
修复:必须阅读全文后用自己的话概括,不能复制原文开头。
示例(错误):"2025年11月,姚顺雨穿着休闲短裤、踩着拖鞋出现在腾讯的一场内部会上..."(这是原文开头,不是总结)
示例(正确):"这是一场AI时代的「中途岛战役」。字节豆包日活破亿、腾讯元宝借DeepSeek爆发、阿里千问三位一体投入4800亿。三巨头策略截然不同..."

❌ 错误:金句有乱码

问题:金句中包含 \ 或 \ \ 字面量,没有清理。
修复:生成金句前必须执行 content.replace(&#x27;\\ &#x27;, &#x27; &#x27;).replace(&#x27; &#x27;, &#x27; &#x27;) 清理所有转义符。

❌ 错误:金句从开头截取

问题:只从文章开头截取金句,没有从全文精选。
修复:必须阅读全文,从不同章节挑选最有洞察力、有数据、有判断的原句。

❌ 错误:忽略原文段落标题

问题:直接把所有内容合并成一段,丢失了文章的章节结构。
修复:先识别短段落作为标题候选,合并时跳过标题段落。

❌ 错误:自创标题

问题:用自己编的标题替代原文标题。
修复:必须使用原文中的段落标题,即使格式不完美。

❌ 错误:段落标题前加了缩进

问题:原文段落标题(如## 01 某某标题)前面被加了缩进,导致 Markdown 渲染时标题格式错误。
修复:段落标题(##开头的行)前面不要加缩进,保持## 标题的纯净格式。
示例(错误):## 01 AI有了&quot;手&quot;,企业先想到的是什么
示例(正确):## 01 AI有了&quot;手&quot;,企业先想到的是什么

❌ 错误:段落缩进用普通空格

问题:原文段落缩进用2个普通空格(),Markdown 渲染时会被吞掉,导致没有缩进效果,易读性差。
修复:所有段落缩进必须用全角空格 ,不能用普通空格。
示例(错误):这是一段正文内容...
示例(正确):这是一段正文内容...

❌ 错误:原文全文段落没有缩进

问题:原文部分的段落没有首行缩进,导致阅读体验差。
修复:原文全文部分,除标题(##)和引用(&gt;)外,每个段落前都要加全角空格 。

子代理完成通知

子代理完成任务后,必须通过飞书 API 直接推送消息给用户:

import urllib.request, json

# 获取 token
app_id = &quot;cli_a929129e4278dced&quot;
app_secret = &quot;usgK70hkHYBTQTtqMUFUMeXPPQDp35CE&quot;
url = &quot;https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal&quot;
req = urllib.request.Request(url, data=json.dumps({&quot;app_id&quot;: app_id, &quot;app_secret&quot;: app_secret}).encode(),
    headers={&quot;Content-Type&quot;: &quot;application/json&quot;}, method=&quot;POST&quot;)
with urllib.request.urlopen(req) as resp:
    token = json.loads(resp.read()).get(&quot;tenant_access_token&quot;)

# 发送消息
open_id = &quot;ou_b0d3821177d24497a82735dcf2ed7960&quot;
msg_url = &quot;https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id&quot;
msg_body = json.dumps({
    &quot;receive_id&quot;: open_id,
    &quot;msg_type&quot;: &quot;text&quot;,
    &quot;content&quot;: json.dumps({&quot;text&quot;: &quot;✅ 任务完成:xxx&quot;})
}).encode()
req_msg = urllib.request.Request(msg_url, data=msg_body,
    headers={&quot;Authorization&quot;: f&quot;Bearer {token}&quot;, &quot;Content-Type&quot;: &quot;application/json&quot;}, method=&quot;POST&quot;)
with urllib.request.urlopen(req_msg) as resp_msg:
    print(json.loads(resp_msg.read()))

安全信息

审计结论
未标注不代表已通过审计
安全审计VirusTotal、ClawScan、Static analysis第三方安全审计平台给出的结论

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-05-01。