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 三通道数据采集
论文采集使用三个并行通道:
- arXiv 关键词搜索:将所有层级的关键词组合为 OR
查询,调用 arXiv Atom API
- arXiv 分类浏览:按配置的 arXiv 分类(cs.SI, cs.LG
等)获取最新论文
- 期刊 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 优势对比
| 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 推送类型
| 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
python3 scripts/academic_monitor.py --collect --output /tmp/papers.json
python3 scripts/academic_monitor.py --push-results /tmp/analyzed_papers.json
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) 架构编写。