0%

OpenClaw 学术应用完全教程

OpenClaw 学术应用完全教程

作者: Yangsu | 更新日期: 2026-04-18


📝 前言

作为科研工作者,每天面对海量论文更新是常态。OpenClaw 可以帮你构建一个完整的学术论文自动化监控与推荐系统,实现:

  • 自动采集:从 arXiv + 24 个学术期刊 RSS 自动拉取新论文
  • 智能评分:基于你的研究方向分层匹配关键词,自动筛选相关论文
  • AI 深度分析:Agent 原生分析每篇论文,生成 TL;DR、创新点、方法论、课题启发、局限性
  • 定时推送:每 3 天自动推送到飞书群(卡片简报 + 详细文档)
  • 按主题分组:论文按研究主题自动归类,方便快速筛选


一、架构概览

本教程相关的配置内容和 skill 见:龙虾配置包 Download Now

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
┌───────────────────────────────────────────────────────┐
│ OpenClaw 平台 │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ main │ │ scholar │ │info-scout│ ...agents │
│ │ (主角色) │ │(学术助手) │ │(信息侦察) │ │
│ └──────────┘ └────┬─────┘ └──────────┘ │
│ │ │
│ Skills: │ │
│ ┌──────────────────┼──────────────────┐ │
│ │ academic-briefing │ rss-monitor │ │
│ │ (论文采集+推送) │ (RSS 博客监控) │ │
│ └──────────────────┼──────────────────┘ │
│ │ │
│ Cron: │ │
│ ┌──────────────────┼──────────────────┐ │
│ │ 每3天 09:00 │ 每天 19:00 │ │
│ │ 学术论文简报 │ RSS 日报推送 │ │
│ └──────────────────┼──────────────────┘ │
│ ▼ │
│ ┌─────────────┐ │
│ │ 飞书推送 │ │
│ │ 卡片+文档+私信 │ │
│ └─────────────┘ │
└───────────────────────────────────────────────────────┘

核心特点

  • 🤖 多 Agent 子角色:每个角色独立工作空间、模型配置、飞书群绑定
  • 📡 三通道数据采集:arXiv 关键词 + 分类浏览 + 期刊 RSS 并行采集
  • 🧠 Agent-Native 分析:零额外 API 调用,Agent 原生完成深度分析
  • 📊 分层评分系统:core(5分) + method(4分) + related(2分) 权重匹配
  • 🔄 智能去重:基于 DOI/URL 自动去重已推送论文

二、Agent 子角色设立

2.1 为什么需要子角色

OpenClaw 支持创建多个 Agent 子角色,每个角色有独立的:

  • 工作空间(workspace)
  • 模型配置(可选不同的 LLM provider)
  • 飞书群绑定(每个角色推送到不同的群)
  • 会话隔离(cron 任务在独立 session 中运行)

2.2 在 openclaw.json 中定义 Agent

1
2
3
4
5
6
7
8
9
10
11
12
{
"agents": [
{
"id": "main",
"workspace": "/path/to/main/workspace"
},
{
"id": "scholar",
"workspace": "/path/to/scholar/workspace"
}
]
}

三、学术论文 Skill 配置

3.1 目录结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
~/.agents/skills/academic-briefing/
├── SKILL.md # Skill 描述文档
├── .env # 飞书 App 凭证
├── .venv/ # Python 虚拟环境
├── scripts/
│ ├── academic_monitor.py # 主脚本 (v3 Agent-Native)
│ └── feishu_utils.py # 飞书工具函数
├── references/
│ ├── research_topics.json # 分层关键词配置
│ ├── journal_rss_feeds.json # 期刊 RSS + arXiv 分类
│ └── doc_template.md # 飞书文档模板说明
└── config/
├── config.json # 飞书 webhook 配置
└── state.json # 已推送论文记录(去重用)

3.2 研究关键词配置

references/research_topics.json 采用分层权重系统:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"topics": {
"core": {
"weight": 5,
"keywords": ["academic social network", "scholar recommendation"]
},
"method": {
"weight": 4,
"keywords": ["graph neural network", "heterogeneous graph"]
},
"related": {
"weight": 2,
"keywords": ["citation prediction", "research impact"]
}
},
"exclude_keywords": ["image classification", "computer vision"],
"boost_venues": ["KDD", "NeurIPS", "ICML", "WWW", "AAAI"]
}

评分规则

机制 分值 说明
core 关键词匹配 +5/个 核心研究方向
method 关键词匹配 +4/个 方法论匹配
related 关键词匹配 +2/个 相关领域
exclude 关键词惩罚 -3/个 排除无关领域
会议 boost +3 发表在顶会/顶刊
期刊来源 bonus +2 非 arXiv 的已发表论文

星级映射:>=10 → 5星, >=6 → 4星, >=3 → 3星, >=1 → 2星

3.3 三通道数据采集

论文采集使用三个并行通道:

  1. arXiv 关键词搜索:将所有层级的关键词组合为 OR 查询,调用 arXiv Atom API
  2. arXiv 分类浏览:按配置的 arXiv 分类(cs.SI, cs.LG 等)获取最新论文
  3. 期刊 RSS:解析 24 个学术期刊的 RSS feed

三个通道的结果会自动去重合并。


四、Agent-Native 分析架构

4.1 设计理念

传统方式:脚本内嵌 LLM API 调用 → 需要管理 token、处理超时、额外费用

Agent-Native:脚本只负责数据采集,Agent 自身作为 AI 模型完成分析 → 零额外 API 调用

4.2 三步流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
┌─────────────────────────────────────────────────┐
│ Step 1: 采集 (Python 脚本) │
│ academic_monitor.py --collect │
│ → arXiv API + 期刊 RSS → 过滤 + 评分 │
│ → 输出: /tmp/academic_collect.json │
└──────────────────────┬──────────────────────────┘

┌─────────────────────────────────────────────────┐
│ Step 2: 分析 (Agent 原生) │
│ Agent 读取 JSON → 逐篇深度分析 │
│ → TL;DR + Novelty + Methodology │
│ + Inspiration + Limitations + Group │
│ → 输出: /tmp/academic_analysis.json │
└──────────────────────┬──────────────────────────┘

┌─────────────────────────────────────────────────┐
│ Step 3: 推送 (Python 脚本) │
│ academic_monitor.py --push-results │
│ → 飞书文档 (完整报告) + 卡片 (精选简报) │
│ → 私信文档链接给用户 │
└─────────────────────────────────────────────────┘

4.3 优势对比

方面 传统方式 Agent-Native
API 调用 脚本自己调 LLM API Agent 原生推理,零额外调用
Token 管理 需读取 auth-profiles.json 不需要
超时处理 需设置 HTTP timeout + 重试 Agent 框架自动处理
分析质量 受 max_tokens 和 prompt 工程限制 Agent 拥有完整上下文和推理能力
可维护性 修改 prompt 需改 Python 代码 修改 cron payload 即可

五、Cron 定时任务

5.1 任务定义

~/.openclaw/cron/jobs.json 中定义定时任务:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"id": "academic-briefing-3day",
"agentId": "scholar",
"name": "学术论文简报推送",
"enabled": true,
"schedule": {
"kind": "cron",
"expr": "0 9 */3 * *",
"tz": "Asia/Shanghai"
},
"sessionTarget": "isolated",
"wakeMode": "now",
"payload": {
"kind": "agentTurn",
"message": "执行学术论文简报(三步流程):..."
},
"delivery": {
"mode": "announce",
"channel": "feishu",
"to": "chat:oc_your_group_chat_id"
}
}

5.2 常用 Cron 表达式

表达式 含义
0 9 */3 * * 每 3 天上午 9:00
0 9 * * 1-5 工作日上午 9:00
0 9 * * 1 每周一上午 9:00

六、飞书集成

6.1 推送类型

类型 API 用途
Webhook 卡片 /bot/v2/hook/ 群聊推送简报卡片
飞书文档 /docx/v1/documents 创建详细报告文档
文档权限 /drive/v1/permissions 自动授权给用户
私信 /im/v1/messages 发送文档链接给个人

6.2 卡片容量限制

飞书 Webhook 卡片最大 28KB。含完整五步法分析时:

  • 每篇论文约 5-7 KB
  • 最多放 4 篇论文(含 TL;DR + Novelty + Methodology + Inspiration + Limitations)
  • 超出时自动减少篇数

七、快速开始

7.1 安装依赖

1
2
3
4
cd ~/.agents/skills/academic-briefing
python3 -m venv .venv
source .venv/bin/activate
pip install feedparser

7.2 使用方式

1
2
3
4
5
6
7
8
9
10
11
12
13
cd ~/.agents/skills/academic-briefing && source .venv/bin/activate

# 预览模式(不推送)
python3 scripts/academic_monitor.py --dry-run --days 7

# 仅采集+评分,输出 JSON
python3 scripts/academic_monitor.py --collect --output /tmp/papers.json

# 推送分析结果到飞书
python3 scripts/academic_monitor.py --push-results /tmp/analyzed_papers.json

# 降级模式(直接推送,无 AI 分析)
python3 scripts/academic_monitor.py --push

八、自定义与扩展

8.1 修改研究方向

编辑 references/research_topics.json

1
2
3
4
5
6
7
8
# 添加核心关键词
"core": { "keywords": ["your keyword", ...] }

# 添加排除关键词
"exclude_keywords": ["irrelevant topic", ...]

# 添加关注的顶会/顶刊
"boost_venues": ["AAAI", "NeurIPS", ...]

8.2 调整推送频率

修改 jobs.json 中的 cron 表达式:"expr": "0 9 */3 * *""expr": "0 9 * * 1"(每周一)

8.3 添加新的论文源

references/journal_rss_feeds.json 中添加:

1
2
3
4
5
{
"name": "Journal Name",
"url": "https://journal.example.com/rss",
"category": "Your Category"
}

九、常见问题

Q: 论文采集数量为 0? 检查时间窗口 --days 参数。arXiv 在周末和假期不更新,建议设置 3-7 天。

Q: 飞书卡片推送失败? 检查 Webhook URL 和 Secret 是否正确。卡片超过 28KB 会自动减少论文数量。

Q: 如何增加精选论文数量? 修改 --top 参数,但受卡片 28KB 限制。建议 4 篇精选 + 30 篇值得关注。

Q: 如何手动触发一次推送? 直接对 scholar agent 发送 cron payload 中的三步指令,或使用降级模式:

1
python3 scripts/academic_monitor.py --push --days 7


本教程基于 OpenClaw 平台 + Scholar Agent + Academic Briefing Skill v3 (Agent-Native) 架构编写。

-------------This blog is over! Thanks for your reading-------------