Hermes ArXiv Agent — Full Setup Guide¶
Repo: genggng/hermes-arxiv-agent | ⭐ 91 Author: genggng | Language: Python License: MIT
The Hermes ArXiv Agent is a Hermes skill that automates the academic paper pipeline: daily arXiv fetching, AI-generated Chinese summaries with author affiliations, Feishu (Lark) notifications, and a local static reading website.
Prerequisites¶
- Python 3.11+
- Hermes Agent installed
- Feishu/Lark bot (for notifications — optional)
- Internet access for arXiv API
Installation¶
git clone https://github.com/genggng/hermes-arxiv-agent.git
cd hermes-arxiv-agent
pip install -r requirements.txt
Configuration¶
1. arXiv Categories¶
Edit config.yaml to set your categories:
arxiv:
categories:
- cs.AI # Artificial Intelligence
- cs.CL # Computation and Language
- cs.LG # Machine Learning
- stat.ML # Machine Learning (Statistics)
max_results: 50
fetch_time: "08:00" # Daily fetch time (UTC)
Common categories:
| Code | Field |
|------|-------|
| cs.AI | Artificial Intelligence |
| cs.CL | Computation & Language (NLP) |
| cs.CV | Computer Vision |
| cs.LG | Machine Learning |
| cs.SE | Software Engineering |
| stat.ML | ML (Statistics) |
| math.OC | Optimization & Control |
2. AI Summary Provider¶
Configure the AI backend for generating summaries:
ai:
provider: "openai" # or "deepseek", "ollama", "anthropic"
model: "gpt-4o"
api_key: "${OPENAI_API_KEY}"
summary_language: "zh" # "zh" for Chinese, "en" for English
max_tokens: 500
3. Feishu/Lark Notification (Optional)¶
feishu:
enabled: true
webhook_url: "https://open.feishu.cn/open-apis/bot/v2/hook/xxxxx"
secret: "your-bot-secret"
4. Local Website¶
website:
enabled: true
output_dir: "./public"
host: "0.0.0.0"
port: 8080
title: "My ArXiv Feed"
Usage¶
Install as Hermes Skill¶
# Copy skill to Hermes skills directory
cp -r hermes-arxiv-agent ~/.hermes/profiles/default/skills/
# Or link it
ln -s $(pwd) ~/.hermes/profiles/default/skills/hermes-arxiv-agent
Manual Run¶
# Fetch papers for today
python3 fetch.py
# Generate summaries
python3 summarize.py
# Build static website
python3 build_site.py
# Send Feishu notification
python3 notify.py
Scheduled via Hermes Cron¶
# Create a daily cron job
hermes cron create \
--name "arxiv-daily-fetch" \
--schedule "0 8 * * *" \
--command "cd ~/hermes-arxiv-agent && python3 fetch.py && python3 summarize.py && python3 notify.py"
Output Structure¶
After running, your directory will look like:
hermes-arxiv-agent/
├── papers/
│ ├── 2026-07-04/
│ │ ├── 2401.12345.json # Raw paper metadata
│ │ ├── 2401.12345_summary.md # AI-generated summary
│ │ └── ...
│ └── index.json # All-time index
├── public/ # Static website
│ ├── index.html
│ ├── papers/
│ └── assets/
└── logs/
└── fetch.log
Feishu Notification Format¶
Each notification card includes: - Paper title (with arXiv link) - AI summary (Chinese by default) - Authors and affiliations - Categories and keywords - PDF link
Troubleshooting¶
"arXiv API rate limited"¶
arXiv allows ~1 request per 3 seconds. The agent includes built-in rate limiting. If you still hit limits:
arxiv:
request_delay: 5 # Increase delay between requests
"Feishu webhook returns 403"¶
Check that: 1. The webhook URL is correct 2. The bot has permission to post in the target chat 3. The secret is configured (if secret-mode webhook)
"Chinese summaries are low quality"¶
Try a different model or increase max_tokens:
ai:
model: "deepseek-chat" # Strong Chinese performance
max_tokens: 800
"Static site not rendering"¶
Make sure the public/ directory is writable and you have basic HTML templates in templates/.
Alternatives¶
| Tool | Language | Notes |
|---|---|---|
| hermes-arxiv-agent | Python/Chinese | This guide |
| arxiv-sanity | Python/English | Andrej Karpathy's arxiv browser |
| Semantic Scholar API | REST | Academic paper search |
| Paper Digest | SaaS | Auto-summarization service |
Guide last updated: July 4, 2026 | Repo | Report issue