| name | simple-auto-researcher |
| description | 自动化学术研究助手 - 搜索→下载→阅读→归档→创新点生成验证 |
| metadata | {"openclaw":{"emoji":"🔬","requires":{"tools":["exec","cron","sessions_spawn","read","write"]}}} |
AutoResearcher - 自动化学术研究助手
📖 变量引用规范
在执行任务时,需要从配置文件中读取动态变量。语法如下:
- "工作量" - 引用变量,值由配置文件决定(如 PREFERENCES.md 中定义的工作量)
"工作量" - 强调变量名本身,用于需要显式说明"此处为变量"的语境
- 两者本质相同,均指向同一变量,唯一的区别是显示效果不同
示例:
| 写法 | 含义 | 实际效果(假设"工作量"=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篇新论文。
- 对每篇论文:
- 检查 papers.csv 是否已存在/下载/归档(已存在/下载/归档 → 忽略不存入)
- 如果不够,则进行补充。
-
【搜集论文信息】
- 通过dblp,搜集"papers.csv要求"所需要的条目,可以留空(除了标题、链接)
- 新的论文状态(下载)、状态(阅读)、状态(归档)分别标记为未下载、未阅读、未归档
-
【记录 + 更新】
- 写入
logs/search/search_YYYY-MM-DD.md,做好日志。
- 增量更新
papers.csv
输出文件:
logs/search/search_YYYY-MM-DD.md
papers.csv
📥 下载任务
触发条件:每 30 分钟
工作目录:"AutoResearcher项目根目录"
执行步骤:
- 【待下载搜集】读取
paper.csv 中标注为"待下载"的论文
- 【按序下载】按顺序选择
"工作量"*2 篇下载 PDF
- 【清理 PDF 文件名】:下载后立即去掉序号前缀(如
01_、02_、1_、2_、03_ 等)
- 例如:
01_Statistical_Analysis_Inverse_Entropy_RL.pdf → Statistical_Analysis_Inverse_Entropy_RL.pdf
- 可以使用正则匹配:
^\\d+_ 或 ^\\d+-
- 注意:有些论文标题本身可能包含数字,只去掉开头的数字和下划线/连字符,不要误删标题中的数字
- 【命名以及保存】将下载的 PDF 文件按照正确的格式命名并保存到
files/downloaded/ 目录下,命名格式:{论文标题}.pdf
- 例如:
files/downloaded/Statistical_Analysis_Inverse_Entropy_RL.pdf
- 【失败日志】如果下载失败,记录到
files/tobedownloaded/YYYY-MM-DD.md,包含:标题、作者、年份、链接、失败原因
- 【下载日志记录】更新
logs/download/download_YYYY-MM-DD.md做好日志记录
- 【更新总库】按照GUIDELINES的 "papers.csv要求"更新:
- 下载成功的论文标记为
已下载。填写下载日期
- 存储论文pdf路径
输出文件:
files/downloaded/*.pdf
files/tobedownloaded/YYYY-MM-DD.md
logs/download/download_YYYY-MM-DD.md
papers.csv
📖 阅读任务
触发条件:每 15 分钟
工作目录:"AutoResearcher项目根目录"
⚠️ 文件名格式(必须严格遵守):
- 正确格式:
notes/YYYY-MM-DD/{论文标题}.md
- 例如:
notes/2026-03-18/DialogXpert.md
- 禁止在文件名中加入 YYYY-MM-DD 或 MM-DD 等日期前缀或者后缀!
- 禁止继续创建子目录!
- notes下子目录名使用格式示例:2026-03-18(YYYY-MM-DD)
- 禁止存放非论文笔记文件!
执行步骤:
- 【重要】检查 papers.csv:读取
papers.csv,筛选出标记"未阅读"的论文,即待阅读论文,获取其对应的文章pdf路径。
- 【文章选择】从
files/downloaded/获取 "工作量"篇未阅读的论文。
- 【文章阅读】使用用户偏好的"论文阅读工具"阅读论文,按照用户偏好的"论文笔记要求",提取关键内容进行适当分析并保存为
notes/YYYY-MM-DD/{论文标题}.md,
- 【重要】YYYY-MM-DD 文章何时读,就存到何日。例如:PDF 3月17号进行了对应的阅读任务 → 笔记保存到
notes/2026-03-17/
- 【信息补充】通过用户偏好的"联网搜索偏好"联网搜索:
- 渠道:微信公众号、知乎、bilibili等
- 检查:是否有相关解读,有则融入笔记,并注明来源。
- 【记忆沉淀】:每阅读 20 篇论文后,进行一次跨论文总结
- 提取核心发现和创新点
- 写入
"小龙虾目录"/memory/YYYY-MM-DD.md(每条 ≤ 100 字)
- 包括:主题、面对的问题、解决了什么局限、关键方法、相关论文。
- 要简略,不是笔记。
- 【日志记录】更新
logs/read/read_YYYY-MM-DD.md,做好日志
- 【更新总库】:将论文阅读状态同步到
papers.csv,
- 其中一定要存入
笔记列信息
- 阅读过的论文要将
阅读状态改为已阅读,填写阅读日期
- 进行"papers.csv要求"的其他内容补充与检查
⚠️ Token 节省策略:
- 写 memory 时保持简短(每条 ≤ 100 字)
- 只记录跨论文的关联信息,不重复单篇论文笔记
输出文件:
notes/YYYY-MM-DD/{论文标题}.md
logs/read/read_YYYY-MM-DD.md
papers.csv
"小龙虾目录"/memory/YYYY-MM-DD.md(每10篇写入一次)
📅 日归档任务
本质上,是对已阅读论文的归档任务,按照增量方式,在每日的日归档文件中不断追加新的论文归档内容。
触发条件:每 1 小时
工作目录:"AutoResearcher项目根目录"
⚠️ 核心理解:归档 = 增量添加(Add),一般不重写!
- 归档是对本批待归档论文的精简凝练表达
- 归档是按主题分类归类,方便后续 Rethink
- 归档要细致全面,没有遗漏! 每篇论文都要归档,不要遗漏任何一篇!
- 如果觉得某篇不重要,单独列一个分类并说明理由
- 如果已有分类不足以概括这份工作,可以新开一个分类
- 当归档内容足够多时,进行详细思考,对已有的文档进行逻辑、内容上的重新梳理,一定不能一个分类就是一篇文章,除非它只能放到这个分类。
精简格式模板(每篇论文 3-5 行):
参考 GUIDELINES 的 日归档格式模板
分类维度:
参考用户偏好的"研究方向的分类维度"、可以自己加上自己的分类。
执行步骤:
- 【未归档统计】读取
papers.csv 统计未归档论文
- 得到对应的
笔记(笔记保存位置)。
- 得到对应的
notes/YYYY-MM-DD/*.md
- 并决定归档执行次数
- 如果
阅读日期分布在同一天,执行一次归档。
- 如果
阅读日期分布在不同天,执行最多3次分日期归档。
- 【归档文件初始化】检查
knowledgeOutput/daily/ 目录下今日是否已有归档文件(YYYY-MM-DD.md)
- 如果有增量追加未归档的论文;
- 如果没有,目录下创建新文件YYYY-MM-DD.md
- 【归档内容】每篇论文精简为 3-5 行,按照"日归档格式模板"进行归档
- 【归档存放】每篇论文都要归档,不要遗漏!
- 论文存放位置:根据论文来源,放入对应日期YYYY-MM-DD分类下,比如notes/2026-03-18/目录下的论文就放入knowledgeOutput/daily/2026-03-18.md的对应分类下。
- 【内容整理】放入后,进行整理
- 按照用户偏好的"研究方向的分类维度"进行分类归类
- 如果觉得某篇论文不重要,可以单独列一个分类"其他/不相关",并说明理由。
- 当归档内容足够多时,进行详细思考,对已有的文档进行逻辑、内容上的重新梳理
- 【更新总库】将论文阅读状态同步到
papers.csv,
- 归档过的论文要将
归档状态改为已归档、填写归档日期
- 进行"papers.csv要求"的其他内容补充与检查
⚠️ 重要:
- 一般情况不要重写已有内容,只做增量添加;足够内容才做重排。
- 不要遗漏任何一篇论文
- 如果分类需要调整,可以在文件开头更新分类索引
- 归档是给 Rethink 用的,核心是分类清晰 + 精简表达 + 全面覆盖
- 文档开头要显示本日
输出文件:
knowledgeOutput/daily/YYYY-MM-DD.md(增量追加)
papers.csv(更新归档状态)
💡 创新点任务
触发条件:每日10:00和22:00
工作目录:"AutoResearcher项目根目录"
执行步骤:
-
【生成】:基于以下内容生成至多 **"创新点数"**个创新点
- 基于近7日归档(
knowledgeOutput/daily/*.md以及knowledgeOutput/weekly/*.md)(日期约束);
- 结合昨日和今日所阅读的论文;
- 结合之前的 rethink.md(知识体系)
- 优先读取 rethink.md
-
【命名保存】保存到 idea/all/*.md(按字母+6位数字命名)
- 创新点文档命名规范:
idea_a000001.md(a开头,后面6位数字递增)
- 【编号扫描范围-必须遵守】:确定下一个编号时,必须扫描
idea/ 根目录 + idea/all/ + idea/deprecated/ + idea/viewer_backup/ 所有子目录下的所有文件,从所有文件中提取最大编号。绝对不能只扫描 idea/all/ 一个目录!
- 重要:必须先遍历完a的前999999个编号(a000001
a999999),才能切换到b。a000001a999999都没用完时,禁止使用b、aa等后续前缀!
- 例如:a000001 → a000002 → ... → a999999 → b000001 → ... → z999999 → aa000001 → ...
- 如果目录中最大编号是a000341,下一个必须是a000342,绝不能是b或aa
- 例如:
idea_a000001.md、idea_a000002.md、idea_b000001.md、idea_aa000001.md
- 如果文档里已经有idea文件了,计数要从目录中所有文件中最大的数往后计算,比如说遍历所有idea子目录然后也看了idea根目录找到最大的是a...11,那么下一个生成的就应该是a...12,如果是b999999,那么应该有能力且应该推算出下一个是c000001,后面以此类推
- 创新点文档内容,请参考用户偏好的"创新点模板要求"
- 一定得考虑可行性,并且把验证方式、甚至文章框架、实验框架、方法论框架都要写出来。
-
记忆沉淀:将本次创新点相关的核心发现(约 100 字)写入 "小龙虾目录"/memory/YYYY-MM-DD.md
- 包括:创新点名称、核心思路、相关论文引用
- 如果你觉得不可行甚至模棱两可,不建议存入记忆。
-
验证:检查 idea/all/ 下的待验证创新点
- 使用用户"联网搜索偏好"搜集资料验证可行性
- 结果保存到
idea/viewer/ideaViewer_YYYY-MM-DD.md
- 验证标准:①问题出发的背景 ②前人是否已做 ③理论可行性 ④实际可操作性
- 验证后:可行 → 移至
idea/ 根目录;不可行/已有人做的差不多了 → 移至 idea/deprecated/
- 经过验证后放弃的idea将不会放到idea根目录,而是放到idea/deprecated/目录下,编号也不连续。你无需担心。要见证自己的思考过程,保留所有的idea,无论成功失败。
-
通知:验证完成后,根据用户的"消息通知偏好"按照"通知内容"的指定格式,输出通知消息。
⚠️ Token 节省策略:
- 每次只读取最近 7 天的归档
- 优先使用 rethink.md(已压缩的知识体系)
- 写 memory 时保持简短(每条 ≤ 100 字)
输出文件:
idea/all/idea_*.md
idea/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.md
- 除了联网搜索,还要结合今日所有知识
- 验证标准:①前人是否已做 ②理论可行性 ③实际可操作性
- 验证后:可行 → 不变;不可行/已有人做的差不多了 → 移至
idea/deprecated/并及时做好记录
-
【创新点的实现】:将已经验证的创新点转换为可以实现的代码。
- 如果创新点的可行性非常强,生成一个demo项目
- 项目路径:projects/{projectname}{idea_id}/
- 项目的README文档里注明基础代码源自哪个仓库/改自哪个仓库,使用的哪部分知识,需要了解的代码背景等便于用户理解代码。
- 项目的README文档写清楚项目的目录结构
- 项目包含较为完整的测试代码
- 为了方便进一步验证,需要写成一份可以python运行的笔记本
- 笔记本路径:projects/{projectname}{idea_id}.ipynb
- 要求,可以在colab上运行。因此需要明确环境依赖,并在笔记本里写上安装环境的相关代码。
- 数据集补充,遵循最小实现原则,使用创新点所涉及到的最容易实现的小体量数据集。下载到本地的datasets
-
通知:验证完成后,根据用户的"消息通知偏好"按照"通知内容"的指定格式,输出通知消息。如果是再次审查失败的,也要通知。
⚠️ Token 节省策略:
- 每次只读取当天的日归档、本周的周归档(没有就算了)
- 优先使用 rethink.md(已压缩的知识体系)
- 写 memory 时保持简短(每条 ≤ 100 字),一定要在记忆中把这个创新点相关的内容做出批判性思考,不是直接删除,也不是直接说原来的不行,要变为哪里不行,哪里还可以做的更好。
输出文件:
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/(下载到本地的数据集)
🧠 Rethink 任务(知识体系重构)
触发条件:每 3 小时
工作目录:"AutoResearcher项目根目录"
⚠️ 核心要求:写成真正的综述论文,不是笔记清单!
📐 分块处理流程
-
规划阶段:
- 先通读所有归档(日/周),梳理出主要研究方向/主题
- 根据用户的"研究方向"按主题分组(如:情感对话、强化学习训练、多模态、评估等)
- 规划每个部分的篇幅和重点
-
分块写作:
-
合并统稿:
- 全文通读一遍,确保逻辑连贯
- 检查演化关系是否清晰
- 统一引用格式
📝 综述写作指南(必须严格遵循)
按照"rethink.md综述的写作规范和要求"中的要求撰写。
🔄 增量更新策略
- 基于现有 rethink.md 进行增量补充
- 新内容要与已有分类合并,不是简单追加
- 如果发现新的分类角度,调整整体结构
- 定期合并同类项,避免重复
执行步骤:
- 分批读取归档(避免超过 200k token 限制):
- 每次最多读取 10 个归档文件
- 按日期倒序,优先读取最新
- 如果内容仍超限,进一步缩减
- 按上述指南撰写综述
- 合并统稿,确保逻辑连贯
输出文件:
knowledgeOutput/rethink.md
📆 周归档任务
触发条件:每周日 21:00
工作目录:"AutoResearcher项目根目录"
执行步骤:
- 读取本周
knowledgeOutput/daily/ 下所有日归档文件
- 生成周小结保存到
knowledgeOutput/weekly/weekly_YYYY-MM.md(同月累计,不同月份分离)
- 内容包含:本周阅读论文总数、关键主题、跨论文关联分析、研究趋势总结
- 如果是月末最后一周执行周归档,则在上述完成后,则对本月的周归档进行一次的内容布局调整,使得同一主题的内容尽量集中在一起,方便后续 Rethink 使用。
⚠️ Token 节省策略:
输出文件:
knowledgeOutput/weekly/weekly_YYYY-MM.md
💾 备份任务
触发条件:每日 03:00
工作目录:"AutoResearcher项目根目录"
执行步骤:
- 检查
knowledgeOutput/bak/ 目录下已有多少备份
- 备份以下文件:
knowledgeOutput/daily/ 目录下所有文件
knowledgeOutput/weekly/ 目录下所有文件
knowledgeOutput/rethink.md
- 存放到
knowledgeOutput/bak/,命名格式:bak_YYYY-MM-DD.zip
- 如果超过 5 份备份,删除最老的
输出文件:
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 文件
对每个文件,检测标题是否为论文标题,检测内容是否为单篇论文的阅读笔记。简单处理方式如下:
- 由于论文阅读时,笔记与论文标题一致,只是后面改成了.md,所以只要检查
paper.csv里面的论文下载标题名称即可。
分类处理:
- 可能是有效笔记但标题不规范 → 保留,待人工确认
- 明显不是论文笔记 → 移动到trash/目录
-
【判断是否触发 papers 整理】
如果有以下情况,触发 papers整理 任务:
- 清理了 .openclaw 目录的文件
- 删除了归档 PDF
- 移动了非论文笔记
触发方式:在日志中记录「建议触发 papers整理」,由下一个任务轮次执行
-
【输出清理报告】
清理完成:
- .openclaw 清理:X 个文件
- 删除归档 PDF:X 个 转移至/trash
- 移动非论文笔记:X 个
- 触发 papers整理:是/否
⚠️ 注意事项:
- 删除 PDF 前必须确认 papers.csv 中状态为"已归档"
- 移动文件时保留原文件的修改时间
- 非论文笔记判断要保守,模棱两可的保留
📊 papers整理任务
触发条件:每 12 小时(由清理任务触发时优先执行)
前置条件:上次整理后有新变化(下载/阅读/归档)
工作目录:"AutoResearcher项目根目录"
执行步骤:
-
【数据统计】
- 统计 A:files/downloaded/**/*.pdf 总数
- 统计 B:notes/**/*.md 总数
- 统计 C:papers.csv 总记录数
- 统计 D:papers.csv 中状态分布
- 待下载:X
- 已下载:X
- 已阅读:X
- 已归档:X
-
【一致性检查】
对比 A、B、C 三者是否一致:
-
【修复缺失项】
- 3.1 有 PDF 但无笔记(且 papers.csv 显示已阅读)
→ 标记该论文为「笔记丢失」
→ 保留 PDF,重新生成笔记
- 3.2 有笔记但无 PDF(且 papers.csv 未归档)
→ 检查是否因下载失败导致
→ 记录到 files/tobedownloaded/
- 3.3 papers.csv 记录缺失
→ 扫描 files/downloaded/ 和 notes/
→ 补充 papers.csv 记录
- 3.4 papers.csv 有重复记录
→ 按 ID 去重,保留最新状态
-
【状态同步】
遍历 papers.csv 每条记录对比实际文件状态,更新 papers.csv:
- notes/ 有对应 .md → 确保状态为"已阅读"
- files/downloaded/ 有对应 .pdf → 确保状态为"已下载"
- 两者都有 + 已归档 → 确保归档状态正确
-
【输出整理报告】
papers整理完成:
- 📁 文件统计:
- PDF 总数:X
- 笔记总数:X
- papers.csv 记录:X
- 📋 状态分布:
- 待下载:X | 已下载:X | 已阅读:X | 已归档:X
- 🔍 一致性:
- files/ vs notes/:✓一致 / ✗ 差异 X 个
- papers.csv vs 文件:✓一致 / ✗ 差异 X 个
- ⚠️ 异常项:X 个(见日志)
⚠️ 注意事项:
- papers.csv 是核心,不要轻易删除记录
- 修复时遵循「文件优先」原则:文件存在但状态不对 → 更新状态
- 去重时保留状态最新的那条记录
🚀 使用方式
研究方向
请参考用户的"研究方向",在执行搜索任务时,使用相关的关键词进行搜索,以确保搜索结果与用户的研究兴趣高度相关。
手动执行单个任务
重要‼️ 请务必在执行任何任务前,先切换到"AutoResearcher项目根目录",确保文件的位置正确
- 搜索任务,会自动得到关键词,如,用户"研究方向"相关的关键词
{
"task": "执行 AutoResearcher 搜索任务"
}
- 下载任务
{
"task": "执行 AutoResearcher 下载任务"
}
- 阅读任务
{
"task": "执行 AutoResearcher 阅读任务"
}
- 日归档任务
{
"task": "执行 AutoResearcher 日归档任务"
}
- 创新点任务
{
"task": "执行 AutoResearcher 创新点任务"
}
- rethink任务
{
"task": "执行 AutoResearcher Rethink 任务"
}
- 周归档任务
{
"task": "执行 AutoResearcher 周归档任务"
}
- 备份任务
{
"task": "执行 AutoResearcher 备份任务"
}
- 创新点审查任务
{
"task": "执行 AutoResearcher 创新点审查任务"
}
- 清理任务
{
"task": "执行 AutoResearcher 清理任务"
}
- papers整理
{
"task": "执行 AutoResearcher papers整理任务"
}
🎮 控制命令
通过以下任务消息控制定时任务系统:
| 操作 | 任务消息 |
|---|
| 启动全部定时任务 | "AutoResearcher 控制:启动全部定时任务" |
| 关闭全部定时任务 | "AutoResearcher 控制:关闭全部定时任务" |
| 启动单个任务 | "AutoResearcher 控制:启动【任务名】任务" |
| 关闭单个任务 | "AutoResearcher 控制:关闭【任务名】任务" |
| 手动触发某任务 | "AutoResearcher 控制:立即执行【任务名】任务" |
| 查看任务状态 | "AutoResearcher 控制:查看当前定时任务状态" |
| 进行创新点审查 | "AutoResearcher 控制:进行创新点审查" |
| 进行清理任务 | "AutoResearcher 控制:进行清理" |
| 进行papers整理 | "AutoResearcher 控制:进行papers整理" |
执行逻辑
收到控制命令后,agent 调用 cron API 完成操作:
- 启动 =
cron(action=add, job=...) 逐个添加 cron job
- 关闭 =
cron(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项目根目录"
- 网络访问正常(Google Scholar / ArXiv),如果可以访问外网更好。
- 定时任务已正确配置工作目录
📌 注意事项
- agent提醒用户修改对应配置时,可以通过README.md提示用户应该修改哪些,但是不允许直接修改该skill项目的README.md的内容,只允许用户自己修改。