with one click
simple-auto-researcher
自动化学术研究助手 - 搜索→下载→阅读→归档→创新点生成验证
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
自动化学术研究助手 - 搜索→下载→阅读→归档→创新点生成验证
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | simple-auto-researcher |
| description | 自动化学术研究助手 - 搜索→下载→阅读→归档→创新点生成验证 |
| metadata | {"openclaw":{"emoji":"🔬","requires":{"tools":["exec","cron","sessions_spawn","read","write"]}}} |
在执行任务时,需要从配置文件中读取动态变量。语法如下:
"工作量" - 强调变量名本身,用于需要显式说明"此处为变量"的语境示例:
| 写法 | 含义 | 实际效果(假设"工作量"=5) |
|---|---|---|
| "工作量" 篇 | 引用变量 | 5 篇 |
"工作量" | 强调变量名 | "工作量",即5 |
| 下载 "工作量" 篇论文 | 引用变量 | 下载 5 篇论文 |
当前工作负载为 "工作量" | 强调变量名 | 当前工作负载为 5 |
说明:
【⚠️重要】
PATHS.md 了解 "AutoResearcher项目根目录"、"小龙虾目录"等。DIRECTIONS.md 了解用户的"研究方向"(即科研方向)等。PREFERENCES.md 了解用户的"联网搜索偏好"、"偏好会议或者期刊"、以及最重要的期望"工作量"等。GUIDELINES.md 了解rethink.md综述的写作规范和要求、创新点模板要求、papers.csv的要求所有任务必须在 "AutoResearcher项目根目录" 目录下执行!
定时任务(isolated 模式)默认工作目录是 ~/.openclaw/workspace/,因此任务消息开头必须包含:
【重要】请先执行:
cd "AutoResearcher项目根目录"
然后继续以下任务:
AutoResearcher/ # "AutoResearcher项目根目录"
├── papers.csv # 论文总库(所有论文元信息汇总)
├── README.md # 项目说明
├── files/
│ ├── downloaded/*.pdf # 已下载论文 PDF
│ └── tobedownloaded/YYYY-MM-DD.md # 下载失败论文记录(MD格式)
├── notes/
│ ├── YYYY-MM-DD/*.md # 论文阅读笔记(按日期分离)
├── knowledgeOutput/
│ ├── daily/ # 日归档(同日累计,异日分离)
│ └── daily_YYYY-MM-DD.md
│ ├── weekly/ # 周归档(同月累计,异月分离)
│ └── weekly_YYYY-MM.md
│ ├── rethink.md # 知识体系构建(上限10万字)
│ └── bak/ # 备份(最多5份)
├── idea/
│ ├── all/ # 待验证创新点
│ ├── viewer/ # 验证记录
│ ├── deprecated/ # 废弃创新点
│ └── idea_*.md # 已验证创新点
├── logs/
│ ├── search/ # 搜索记录(同日累计,异日分离)
│ └── search_YYYY-MM-DD.md
│ ├── download/ # 下载记录
│ └── download_YYYY-MM-DD.md
│ └── read/ # 已读论文列表
│ └── read_YYYY-MM-DD.md
├── trash/*.md # 清理后不符合笔记要求的文档
├── projects/
│ ├── {project_name}_{idea_id}/ #可以运行的idea的demo完整框架
│ ├── {project_name}_{idea_id}.ipynb #可以在colab上运行的jupyter notebook
│ └── datasets/ # 下载的数据集,不允许过大
⚠️注意:不允许在每个子目录出现命名不正确的文件,如果需要临时存储,均放到trash/中
| 任务 ID | 任务名称 | 间隔/时间 | 每次工作量 |
|---|---|---|---|
| 搜索 | AutoResearcher-搜索 | 每 12 小时 | "工作量"*4*10 篇 |
| 下载 | AutoResearcher-下载 | 每 30 分钟 | "工作量"*2 篇 |
| 阅读 | AutoResearcher-阅读 | 每 15 分钟 | "工作量" 篇 |
| 日归档 | AutoResearcher-日归档 | 每 1 小时 | 根据未归档的文章数决定 |
| 创新点 | AutoResearcher-创新点 | 每日10:00和22:00 | 每次至多"创新点数"个 创新点 |
| 任务 | 任务名称 | 频率 | 说明 |
|---|---|---|---|
| Rethink | AutoResearcher-Rethink | 每 3 小时 | 知识体系重构,上限 10 万字 |
| 备份 | AutoResearcher-备份 | 每日 03:00 | 备份 daily/ + weekly/ + rethink.md,最多 5 份 |
| 周归档 | AutoResearcher-周归档 | 每周日 21:00 | 生成周小结 |
| 创新点审查 | AutoResearcher-创新点审查 | 每天22:00 | 对已有的创新点再一次进行审查 |
| 清理 | AutoResearcher-清理 | 每12小时 | 清理.openclaw目录、已经阅读并归档的PDF;清理notes目录下的不是论文阅读笔记的笔记,即标题显然不是论文标题的markdown,如果进行了清理,立马进行一次papers整理 |
| papers整理 | AutoResearcher-papers整理 | 每12小时 | 对整理的papers.csv进行整理,确保各个位置的论文及其数量一一对应 |
触发条件:每 12 小时
工作目录:"AutoResearcher项目根目录"
执行步骤:
【待读检查】
papers.csv,统计"未阅读"数量"工作量"*4*12 → 记录日志,跳出,说明当前论文够12小时内阅读【搜索 + 查重】(最多循环3次)
"工作量"*4*10篇新论文。【搜集论文信息】
【记录 + 更新】
logs/search/search_YYYY-MM-DD.md,做好日志。papers.csv输出文件:
logs/search/search_YYYY-MM-DD.mdpapers.csv触发条件:每 30 分钟
工作目录:"AutoResearcher项目根目录"
执行步骤:
paper.csv 中标注为"待下载"的论文"工作量"*2 篇下载 PDF01_、02_、1_、2_、03_ 等)
01_Statistical_Analysis_Inverse_Entropy_RL.pdf → Statistical_Analysis_Inverse_Entropy_RL.pdf^\\d+_ 或 ^\\d+-files/downloaded/ 目录下,命名格式:{论文标题}.pdf
files/downloaded/Statistical_Analysis_Inverse_Entropy_RL.pdffiles/tobedownloaded/YYYY-MM-DD.md,包含:标题、作者、年份、链接、失败原因logs/download/download_YYYY-MM-DD.md做好日志记录已下载。填写下载日期输出文件:
files/downloaded/*.pdffiles/tobedownloaded/YYYY-MM-DD.mdlogs/download/download_YYYY-MM-DD.mdpapers.csv触发条件:每 15 分钟
工作目录:"AutoResearcher项目根目录"
⚠️ 文件名格式(必须严格遵守):
notes/YYYY-MM-DD/{论文标题}.mdnotes/2026-03-18/DialogXpert.md执行步骤:
papers.csv,筛选出标记"未阅读"的论文,即待阅读论文,获取其对应的文章pdf路径。files/downloaded/获取 "工作量"篇未阅读的论文。notes/YYYY-MM-DD/{论文标题}.md,
notes/2026-03-17/"小龙虾目录"/memory/YYYY-MM-DD.md(每条 ≤ 100 字)logs/read/read_YYYY-MM-DD.md,做好日志papers.csv,
笔记列信息阅读状态改为已阅读,填写阅读日期⚠️ Token 节省策略:
输出文件:
notes/YYYY-MM-DD/{论文标题}.mdlogs/read/read_YYYY-MM-DD.mdpapers.csv"小龙虾目录"/memory/YYYY-MM-DD.md(每10篇写入一次)本质上,是对已阅读论文的归档任务,按照增量方式,在每日的日归档文件中不断追加新的论文归档内容。 触发条件:每 1 小时
工作目录:"AutoResearcher项目根目录"
⚠️ 核心理解:归档 = 增量添加(Add),一般不重写!
精简格式模板(每篇论文 3-5 行): 参考 GUIDELINES 的 日归档格式模板
分类维度: 参考用户偏好的"研究方向的分类维度"、可以自己加上自己的分类。
执行步骤:
papers.csv 统计未归档论文
笔记(笔记保存位置)。
notes/YYYY-MM-DD/*.md阅读日期分布在同一天,执行一次归档。阅读日期分布在不同天,执行最多3次分日期归档。knowledgeOutput/daily/ 目录下今日是否已有归档文件(YYYY-MM-DD.md)
papers.csv,
归档状态改为已归档、填写归档日期⚠️ 重要:
输出文件:
knowledgeOutput/daily/YYYY-MM-DD.md(增量追加)papers.csv(更新归档状态)触发条件:每日10:00和22:00
工作目录:"AutoResearcher项目根目录"
执行步骤:
【生成】:基于以下内容生成至多 **"创新点数"**个创新点
knowledgeOutput/daily/*.md以及knowledgeOutput/weekly/*.md)(日期约束);【命名保存】保存到 idea/all/*.md(按字母+6位数字命名)
idea_a000001.md(a开头,后面6位数字递增)idea/ 根目录 + idea/all/ + idea/deprecated/ + idea/viewer_backup/ 所有子目录下的所有文件,从所有文件中提取最大编号。绝对不能只扫描 idea/all/ 一个目录!idea_a000001.md、idea_a000002.md、idea_b000001.md、idea_aa000001.md记忆沉淀:将本次创新点相关的核心发现(约 100 字)写入 "小龙虾目录"/memory/YYYY-MM-DD.md
验证:检查 idea/all/ 下的待验证创新点
idea/viewer/ideaViewer_YYYY-MM-DD.mdidea/ 根目录;不可行/已有人做的差不多了 → 移至 idea/deprecated/
通知:验证完成后,根据用户的"消息通知偏好"按照"通知内容"的指定格式,输出通知消息。
⚠️ Token 节省策略:
输出文件:
idea/all/idea_*.mdidea/idea_*.md(已验证的idea)idea/deprecated/idea_*.md(废弃的idea)idea/viewer/ideaViewer_YYYY-MM-DD.md"小龙虾目录"/memory/YYYY-MM-DD.md(增量更新)触发条件:每天晚上22:00
工作目录:"AutoResearcher项目根目录"
执行步骤:
验证:检查 idea/ 下的已验证的创新点,再次
idea/viewer/ideaViewer_YYYY-MM-DD.mdidea/deprecated/并及时做好记录【创新点的实现】:将已经验证的创新点转换为可以实现的代码。
通知:验证完成后,根据用户的"消息通知偏好"按照"通知内容"的指定格式,输出通知消息。如果是再次审查失败的,也要通知。
⚠️ Token 节省策略:
输出文件:
idea/idea_*.md(已验证的idea经过验证后还放这里)idea/deprecated/idea_*.md(已验证的idea经过验证后废弃了)idea/viewer/ideaViewer_YYYY-MM-DD.md (做好记录)"小龙虾目录"/memory/YYYY-MM-DD.md(增量更新,但是这里要做批判性思考)projects/{project_name}_{idea_id}/ (完整的demo项目)projects/{project_name}_{idea_id}.ipynb(可以在colab上运行的jupyter notebook)projects/datasets/(下载到本地的数据集)触发条件:每 3 小时
工作目录:"AutoResearcher项目根目录"
⚠️ 核心要求:写成真正的综述论文,不是笔记清单!
规划阶段:
分块写作:
合并统稿:
按照"rethink.md综述的写作规范和要求"中的要求撰写。
执行步骤:
输出文件:
knowledgeOutput/rethink.md触发条件:每周日 21:00
工作目录:"AutoResearcher项目根目录"
执行步骤:
knowledgeOutput/daily/ 下所有日归档文件
knowledgeOutput/weekly/weekly_YYYY-MM.md(同月累计,不同月份分离)⚠️ Token 节省策略:
输出文件:
knowledgeOutput/weekly/weekly_YYYY-MM.md触发条件:每日 03:00
工作目录:"AutoResearcher项目根目录"
执行步骤:
knowledgeOutput/bak/ 目录下已有多少备份knowledgeOutput/daily/ 目录下所有文件knowledgeOutput/weekly/ 目录下所有文件knowledgeOutput/rethink.mdknowledgeOutput/bak/,命名格式:bak_YYYY-MM-DD.zip输出文件:
knowledgeOutput/bak/bak_YYYY-MM-DD.zip触发条件:每 12 小时
前置条件:如果上次清理后有新归档的 PDF,才执行归档 PDF 清理
工作目录:"AutoResearcher项目根目录"
执行步骤:
【清理 .openclaw 目录】
搜索 "AutoResearcher项目根目录" 下所有 .openclaw 相关文件/目录 如果在 files/downloaded/ 外发现 PDF 文件:
【清理已归档 PDF】
读取 papers.csv,筛选状态="已归档"的论文。 对每篇论文: 检查 files/downloaded/ 中对应 PDF 是否存在 存在 → 删除(节省空间)
【清理非论文笔记】(核心)
遍历 notes/YYYY-MM-DD/ 下所有 .md 文件 对每个文件,检测标题是否为论文标题,检测内容是否为单篇论文的阅读笔记。简单处理方式如下:
paper.csv里面的论文下载标题名称即可。分类处理:
【判断是否触发 papers 整理】
如果有以下情况,触发 papers整理 任务:
触发方式:在日志中记录「建议触发 papers整理」,由下一个任务轮次执行
【输出清理报告】
清理完成:
⚠️ 注意事项:
触发条件:每 12 小时(由清理任务触发时优先执行)
前置条件:上次整理后有新变化(下载/阅读/归档)
工作目录:"AutoResearcher项目根目录"
执行步骤:
【数据统计】
【一致性检查】
对比 A、B、C 三者是否一致:
情况1:A = B = C → 一致,无需操作
情况2:A > B → 有 PDF 无笔记:检查 papers.csv 对应状态。
情况3:A < B → 有笔记无 PDF:
情况4:C 与 A/B 差异大 → papers.csv 记录丢失或多余,需要修复
【修复缺失项】
【状态同步】
遍历 papers.csv 每条记录对比实际文件状态,更新 papers.csv:
【输出整理报告】
papers整理完成:
⚠️ 注意事项:
请参考用户的"研究方向",在执行搜索任务时,使用相关的关键词进行搜索,以确保搜索结果与用户的研究兴趣高度相关。
重要‼️ 请务必在执行任何任务前,先切换到"AutoResearcher项目根目录",确保文件的位置正确
{
"task": "执行 AutoResearcher 搜索任务"
}
{
"task": "执行 AutoResearcher 下载任务"
}
{
"task": "执行 AutoResearcher 阅读任务"
}
{
"task": "执行 AutoResearcher 日归档任务"
}
{
"task": "执行 AutoResearcher 创新点任务"
}
{
"task": "执行 AutoResearcher Rethink 任务"
}
{
"task": "执行 AutoResearcher 周归档任务"
}
{
"task": "执行 AutoResearcher 备份任务"
}
{
"task": "执行 AutoResearcher 创新点审查任务"
}
{
"task": "执行 AutoResearcher 清理任务"
}
{
"task": "执行 AutoResearcher papers整理任务"
}
通过以下任务消息控制定时任务系统:
| 操作 | 任务消息 |
|---|---|
| 启动全部定时任务 | "AutoResearcher 控制:启动全部定时任务" |
| 关闭全部定时任务 | "AutoResearcher 控制:关闭全部定时任务" |
| 启动单个任务 | "AutoResearcher 控制:启动【任务名】任务" |
| 关闭单个任务 | "AutoResearcher 控制:关闭【任务名】任务" |
| 手动触发某任务 | "AutoResearcher 控制:立即执行【任务名】任务" |
| 查看任务状态 | "AutoResearcher 控制:查看当前定时任务状态" |
| 进行创新点审查 | "AutoResearcher 控制:进行创新点审查" |
| 进行清理任务 | "AutoResearcher 控制:进行清理" |
| 进行papers整理 | "AutoResearcher 控制:进行papers整理" |
收到控制命令后,agent 调用 cron API 完成操作:
cron(action=add, job=...) 逐个添加 cron jobcron(action=update, jobId=xxx, patch={"enabled": false})cron(action=run, jobId=xxx)cron(action=list) 并格式化输出手动对 agent 说一次:"使用auto-researcher这个skill, 启动全部定时任务",agent 就会调用 cron add 把 11 个 job 全部注册进去。之后每次 cron 触发时 agent 自动读该skill目录下最新的 PATHS.md / PREFERENCES.md/ DIRECTIONS.md / GUIDELINES.md,改配置无需重建。任务的命名方式都要按照"autoresearcher-{job_name}"这样子,方便统一管理。
| 文件 | 说明 |
|---|---|
logs/search/search_YYYY-MM-DD.md | 搜索记录 |
logs/download/download_YYYY-MM-DD.md | 下载记录 |
logs/read/read_YYYY-MM-DD.md | 已读论文列表 |
papers.csv | 论文元数据存储 |
运行前确保:
"AutoResearcher项目根目录"