Automatically generate and push the team daily report every day, summarizing all agent work, cron executions, skill progress, and key events for the day.
Trigger Method
- Cron: automatically executes every day at 23:00
- Manual:
python3 ~/clawd/scripts/team_daily_report.py
Push Channels
| Target | Method | Bot |
|---|---|---|
| DailyNews group (-1003824568687) | Built-in script sendPhoto + sendText | NewsRobot (@fkkanfnnfbot) |
| Daniel private chat (REDACTED_TG_USER_ID) | cron agent uses message tool | Main Bot |
Execution Flow
Step 1: Dump the day's cron status
cron agent uses cron(action='list') to get all jobs, filter those executed today, and write to:
~/clawd/config/cron-status-today.json
Format:
[
{"name": "任务名", "status": "ok", "time": "HH:MM", "dur": 秒数},
...
]
Extraction logic: iterate through each job's state.lastRunAtMs, convert to date, match today's, and extract name/lastStatus/time/lastDurationMs.
Step 2: Run the daily report script
python3 ~/clawd/scripts/team_daily_report.py
The script automatically completes:
- Read data sources (see below)
- Generate text report
- Push cover image + text to the DailyNews group via NewsRobot
- Save to
~/clawd/reports/daily/team-report-{date}.txt
Step 3: Send to Daniel private chat
The cron agent reads the generated txt file and uses the message tool to send it to Daniel.
Data Sources
| Data | Source | Change Frequency |
|---|---|---|
| Cron execution records | ~/clawd/config/cron-status-today.json |
Daily dump |
| Skill equipment progress | ~/clawd/config/agent-learning-progress.json |
Hourly (skill collection cron update) |
| Today's highlights | ~/clawd/memory/{YYYY-MM-DD}.md |
Accumulated throughout the day |
| Number of learning records | ~/clawd/memory/learning-log.md |
Nightly learning cron update |
| Weather | wttr.in/Shanghai API | Real-time |
| Cover image | ~/clawd/assets/daily-report-covers/ |
Rotates by date |
Report Format
🤖 小a团队日报 | 2026-02-11 周三
📍 上海 12°C Partly Cloudy · 封面: 莱依拉
━━━━━━━━━━━━━━━━━━━━
📊 今日概览
成员 15 · 任务 10 · 成功 9 · 失败 1
Skill 59/475 (12%) · 学习 1
██░░░░░░░░░░░░░░░░░░ 12%
👥 各Agent今日状态
🟣 claude-opus-4-6
📊 数据分析师 █░░░░░░░ 3/31
⚖️ 法务顾问 █░░░░░░░ 5/32
...
🔵 glm-4.7
📋 项目经理 █░░░░░░░ 3/32
...
🟢 kimi-k2.5
💼 销售专家 ██░░░░░░ 8/33
...
🟡 gemini-3-pro
🎧 客服专家 █░░░░░░░ 5/32
...
⚡ Cron执行记录
06:29 ✅ 小a 夜间自我学习 (303s)
09:01 ✅ 医疗企业融资监控 (72s)
...
💡 今日亮点
· 亮点1
· 亮点2
━━━━━━━━━━━━━━━━━━━━
⏰ 23:00 · v2.3
Cover Rotation Rules
12 Genshin Impact cosplay covers, rotating by day_of_year % 12 :
| No. | Character | File |
|---|---|---|
| 0 | Kamisato Ayaka | ayaka.jpeg |
| 1 | Barbara | barbara.jpeg |
| 2 | Columbina | colombina.jpeg |
| 3 | Ganyu | ganyu.jpeg |
| 4 | Hu Tao | hutao.jpeg |
| 5 | Keqing | keqing.jpeg |
| 6 | Layla | |
| 7 | Lisa | lisa.jpeg |
| 8 | Lynette | lynette.jpeg |
| 9 | Nahida | nahida.jpeg |
| 10 | Raiden Shogun | raiden.jpeg |
| 11 | Yoimiya | yoimiya.jpeg |
15 Agent Configurations
| Agent | Model | Emoji |
|---|---|---|
| sales | kimi-k2.5 | 💼 |
| support | gemini-3-pro | 🎧 |
| data | claude-opus-4-6 | 📊 |
| pm | glm-4.7 | 📋 |
| crm | kimi-k2.5 | 🤝 |
| finance | glm-4.7 | 💰 |
| legal | claude-opus-4-6 | ⚖️ |
| marketing | kimi-k2.5 | 🚀 |
| product | glm-4.7 | 🎯 |
| research | claude-opus-4-6 | 🔬 |
| ops | glm-4.7 | 🔧 |
| content | kimi-k2.5 | ✍️ |
| knowledge | gemini-3-pro | 📚 |
| news | kimi-k2.5 | 📰 |
| healthcare-monitor | claude-opus-4-6 | 🏥 |
Key Files
| File | Purpose |
|---|---|
~/clawd/scripts/team_daily_report.py |
Daily report generation + push script |
~/clawd/scripts/newsbot_send.py |
NewsRobot general push |
~/clawd/config/cron-status-today.json |
Current day's cron execution status |
~/clawd/config/agent-learning-progress.json |
Skill equipment progress |
~/clawd/config/agent-skills-map.json |
Agent-Skill mapping |
~/clawd/memory/learning-log.md |
Learning log |
~/clawd/assets/daily-report-covers/ |
12 cosplay covers |
~/clawd/reports/daily/ |
Historical daily report archive |
Telegram Limits
- sendPhoto caption: maximum 1024 characters
- sendMessage text: maximum 4096 characters
- Strategy: use a short caption for the cover image, and send the detailed report as a reply message
Notes
- NewsRobot token:
pass show tokens/telegram-newsrobot - Keys are never hardcoded
- The weather API occasionally times out; displaying N/A does not affect the overall result
- cron-status-today.json must be dumped by the agent before the script runs, otherwise the cron records will be empty