每日晨报:定时抓资讯发到你的 IM
💡 一句话总结:用 OpenClaw 建一条 AI 每日资讯晨报生产线 —— 定时抓取、自动汇总、定点投递到你的 IM。
创作路线的第一课,先解决创作者的输入问题:每天稳定、结构化地知道领域里发生了什么。这一课把 定时任务 Automations 里学到的 cron 循环任务,和 Claw 自带的 web_search 搜索工具拼在一起——Gateway 到点唤醒 Claw → Claw 搜全网 → 写成晨报 → 投递进你指定的 IM。一次配好,晨报的生成就成了每天后台自动发生的事,你早上看一眼就行。全部示例基于 OpenClaw v2026.10.9。
学完你能做什么
- 建一条每天准点自动跑的晨报任务:到点自己搜、自己写、自己送进 IM,全程无人值守
- 给 Claw 配好搜索提供商(国内可直连的 Kimi / MiniMax,或免 key 的 DuckDuckGo),让它真有料可搜
- 把晨报投递到任意已接入的渠道:Telegram 群、Slack 频道,或直接发到你的私聊
- 用提示词调教晨报口味:主题范围、时间窗口、输出结构、字数上限,
edit一次长期生效
为什么用 OpenClaw,而不是网页版 AI?
| 能力 | 网页版 AI | OpenClaw 晨报任务 |
|---|---|---|
| 出报方式 | ❌ 每天自己开网页、敲提示词、复制结果 | ✅ cron 到点自动跑,一次配置天天出报 |
| 送达 | ❌ 结果躺在聊天框里,得自己记得回去翻 | ✅ 直接投递进飞书 / 企业微信 / Telegram 群或你的私聊 |
| 口味记忆 | ❌ 每天重新描述一遍「我要什么样的日报」 | ✅ 要求写在任务提示词里,edit 一次长期生效 |
| 找料 | ❌ 你得自己先找好链接喂给它 | ✅ web_search 自己搜全网,web_fetch 自己抓正文 |
| 坚持成本 | ❌ 耗的是你每天的人肉半小时,三天就弃坑 | ✅ 耗的是几次搜索调用,Gateway 醒着就天天到岗 |
你现在的困境
- 每天睁眼先刷半小时资讯源,拼凑「昨晚 AI 圈发生了什么」,拼完还是怕漏
- 刷出来的 AI 信息流零散没条理,收藏夹一堆「稍后读」,真到写选题时热点已经凉了
- 试过让网页版 AI 帮忙汇总,每天开网页、贴提示词、复制结果,坚持不到一周
什么时候用这一招
当你需要:
- 每天固定时间收到某个领域的资讯摘要(AI 动态、竞品更新、行业政策)
- 信息来自公开网页和搜索,不需要登录态的私域内容
而且不想:
- 每天重复「开 AI → 敲提示词 → 复制结果」这套动作
- 为一份日报去搭爬虫 + 定时脚本 + 推送服务
💡 两种「盯」法,别选错
- 盯全网新闻(每天有什么新事)→ 本课的
web_search晨报,OpenClaw 资讯监控的最轻量形态 - 盯具体页面(那个页面变没变)→ 下一课 网页监控:页面一变就通知你 的条件触发器
需要登录才能看的内容,搜索抓不到,得用 浏览器控制 的已登录会话。
🎒 开始前的准备
- 走完了 定时任务 Automations:会建 cron 循环任务、认识
--announce --channel --to(本课直接拼装,不重讲 cron 基础) - Gateway 正在运行,
/model status能报出当前模型 - 一个搜索提供商:推荐国内可直连的 Kimi 或 MiniMax(需要 API key);一个 key 都没有也有免 key 备选,第 1 步讲
- 想收晨报的 IM 渠道已接入(场景实战 里接一个:飞书、企业微信、Telegram 都行;暂时不接也能学,晨报先落在运行历史里)
- 一杯水 ☕——约 12 分钟后,你的 IM 里会多一位每天准点上班的编辑
跟我做
第 1 步:给 Claw 配上搜索提供商(web_search)
为什么:晨报的事实全靠 web_search 抓回来。OpenClaw 的规则很直接:一个托管搜索提供商都没配时,web_search 会从工具列表里消失——Claw 想搜也没这个工具。
操作(三选一,效果一样):
- Control UI:Settings → Search 里选提供商、填凭据,点 Test search 试搜一条(提供商设置与测试需要 Gateway 管理员权限)
- CLI:
openclaw configure --section web - 环境变量:把提供商的 key 放进 Gateway 进程环境(网关安装放
~/.openclaw/.env),OpenClaw 按固定顺序自动探测:Brave → MiniMax → Gemini → Grok → Kimi → Perplexity → …,第一个就绪的胜出
国内用户推荐:
| 提供商 | 需要什么 | 说明 |
|---|---|---|
| Kimi(月之暗面) | KIMI_API_KEY 或 MOONSHOT_API_KEY | 走 Moonshot 搜索端点,配置时可选区(如 api.moonshot.cn) |
| MiniMax Search | MINIMAX_CODE_PLAN_KEY 等 | 结果可按区域过滤(global / cn) |
| DuckDuckGo | 免 key、免账号,但要先装 @openclaw/duckduckgo-plugin 插件 | 必须显式选择才会生效,永远不会被自动选中 |
你应该看到:Test search 返回结果和延迟;或者在聊天里直接说「搜一下过去一天 AI 领域有什么大新闻」,Claw 调用 web_search 并给出带来源链接的回复。
- 小检查:让 Claw 搜一条今天的新闻,回复里带来源链接
💡 模型和搜索提供商是两条线
跑晨报的模型(Qwen、DeepSeek、GLM……)决定「谁写稿」,搜索提供商(Kimi、Brave、MiniMax……)决定「去哪找料」,两者互不绑定、各配各的。
第 2 步:建 AI 每日资讯晨报任务(cron + 投递到 IM)
为什么:一条命令把「什么时候跑、跑什么、发到哪」三件事全定下来——这就是晨报的全部基础设施。
以官方文档的 Morning brief 示例为底,换成国内时区和中文提示词(Telegram 群为例):
openclaw automations create "0 7 * * *" \
"搜索过去 24 小时 AI 领域的重要新闻,汇总成一份中文晨报。用中文回复;链接、代码和产品名保持原样。" \
--name "Morning brief" \
--tz "Asia/Shanghai" \
--session isolated \
--announce \
--channel telegram \
--to "-1001234567890"逐个参数对号:
| 参数 | 作用 |
|---|---|
"0 7 * * *" | cron 表达式:每天 07:00 触发 |
| 提示词(位置参数二) | 任务要干什么。语言不会自动推断,中文规则必须写进提示词 |
--tz "Asia/Shanghai" | cron 求值时区;不写则用 Gateway 主机时区 |
--session isolated | 每次运行开全新会话,不带历史包袱 |
--announce --channel telegram --to "…" | 结果投递:Telegram 群用 -100… 数字 id |
投递目标按渠道对号:
| 收到晨报的地方 | 写法 |
|---|---|
| Telegram 群 | --to "-1001234567890"(论坛话题 -100…:topic:123) |
| Slack / Discord / Mattermost | --to "channel:<id>" 或 user:<id> |
| 飞书 / 企业微信 | 渠道接入与目标写法见 飞书接入、企业微信接入 |
| 你本人的私聊 | 不写 --to,改用 --delivery-target owner |
你应该看到:创建成功。add/create、list、show 都会预览解析后的投递路由——目的地解析不了当场就报,不用等到第二天早上。
- 小检查:
openclaw automations show <job-id>里投递路由解析正确
💡 这就是 OpenClaw 的独有价值
网页版 AI 做不到「到点自己跑、跑完自己送进群」。没有爬虫、没有 crontab、没有推送脚本——上面这一条命令,就是晨报的全部运维成本。
第 3 步:立即试跑一次,别等到明天早上
为什么:等到 7 点才发现投递配置错了,一天晨报就没了。强制运行立刻验证全链路。
openclaw automations run <job-id>
openclaw automations runs <job-id> --limit 5你应该看到:run 返回类似 { ok: true, enqueued: true, runId: "…" } 的输出;runs 里这次运行 status 为 ok、completionStatus 为 succeeded;几分钟后 IM 里出现第一份晨报。
没收到?按这个顺序查:
openclaw automations show <job-id>:投递路由解析对了吗runs记录里有没有投递错误——执行成功和投递成功是两回事,要分开看配了多个渠道的主机,isolated 任务必须显式给
--channel任务连续失败 10 次会被自动禁用,
openclaw automations list --all找回、修好后enable小检查:IM 里真的收到了第一份晨报
第 4 步:调教晨报的口味(提示词就是晨报的人设)
为什么:第一版晨报几乎一定不合口味——太长、太散、把你不在乎的写成头条。晨报的「人设」就是任务提示词,edit 换掉它,任务不用重建。
openclaw automations edit <job-id> --message "<把下面魔法 Prompt 里的完整版贴进来>"调教四要点:
- 时间窗口写死:「过去 24 小时」必须出现在提示词里,不然搜回来的可能是旧闻
- 中文规则写死:任务不会从渠道、地区或历史消息推断回复语言;中英混杂时明确「叙述用中文,技术名词保持原文」
- 输出结构写死:头条几条、每条带链接、末尾一句话总结——不写清楚,每天的每日摘要格式都会飘
- 长度写死:晨报是给早上眯着眼看的,给个字数上限
你应该看到:edit 成功后 show 里的 message 已更新;再手动 run 一次,新格式的晨报立刻送到。
- 小检查:连试两次,晨报格式稳定、长度可控
📋 魔法 Prompt
这一页的「Prompt」不是发给聊天窗口的,而是任务提示词——第 2 步命令里位置参数二的那个位置,或第 4 步 edit --message 换进去的完整版。角色、任务、输出规范、约束写清楚,晨报的口味就长期固定了。
📝 AI 领域每日晨报
预期效果:每天 7 点,IM 里收到一份结构固定、长度可控的中文 AI 晨报——头条、值得一看、一句话总结,每条带来源链接。
## 角色
你是科技资讯编辑,负责每天早上出一份 AI 领域晨报。
## 任务
用 web_search 搜索过去 24 小时 AI 领域的重要新闻,汇总成一份中文晨报。
## 输入信息
### 必填项
- 主题范围:【AI 模型发布、AI 产品更新、AI 开源项目】
### 选填项
- 特别关注:【想优先报道的公司、产品或技术方向?】
- 排除内容:【不想看的话题,如融资八卦、股票行情?】
## 输出规范
按以下结构输出,全文不超过 500 字:
- 📋 AI 晨报 ·【今天的日期】
- 头条(最多 3 条):每条一行标题——一句话说明 + 来源链接
- 值得一看(最多 5 条):每条一句话 + 来源链接
- 一句话总结:今天最值得关注的一件事
## 约束条件
- ✅ 每条新闻必须带来源链接
- ✅ 摘要用中文,技术名词、产品名、代码保持原文
- ❌ 不编造搜不到的新闻,搜不到就少写几条
- ❌ 不把超过 24 小时的旧闻写进晨报📋 多主题自定义晨报
预期效果:不只盯 AI——把所有你在意的主题列进去,每个主题单独一节,没动静的主题如实写「今日无更新」。
## 角色
你是私人情报官,负责每天汇总多个主题的新动态。
## 任务
用 web_search 逐个搜索主题列表里每个主题过去 24 小时的新消息,按主题分节汇总成中文晨报。
## 输入信息
### 必填项
- 主题列表:【一行一个主题,如:AI 模型动态 / 前端框架更新 / 竞品 X 的产品变更】
### 选填项
- 每主题条数上限:【默认 3 条?】
- 特别关注关键词:【某主题下想优先捕捉的关键词?】
## 输出规范
- 第一行:📋 晨报 ·【今天的日期】
- 按主题分节,每节最多 N 条,每条一句话 + 来源链接
- 某主题过去 24 小时没有值得报的更新,就写「今日无更新」
## 约束条件
- ✅ 每条带来源链接,摘要用中文
- ✅ 没有新消息的主题如实写「今日无更新」
- ❌ 不把一周前的旧闻当今天的新闻
- ❌ 不为了凑条数硬写低价值消息检查点 ✅
- 搜索提供商已配置:Test search 返回结果,聊天里让 Claw 搜新闻能带来源链接
openclaw automations list里有Morning brief,show的投递路由解析正确- 强制
run试跑成功,IM 里收到了第一份晨报 - 提示词里写死了「过去 24 小时」和中文回复规则
- 能说出每小时整点的循环任务为什么可能比整点晚几分钟(不是故障)
踩坑提醒
❌ 配了 key,Claw 还是说「我无法联网搜索」
三个最常见的原因,按命中率排查:
- 没配任何托管提供商:
web_search会从工具列表里消失——Claw 不是不想搜,是没有这个工具 - 选的是免 key 提供商(如 DuckDuckGo):它永远不会被自动探测选中,必须在配置里显式选择
- key 放错了地方:要放进 Gateway 进程读得到的环境(网关安装放
~/.openclaw/.env),不是你自己的 shell 配置
排查入口:Settings → Search 的 Test search——直接显示搜索结果,或错误与延迟。
❌ 晨报语言飘了,中英混杂
原因:定时任务不会从渠道、地区或历史消息推断回复语言——这是设计行为,不是 bug。
正确做法:把语言规则写进任务提示词。还是飘,就把规则写细:「叙述文字用中文,技术名词、产品名保持英文」。
❌ 晨报里混进了旧闻
原因:提示词没限定时间窗口,搜索结果里的旧闻被一并写了进去。
正确做法:提示词写死「过去 24 小时」,约束里加一条「不把超过 24 小时的旧闻写进晨报」。顺带澄清:web_search 按查询缓存 15 分钟(cacheTtlMinutes 默认 15)——每天跑一次的晨报撞不上缓存,不用担心缓存喂旧结果。
❌ 每小时整点的任务,「整点」过了几分钟才跑
原因:分钟为 0 且小时是通配的循环表达式(如 0 * * * *)会被自动错峰最多 5 分钟,削整点负载尖峰——官方设计,不是故障。
正确做法:要精确到点,建任务时加 --exact;要自定义错峰窗口用 --stagger 30s(仅 cron 调度)。注意:每天 0 7 * * * 这种小时写死的表达式不在错峰范围内——7 点就是 7 点。
进阶技巧(可选)
发到你的私聊,而不是群里。 不写 --to,改用 --delivery-target owner——到点解析明确识别的 owner 并私信,不猜「上次跟谁聊过」:
openclaw automations edit <job-id> --announce --channel telegram --delivery-target owner注意它不能与 --to、--thread-id、--webhook 同用。
加一层 X(推特)舆情。 提示词里加一句「再用 x_search 看看 X 上过去一天关于【主题】的讨论」。注意 x_search 走 xAI 计费:每 1000 次调用 $5,另加模型 token 费用——每天一次的晨报花不了几个钱,但心里要有数。
晨报 + 周报双班倒。 同一条生产线,把时间窗口拉到 7 天就是周报:
openclaw automations create "0 9 * * 1" \
"搜索过去 7 天 AI 领域的重要进展,汇总成一份中文周报。用中文回复;链接、代码和产品名保持原样。" \
--name "Weekly digest" \
--tz "Asia/Shanghai" \
--session isolated \
--announce \
--channel telegram \
--to "-1001234567890"搜索结果不够好,换提供商。 tools.web.search.provider 拼错(比如把 brave 打成 brvae)会在配置校验时直接报错,不会静默回退——改完跑一遍 openclaw config validate。
想盯具体页面而不是全网? 那是下一课的领域:条件触发器只在该变的变了时才唤醒 Claw。
本课小结
✅ 你现在能:
- 建一条 AI 每日资讯晨报生产线:cron 定节奏、
web_search找料、提示词定稿、--announce投递进 IM,一次配置天天出报 - 给 Claw 配好搜索提供商:国内推荐 Kimi / MiniMax,免 key 选 DuckDuckGo(必须显式选择)
- 用
run立即试跑、runs查执行与投递状态,分清「执行成功」和「投递成功」 - 用
edit --message调教晨报口味:时间窗口、中文规则、输出结构、长度上限
关键配置回顾:
| 配置 | 推荐值 | 说明 |
|---|---|---|
--tz | "Asia/Shanghai" | cron 求值时区,国内必写 |
--session | isolated | 晨报类报告任务首选,每次全新会话 |
--announce --channel --to | 按渠道对号 | Telegram 群 -100…;Slack/Discord channel:<id>;发本人用 --delivery-target owner |
| 搜索提供商 | Kimi / MiniMax(国内)、DuckDuckGo(免 key) | 没配托管提供商时 web_search 不出现 |
| 提示词三要素 | 时间窗口 + 中文规则 + 输出结构 | 语言不推断,规则必须写进提示词 |
下一课预告
晨报盯的是「全网每天有什么新事」;下一课 网页监控:页面一变就通知你 盯的是「那个页面变没变」——条件触发器,脚本说 fire 才唤醒 Claw。
你会学到:
- 条件触发器
--trigger-script:定时检查 + 变化检测,没变化不烧模型回合 - 触发脚本的状态记忆(上限 16 KB)怎么用来「记住上次的样子」
- 活动时段与让路策略,别让监控半夜吵你
- 和晨报共用的一套投递与排查命令