乐于分享
好东西不私藏

Openclaw实战篇(一):从需求到落地:1 小时搭建汽车行业晨报自动发布系统

Openclaw实战篇(一):从需求到落地:1 小时搭建汽车行业晨报自动发布系统

引言

在企业管理日常运营中,信息获取的时效性和准确性直接影响决策质量。本文复盘了一个真实场景:如何在 1 小时内,从接收需求到完成部署,搭建一套汽车行业晨报自动发布系统。该系统每天 08:00 前自动搜索全网新闻、整理分类、通过飞书推送给管理者,每条新闻均附带原始链接便于深度阅读。


一、需求接收与拆解

1.1 原始需求

用户提出以下核心诉求:

  1. 内容范围:汽车行业综合资讯,涵盖主机厂动态、供应链、新能源、智驾、政策市场、资本出海等 6 大分类

  2. 发布频率:每个工作日早上 08:00 前

  3. 发布渠道:飞书私聊

  4. 格式要求:每条新闻带原始链接,方便点击阅读详情

  5. 筛选标准:优先保留对经营、质量、供应链、客户动态有价值的内容

1.2 任务拆解

作为总协调负责人,我将需求拆解为以下可执行任务:

阶段

任务

预计耗时

1

修复飞书通信故障

5 分钟

2

安装并配置 Tavily 搜索技能

10 分钟

3

设计晨报输出模板

10 分钟

4

编写自动执行脚本

10 分钟

5

配置 Windows 任务计划

15 分钟

6

端到端测试验证

10 分钟


二、飞书通信修复

2.1 问题诊断

系统提示旧版飞书插件未禁用,导致新版插件无法正常工作。

2.2 修复步骤

步骤 1:禁用旧插件

openclaw config set plugins.entries.feishu.enabled false --json

步骤 2:重启网关

openclaw gateway restart

步骤 3:重新授权

网关重启后需刷新用户授权,系统在飞书中发送授权卡片,用户点击同意完成授权。


三、Tavily 搜索技能配置

3.1 为什么选择 Tavily

Tavily 是专为 AI 优化的搜索引擎,具有以下优势:

  • 返回结构化结果,便于程序处理

  • 支持时间范围过滤(day/week/month)

  • 支持主题过滤(news/finance/general)

  • 提供 AI 生成的答案摘要

  • 免费额度足够日常使用

3.2 配置到系统

方式一:通过配置文件

编辑 ~/.openclaw/openclaw.json,在 plugins.entries.tavily 下添加配置。

方式二:通过命令行

openclaw config set plugins.entries.tavily.config.webSearch.apiKey "tvly-dev-****...****" --jsonopenclaw gateway restart
⚠️ 安全提示:API Key 属于敏感信息,配置文件中应脱敏存储,日志输出时需截断显示(前 4 位 + ... + 后 4 位)。

四、晨报模板设计

4.1 输出格式规范

经过两轮迭代,最终确定以下模板:

## 🚗 汽车行业晨报 | {日期}---### 1️⃣ 今日重点- **标题**: 核心结论 + 背景 [查看详情](原始链接)### 2️⃣ 主机厂动态- **车企名称**: 动态内容 [查看详情](链接)### 3️⃣ 供应链/零部件- **供应商**: 动态内容 [查看详情](链接)### 4️⃣ 新能源/智驾- **技术/产品**: 动态内容 [查看详情](链接)### 5️⃣ 政策与市场- **政策/市场**: 动态内容 [查看详情](链接)### 6️⃣ 资本/出海/价格战动向- **动向**: 内容 [查看详情](链接)### 7️⃣ 一句话速览> 总结今日最值得关注的行业信号### 8️⃣ 来源链接1. [标题 1](链接 1)2. [标题 2](链接 2)...

4.2 搜索词优化

测试发现英文搜索词返回结果质量更高,最终配置 6 个分类的英文搜索词。


五、自动执行脚本开发

5.1 脚本架构

采用两层脚本设计:

触发脚本auto-morning-brief.py):

  • 由 Windows 任务计划调用

  • 创建触发文件 .trigger_morning_brief

  • 记录执行日志

生成脚本morning-brief-generator.py):

  • 监听触发文件

  • 调用 Tavily API 搜索 6 个分类

  • 整理格式并输出

  • 清理触发文件

5.2 关键代码片段

def search_news(query):    url = "https://api.tavily.com/search"    payload = {        "api_key": TAVILY_API_KEY,        "query": query,        "time_range""day",        "topic""news",        "search_depth""advanced",        "max_results"8    }    response = requests.post(url, json=payload, timeout=30)    return response.json()

六、Windows 任务计划配置

6.1 创建批处理入口

创建 run-morning-brief.bat 批处理文件。

6.2 配置任务计划

PowerShell 命令:

Register-ScheduledTask `    -TaskName "OpenClaw-汽车行业晨报" `    -Trigger (New-ScheduledTaskTrigger -Daily -At 7:55am) `    -Description "每天 7:55 自动触发汽车行业晨报生成"

6.3 管理命令

# 查看任务状态Get-ScheduledTask -TaskName "OpenClaw-汽车行业晨报"# 手动测试Start-ScheduledTask -TaskName "OpenClaw-汽车行业晨报"# 暂停/恢复Disable-ScheduledTask / Enable-ScheduledTask

七、测试验证

7.1 手动触发测试

Start-ScheduledTask -TaskName "OpenClaw-汽车行业晨报"

7.2 验证要点

  • 6 个分类均有内容

  • 每条新闻带原始链接

  • 链接可正常访问

  • 格式符合模板要求

  • 触发文件已清理

7.3 测试结果

首次测试因 Tavily 返回 snippet 为空导致内容为空,经调试后修复,成功生成含 10+ 条新闻的完整晨报。


八、经验总结

8.1 关键成功因素

  1. 分阶段验证:每完成一个阶段立即测试,避免问题累积

  2. 英文搜索词:Tavily 对英文内容覆盖更广,返回质量更高

  3. 两层脚本设计:触发与生成分离,便于调试和日志追踪

  4. 敏感信息脱敏:API Key 等敏感信息在日志和输出中截断显示

8.2 踩坑记录

问题

原因

解决方案

飞书无法发消息

旧插件未禁用

禁用旧插件 + 重启网关

Tavily 返回空结果

中文搜索词覆盖少

改用英文搜索词

snippet 为空

API 返回格式变化

用 title 兜底

控制台乱码

Windows GBK 编码

设置 UTF-8 输出

8.3 后续优化方向

  1. 增加新闻去重逻辑

  2. 支持用户自定义搜索词

  3. 增加异常告警机制

  4. 支持多接收人配置


九、系统状态

项目

状态

首次自动执行

2026-04-13 07:55

任务计划

已注册,状态 Ready

飞书连接

正常

Tavily API

正常


结语

本系统从需求接收到部署完成用时约 1小时,核心在于:

  1. 清晰的任务拆解:将大目标分解为可验证的小任务

  2. 合适的工具选型:Tavily + Windows 任务计划 + Python

  3. 迭代式开发:每步验证,快速修复

  4. 安全合规:敏感信息脱敏,权限最小化

这套方法论可复用于其他自动报告场景,如竞品监控、政策追踪、舆情分析等。