# RobotDaily

> 🤖 每日 AI/机器人领域论文精选推送

RobotDaily 是一个自动化论文精选系统，每天从 arXiv 抓取具身智能、表征学习、强化学习方向的最新论文，经过 LLM 筛选和解读后，推送到 Discord 频道并归档到 Hugo 博客。

---

## 📑 目录

- [项目结构](#项目结构)
- [快速开始](#快速开始)
- [核心功能](#核心功能)
- [配置说明](#配置说明)
- [维护指南](#维护指南)
- [开发说明](#开发说明)
- [版本历史](#版本历史)

---

## 项目结构

```
skills/robdaily/
├── arxiv-digest/              # 核心模块：论文抓取与处理
│   ├── scripts/               # Python 脚本
│   │   ├── run_daily.py       # 主入口：一键完成全流程
│   │   ├── fetch_arxiv.py     # 从 arXiv RSS 抓取论文
│   │   ├── search_arxiv_papers.py  # arXiv API 搜索
│   │   ├── select_papers.py   # 论文筛选与评分
│   │   ├── get_daily_papers.py        # 综合抓取工具
│   │   ├── complete_llm_pipeline.py   # LLM 增强全流程
│   │   ├── render_digest.py           # 渲染 HTML/Markdown 摘要
│   │   ├── enhanced_translation.py    # 高质量中文翻译
│   │   ├── translate_abstract.py      # 摘要翻译
│   │   ├── llm_translation_extraction.py  # LLM 提取解读
│   │   ├── publish_discord.py         # Discord 推送
│   │   ├── publish_hugo.py            # Hugo 同步
│   │   ├── format_telegram_card.py    # Telegram 卡片格式化（废弃）
│   │   └── install_system_cron.py     # 系统定时任务安装
│   ├── output/                # 每日输出目录（自动生成）
│   │   └── YYYY-MM-DD/
│   │       ├── candidates.json        # 候选论文列表
│   │       ├── selected.json          # 精选论文列表
│   │       ├── enriched.json          # LLM 增强后数据
│   │       ├── robotdaily.html        # HTML 移动端摘要卡片
│   │       ├── robotdaily.md          # Markdown 归档版本
│   │       └── manifest.json          # 元数据清单
│   ├── logs/                # 运行日志
│   ├── references/          # 参考文档
│   │   └── selection-and-delivery.md  # 筛选与推送策略
│   ├── assets/              # 静态资源（模板、样式）
│   ├── .env                 # 环境变量配置
│   └── .env.example         # 配置模板
│
├── site/                    # Hugo 博客站点
│   ├── content/             # Markdown 内容
│   │   ├── _index.md        # 首页
│   │   ├── ai-daily/        # 每日 AI 简报（自动生成）
│   │   │   ├── _index.md
│   │   │   └── YYYY-MM-DD.md
│   │   ├── blog/            # 个人博客文章
│   │   ├── projects/        # 项目文档
│   │   │   └── robotdaily/
│   │   │       ├── architecture.md  # 架构说明
│   │   │       ├── roadmap.md       # 路线图
│   │   │       ├── ops.md           # 运维文档
│   │   │       └── changelog.md     # 更新日志
│   │   └── resume/          # 简历页面
│   ├── layouts/             # Hugo 模板
│   │   ├── _default/
│   │   │   ├── baseof.html
│   │   │   ├── list.html
│   │   │   └── single.html
│   │   └── index.html       # 首页模板
│   ├── static/              # 静态资源
│   │   └── css/
│   │       └── site.css
│   ├── hugo.yaml            # Hugo 配置
│   └── README.md            # 站点说明
│
├── deploy/                    # Docker 部署方案
│   ├── docker-compose.yml     # 容器编排
│   ├── .env.example           # 环境变量模板
│   └── README.md              # 部署说明
│
├── node_modules/              # Node.js 依赖
├── package.json               # Node.js 配置
├── generate_arxiv_digest.js   # Node.js 入口脚本（旧版）
└── README.md                  # 本文件
```

---

## 快速开始

### 1. 配置环境变量

```bash
cd skills/robdaily/arxiv-digest
cp .env.example .env
# 编辑 .env 配置 Ollama 模型、Discord 令牌等
```

### 2. 运行每日简报

```bash
# 仅生成简报（dry run）
python3 scripts/run_daily.py

# 生成并推送到 Discord
python3 scripts/run_daily.py --publish-discord

# 生成并同步到 Hugo
python3 scripts/run_daily.py --publish-hugo

# 生成并推送两者
python3 scripts/run_daily.py --publish-discord --publish-hugo

# 跳过 LLM 增强（快速测试）
python3 scripts/run_daily.py --skip-enrich
```

### 3. 启动 Hugo 站点（本地开发）

```bash
cd skills/robdaily/site
hugo server -D
# 访问 http://localhost:1313
```

### 4. Docker 部署

```bash
cd skills/robdaily/deploy
cp .env.example .env
docker compose up -d
# 访问 http://localhost:9080
```

---

## 核心功能

### 论文抓取与筛选

- **自动抓取**：从 arXiv RSS/API 获取最新论文
- **领域聚焦**：具身智能、表征学习、强化学习
- **智能评分**：基于创新性、应用价值、时效性自动排序
- **精选推荐**：每个领域精选 2-3 篇最有价值论文

### LLM 增强解读

- **中文摘要翻译**：使用 `lmcpp/Qwen3.5-35B-A3B-UD-Q5_K_XL.gguf` 模型高质量翻译
- **价值解读**：生成简短的技术要点解读
- **标签分类**：自动提取关键词和标签
- **移动端优化**：渲染适合手机阅读的卡片样式

### 多渠道推送

- **Discord**：支持线程、频道、固定频道等多种推送模式
- **Hugo 博客**：自动生成每日简报页面
- **定时任务**：支持系统 cron 或 OpenClaw cron 调度

---

## 配置说明

### 关键环境变量

| 变量 | 说明 | 默认值 |
|------|------|--------|
| `INSIGHT_MODELS` | LLM 模型名称 | `lmcpp/Qwen3.5-35B-A3B-UD-Q5_K_XL.gguf` |
| `ROBOTDAILY_OUTPUT_DIR` | 输出目录 | `./output` |
| `HUGO_CONTENT_DIR` | Hugo 内容目录 | `../site/content/ai-daily` |

---

## 维护指南

### 日常运维

1. **检查日志**：`cat arxiv-digest/logs/robotdaily.log`
2. **查看输出**：`ls arxiv-digest/output/YYYY-MM-DD/`
3. **验证 Hugo**：`cd site && hugo --quiet`

### 故障排查

- **LLM 翻译失败**：确认 lmcpp 模型服务运行正常
- **Hugo 构建失败**：检查 Markdown 格式和 Front Matter

### 定时任务配置

**OpenClaw Cron（推荐）**：

```json
{
  "name": "RobotDaily 每日推送",
  "schedule": {"expr": "30 10 * * *", "kind": "cron", "tz": "Asia/Shanghai"},
  "payload": {
    "kind": "agentTurn",
    "message": "运行 RobotDaily 每日简报"
  }
}
```

**系统 Cron**：

```cron
30 10 * * * cd /path/to/robdaily/arxiv-digest && python3 scripts/run_daily.py --publish-discord >> logs/robotdaily.log 2>&1
```

---

## 开发说明

### 添加新论文来源

编辑 `scripts/fetch_arxiv.py` 或 `scripts/search_arxiv_papers.py`，添加新的查询条件。

### 调整评分算法

编辑 `scripts/select_papers.py`，修改 `score_paper()` 函数的权重参数。

### 自定义推送模板

- Discord 卡片：`scripts/publish_discord.py`
- Hugo 模板：`site/layouts/_default/`
- HTML 样式：`site/static/css/site.css`

---

## 版本历史

### 2026-03-12
- ✅ 分支统一为 `master`，删除 `main`
- ✅ 添加顶部目录超链接

### 2026-03-10
- ✅ Discord 推送改为 Embed 卡片格式
- ✅ 简化推送样式，移除中文摘要字段

### 2026-03-08
- ✅ 双阶段推送策略确立（保底版 + 修订版）
- ✅ 建立机器人协作机制

### 2026-03-06
- ✅ 初始版本发布

---

*Last updated: 2026-03-12*
