用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/fuyuxiang/echo-agent --skill daily-briefing命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | daily-briefing |
| description | Daily briefing aggregating weather, reminders, news, and calendar. Delivered on schedule via any channel. |
| version | 1.0.0 |
| metadata | {"echo":{"tags":["Briefing","Daily","Morning","Digest","Productivity"]}} |
Generates a morning briefing combining weather, today's tasks, news headlines, and calendar events.
Create ~/.echo-agent/briefing.yaml:
schedule: "0 8 * * *" # 每天早上8点
location: Beijing
sections:
- weather
- reminders
- rss
- calendar
rss_feeds:
- https://hnrss.org/frontpage
- https://arxiv.org/rss/cs.AI
max_news: 5
channel: telegram # delivery channel
☀ 每日简报 — {date}
## 天气
{location}: {condition} {temp}°C, 湿度 {humidity}%
## 今日待办
- [ ] {reminder_1}
- [ ] {reminder_2}
## 新闻摘要
1. {title_1} — {source}
2. {title_2} — {source}
## 日程
- 09:00 {event_1}
- 14:00 {event_2}
# Generate briefing now
python3 scripts/generate_briefing.py
# Generate with custom config
python3 scripts/generate_briefing.py --config ~/.echo-agent/briefing.yaml
# Preview without sending
python3 scripts/generate_briefing.py --dry-run
Add to Echo Agent's cron channel for automatic daily delivery. The cron expression 0 8 * * * fires at 8:00 AM daily.
Create the job with the cronjob tool. If the briefing produces a file (e.g. a
voice version), deliver it inside the same run — for audio use
text_to_speech(..., deliver=true), for other files call send_file with the
target channel/chat. An unattended run may end right after generating the file,
so a "generate now, send later" split silently drops it.
When cronjob(action="create") returns, send the user ONE confirmation — job id,
schedule, next fire time — and end the turn. Do NOT "verify delivery" by reading
gateway/server.py / a2a/server.py or curling internal endpoints
(/v1/chat, /api/v1/message); that is not a delivery test, it just burns the
turn and leaves the user without a reply. To sanity-check, use
cronjob(action="list"); the scheduled fire is the real delivery.