Skip to content
🎯 场景实战第 6 / 12 节

每日晨报:定时抓资讯发到你的 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? ​

能力网页版 AIOpenClaw 晨报任务
出报方式❌ 每天自己开网页、敲提示词、复制结果✅ 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 里会多一位每天准点上班的编辑

跟我做 ​

为什么:晨报的事实全靠 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 SearchMINIMAX_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 群为例):

bash
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 点才发现投递配置错了,一天晨报就没了。强制运行立刻验证全链路。

bash
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 换掉它,任务不用重建。

bash
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 并私信,不猜「上次跟谁聊过」:

bash
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 天就是周报:

bash
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 求值时区,国内必写
--sessionisolated晨报类报告任务首选,每次全新会话
--announce --channel --to按渠道对号Telegram 群 -100…;Slack/Discord channel:<id>;发本人用 --delivery-target owner
搜索提供商Kimi / MiniMax(国内)、DuckDuckGo(免 key)没配托管提供商时 web_search 不出现
提示词三要素时间窗口 + 中文规则 + 输出结构语言不推断,规则必须写进提示词

下一课预告 ​

晨报盯的是「全网每天有什么新事」;下一课 网页监控:页面一变就通知你 盯的是「那个页面变没变」——条件触发器,脚本说 fire 才唤醒 Claw。

你会学到:

  • 条件触发器 --trigger-script:定时检查 + 变化检测,没变化不烧模型回合
  • 触发脚本的状态记忆(上限 16 KB)怎么用来「记住上次的样子」
  • 活动时段与让路策略,别让监控半夜吵你
  • 和晨报共用的一套投递与排查命令
搞懂AI关于我们怎么写隐私说明

独立的第三方教程,与文中提到的任何产品及其公司没有隶属或合作关系;产品名称和商标归各自所有者。价格和政策以官方页面为准。