This skill is used to collect and generate the daily popular report in the AI field.
Trigger scenarios (generalized)
All of the following expressions can trigger this skill:
- "Collect today's AI news" / "What AI news is there"
- "Get AI information" / "Help me check AI updates"
- "What happened in AI today" / "What's new in AI recently"
- "Generate an AI report" / "Make an AI summary"
- "AI today's updates" / "AI weekly report"
- "See what's been happening in the AI world recently"
Supported parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
领域 |
string | No | Specific AI field, such as: LLM, large models, CV, computer vision, NLP, natural language processing, robotics, autonomous driving, multimodal, AI Agent, embodied intelligence, generative AI, AIGC, Stable Diffusion, Midjourney, etc. If unspecified, collect across all fields |
条数 |
number | No | Number of items to collect; defaults to 10 if unspecified |
时间段 |
string | No | Time range to collect, such as "today", "this week", "this month", "the past week", "the past month", etc. Defaults to "today" if unspecified |
Time period parameter description
| User expression | Parsed result | Description |
|---|---|---|
| "What AI news is there today" | Today | Default option |
| "This week's AI updates" | This week | The last 7 days |
| "This month's AI report" | This month | The last 30 days |
| "AI papers from the past week" | The past week | The last 7 days |
| "Help me organize this month's AI technology" | The past month | The last 30 days |
| "Last week's AI news" | Last week | 7-14 days ago |
Anti-freeze mechanism (important)
To prevent the task from getting stuck or timing out, the following rules must be followed during execution:
Timeout control
| Operation | Timeout limit | Description |
|---|---|---|
web_fetch Single |
10 seconds | Timeout for fetching a single URL |
web_search Single |
8 seconds | Timeout for a single search |
| Single information source | 15 seconds | Timeout limit for the entire source |
| Entire collection phase | 120 seconds | Total time limit for step two |
Error handling
- Skip on failure - A single source failure does not affect the whole; continue to the next one
- Fail fast - If 3 sources fail consecutively, lower the collection target
- Fallback content - If a certain type of content is insufficient, supplement with existing content
- Never block - Every operation must complete within the timeout or be abandoned
Parallel strategy
- Use
sessions_spawnto launch subtasks that fetch multiple sources in parallel - Each subtask sets its own timeout independently
- The main task aggregates results; sources that do not return before the timeout are ignored
Progress feedback
Each time an information source is completed, output a brief prompt:
[1/5] Hacker News ✓
[2/5] arXiv 论文列表 ✓
...
Workflow
Step 1: Parse user instructions (fast)
- Identify trigger keywords
- Extract domain parameters (optional, defaults to all domains)
- Extract item count parameters (optional, defaults to 10 items)
- Extract time period parameters(optional, defaults to "Today")
- Estimate the time required and inform the user
Time period parsing rules:
| Keyword | Time range |
|---|---|
| Today/today/today's news | Same day (0 days) |
| Yesterday/yesterday | Previous 1 day |
| This week/last 7 days/most recent week | 0-7 days |
| Last week | 7-14 days ago |
| This month/last 30 days/most recent month | 0-30 days |
| Last month | 30-60 days ago |
| Specified date such as "March 15" | Specific date |
Time period impact:
- File names include a time period identifier
- Use time filter parameters when searching
- Consider time relevance when filtering content
Step 2: Multi-dimensional information collection
Timeout limit: 120 seconds
Fetch information sources by priority, with each source having its own timeout:
Priority 1 - Must succeed (choose 2-3):
- Hacker News or Reddit
- arXiv paper list
Priority 2 - Try to succeed (choose 2-3):
- The Verge AI
- VentureBeat
- 36kr AI
Priority 3 - Optional (choose 1-2):
- Papers with Code
- GitHub Trending
Execution rules:
- Each
web_fetchcall setsmaxChars: 8000to limit content - Each
web_fetchimplicitly has a 10-second timeout - If a single source does not respond within 15 seconds, skip it
- After 120 seconds, force termination and enter the organization phase
Example:
// 并行抓取多个源,设置超时
await Promise.race([
web_fetch({ url: "...", maxChars: 8000 }),
new Promise(r => setTimeout(() => r(null), 15000)) // 15秒超时
])
Step 3: Filtering and organization
- Filter content according to the specified domain and item count
- When the collected content is insufficient, lower the item count requirement
- Ensure that news, papers, and tools are all represented
Step 4: AI domain knowledge summary
Core principle: Summarize based on AI domain knowledge; do not directly translate the original text
Summary writing requirements:
- Write in Chinese, but do not machine translate
- Interpret by combining AI domain background knowledge
- Extract technical points, innovations, and significance
- Explain the position and impact of the content in AI development
- If it involves a paper, explain the innovative method, experimental results, and applicable scenarios
- If it involves a tool, explain its features, applicable scenarios, and comparison with competitors
Each piece of content includes:
- Title
- Summary (100 words or more, incorporating analysis of the AI field)
- Source link
- Publication date
Step 5: Overall Summary
Includes:
- Core trends (3-5 items) - interpreted from the perspective of the AI field
- Issues that need attention
- One-sentence summary
Step 6: Generate a multi-format report
Timeout limit: 60 seconds
Save to:~/.openclaw/workspace/ai-reports/
- Markdown version (
.md) - save directly - HTML version (
.html) - rendered and beautified HTML - PDF version (
.pdf) - converted via HTML (optional; failure does not affect the main process)
Call the script to convert formats:
python3 ~/.openclaw/workspace/skills/ai-daily-report/scripts/md_converter.py \
~/.openclaw/workspace/ai-reports/AI-报告-{领域}-{时间段}-{日期}.md \
~/.openclaw/workspace/ai-reports/
Filename format:
- Today's report:
AI-报告-LLM-今日-2026-03-18.md - This week's report:
AI-报告-LLM-本周-2026-03-18.md - This month's report:
AI-报告-LLM-本月-2026-03-18.md
PDF conversion failure does not affect report generation, HTML is sufficient for reading.
Output format (Markdown version)
# 🔥 AI领域热门速递({领域})— {时间段} YYYY年M月D日
> 收集领域:{领域} | 收集时间段:{时间段} | 收集条数:{N}条
## 📰 {N}条热门新闻
### 1. [标题]
> [基于AI领域知识的摘要,100字以上...]
> 📅 发布日期 | 🔗 [来源](URL)
### 2. [标题]
...
## 📄 {N}条热门论文
### 1. [论文标题]
> [AI领域视角的论文解读,包括创新方法、实验结果等,100字以上]...
> 📅 arXiv ID | 🔗 [来源](URL)
## 🛠️ {N}条热门技术/工具
### 1. [技术/工具名称]
> [功能特点、适用场景、竞品对比,100字以上]...
> 🔗 [项目地址](URL)
## 📊 今日AI领域总体总结
### 【核心趋势】
1. [从AI领域视角解读]
2. ...
### 【需要关注的问题】
- ...
### 【一句话总结】
...
HTML template
Script md_converter.py has a built-in beautiful HTML template, including:
- Gradient purple theme header
- Card-style content layout
- Responsive design (adapts to mobile/computer)
- Categorized display of news/papers/tools
- Print-friendly styles
PDF generation
The script will automatically detect and install PDF conversion dependencies:
-
Automatic installation - The script will automatically try to install the following Python libraries (in priority order):
weasyprint⭐ Recommended, best resultspdfkitxhtml2pdffpdf2- Pure Python, simplified styling
-
No manual installation required - On first run, missing libraries will be downloaded automatically
-
Fallback option - If all installations fail, it will prompt the user to print to PDF using a browser
Notes
- Summaries must be based on knowledge of the AI field; direct translation is prohibited
- Each summary must be at least 100 words
- The source URL must be attached
- The overall summary must include in-depth analysis
- Write in Chinese
- Field names need to be standardized (e.g., "large model" → "LLM")
- After saving the report, show the file path to the user
- A timeout must be set during execution to prevent freezing
- PDF generation failure does not affect the HTML report
- The time period defaults to "Today" and can be adjusted according to user needs