用Coze+飞书机器人实现每日自动生成技术文章推送

0 阅读5分钟

作为开发者想要坚持日常技术输出、团队需要固定技术分享,但总没人手和时间?我们可以搭建一个自动化工具:每天自动生成一篇技术文章,直接推送到飞书群,全程无需人工干预,既可以巩固个人知识点,也能同步团队学习。

技术文章自动推送系统示意图

前言

为什么需要自动生成文章并推送飞书

这个自动化方案可以解决以下常见痛点:

  • 想坚持内容输出,但总是挤不出时间创作
  • 团队需要每日技术分享,但没人主动轮流承担
  • 想每天固定学习一个新技术点,但很难坚持

只需要提前定好主题方向,大模型会自动生成结构清晰的技术文章,再通过飞书机器人推送到指定群聊,全程不需要人工干预,每天定时自动执行。

本文能学到什么

  • 如何用Coze(扣子)搭建大模型生成工作流
  • 如何配置飞书自定义机器人发送富文本消息
  • 如何用GitHub Actions实现免费的定时任务触发
  • 完整的异常处理、排障思路和扩展优化方案

准备工作

账号和权限准备

提前准备以下账号:

  1. Coze账号:字节跳动扣子平台,可免费使用,地址:coze.cn,支持GPT、豆包等多种大模型
  2. 飞书账号:需要是目标飞书群组的管理员,才有添加自定义机器人的权限
  3. GitHub账号:用来实现免费定时触发,本地部署则不需要

依赖环境安装

本文使用Python开发,需要安装核心依赖:

pip install requests python-dotenv pycryptodome
  • requests:调用Coze API和飞书API
  • python-dotenv:加载本地环境变量,保护密钥
  • pycryptodome:飞书机器人签名校验依赖

密钥配置与安全存储

密钥禁止硬编码,推荐使用环境变量存储:

  1. 本地开发新建.env文件存储密钥,并将.env加入.gitignore避免上传:

    COZE_API_KEY=你的coze api密钥 COZE_WORKFLOW_ID=你的coze工作流id FEISHU_WEBHOOK_URL=你的飞书机器人webhook地址 FEISHU_SECRET=你的飞书签名密钥

  2. 使用GitHub Actions触发时,在项目的Settings -> Secrets and variables -> Actions中添加对应密钥即可,不会泄露。

密钥安全存储示意图

核心流程整体设计

需求拆解

整个需求拆分为三个核心步骤:

  1. 自动生成:调用Coze工作流,让大模型按照要求生成技术文章
  2. 格式整理:把大模型返回的Markdown转换为飞书支持的富文本格式
  3. 推送飞书:通过飞书机器人Webhook把整理好的文章推送到指定群聊

整体流程架构梳理

flowchart LR
A[定时触发] --> B[调用Coze工作流API]
B --> C{生成成功?}
C -->|是| D[格式转换: Markdown→飞书富文本]
D --> E[调用飞书Webhook推送]
E --> F[结束记录日志]
C -->|否| G[重试/记录错误日志]

Coze自动生成文章配置细节

Coze是字节推出的AI工作流编排平台,无需自行搭建大模型,简单拖拽即可配置生成逻辑,使用非常方便。

创建Coze工作流

  1. 登录Coze后台,点击「新建」→「工作流」
  2. 拖拽「大语言模型」节点,连接开始和结束节点,最终结构为:开始 → LLM调用 → 结束

配置大语言模型生成prompt

prompt是生成合格文章的核心,需要明确告诉大模型生成要求和格式。以下是每日生成前端技术文章的示例:

你是一个资深前端技术专家,请每天给前端开发团队分享一篇前端技术文章,要求如下:
1. 今天的日期是{{date}},请选择一个前端热门知识点,主题不要重复,深度适合中高级前端开发者
2. 文章结构必须包含:今日分享标题、知识点导读、原理讲解、代码示例、总结拓展五个部分
3. 语言通俗易懂,避免太官方的表述,代码示例必须正确可运行
4. 整体长度控制在1000字以内,不要太长
5. 输出格式使用标准Markdown

Coze支持变量传入,代码调用时可以动态传入当前日期,保证每次生成主题不重复。

文章结构化输出配置

除了prompt中写明结构要求,还可以在工作流输出配置中,要求大模型按照固定JSON结构返回,方便后续解析: 示例输出结构:

{
  "title": "文章标题",
  "content": "文章正文Markdown",
  "topic": "知识点分类"
}

生成结果重试机制

为避免大模型生成失败,可在代码层面添加重试机制:

def generate_article(retry_times=3):
    for i in range(retry_times):
        try:

调用coze api

response = requests.post(...) data = response.json()

如果生成成功直接返回

if data.get('code') == 0: return data.get('data')

失败打印日志后重试

print(f"第{i+1}次生成失败: {data.get('msg')}") except Exception as e: print(f"生成请求异常: {e}") time.sleep(2) return None

如果连续三次生成失败,会发送错误提醒到飞书,方便及时排查问题。

飞书机器人推送配置细节

创建飞书自定义机器人

  • 打开目标飞书群,点击群设置 → 机器人 → 添加机器人
  • 选择「自定义机器人」,点击添加,设置机器人名称和头像
  • 安全设置选择「签名校验」,不要选择IP限制,支持GitHub Actions调用

获取密钥信息

创建完成后,会直接得到Webhook地址签名密钥,将两个信息保存到环境变量即可。

飞书富文本消息格式适配

使用富文本格式(post)可以很好的展示标题、段落、代码块,适配简单。飞书富文本基础结构如下:

message = {

"msg_type": "post",

"content": {

"post":

关键亮点:

🎯 流程清晰:大纲→文章→润色→推送

🤖 智能生成:使用 LLM 自动生成高质量文章

📝 格式规范:标准 Markdown,代码高亮

🚀 自动推送:一键发送到飞书

✅ 测试通过:完整验证工作流稳定性。