1. 项目背景:当日报遇上通勤时间
那天晚上6:20分,我正挤在晚高峰的地铁里,手机突然连续震动——是主管在飞书群里@所有人催日报。车厢摇晃得连手机都拿不稳,更别说打字回复了。就在这一刻,我决定用技术手段解决这个当代打工人的经典痛点。
经过两周的折腾,终于用OpenClaw+飞书搞出了这个"摸鱼神器"。现在每天18:00自动生成日报,18:05准时发送到工作群,连周报都能自动汇总。最妙的是,整个过程完全合规——系统只是帮我整理了Git提交记录、JIRA任务状态和会议纪要,生成的内容比我自己写的还专业。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心方案设计
2.1 技术选型逻辑
选择OpenClaw而不是更常见的LangChain或AutoGPT,主要看中三个特性:
- 轻量级TUI界面:在本地终端就能完成所有调试,不需要额外部署Web服务
- 原生飞书Skill支持:官方文档里有现成的飞书机器人对接案例
- 模块化设计:可以单独替换LLM引擎(我后来换成了DeepSeek的32k长上下文模型)
整套系统的工作流是这样的:
code复制[Git/JIRA/日历] → [OpenClaw数据抓取] → [LLM分析提炼] → [飞书机器人推送]
2.2 关键组件拆解
2.2.1 数据采集层
用OpenClaw的插件系统实现了三个数据源对接:
- Git仓库监控:通过CLI命令抓取当天commit记录
bash复制git log --since="8am" --pretty=format:"%h - %an, %ar : %s"
- JIRA任务状态:调用REST API获取分配给自己的任务
- 日历会议纪要:从飞书日程中提取参会人员和讨论要点
2.2.2 智能处理层
这里有个重要技巧:不要直接让AI编造内容。我的prompt模板分为三步:
- 事实提取:"从以下代码提交记录中列出涉及的功能模块"
- 进度分析:"根据JIRA状态变化计算今日工作量饱和度"
- 价值包装:"用互联网行业术语总结技术贡献"
2.2.3 交付层
飞书机器人的消息卡片需要特殊处理:
- 使用「多维表格」格式呈现数据
- 关键指标用环形图可视化(飞书文档的隐藏功能)
- 设置「仅主管可见」的扩展详情页
3. 详细实现步骤
3.1 环境准备
需要特别注意Node.js版本要求:
bash复制nvm install 22.22.3 # OpenClaw的黄金兼容版本
npm install -g @openclaw/cli
3.2 飞书应用创建
- 在开发者后台创建「自建应用」
- 开通以下权限:
- 获取群组消息
- 发送富文本消息
- 读取日程信息
- 记录
app_id和app_secret
3.3 OpenClaw配置
配置文件~/.openclaw/config.yaml关键项:
yaml复制feishu:
app_id: xxxxxxx
app_secret: xxxxxxx
encrypt_key: xxxxxxx
llm:
provider: deepseek
api_key: sk-xxxx
context_length: 32000 # 处理长文档必备
3.4 日报生成逻辑
核心代码在daily_report.js中:
javascript复制async function generateReport() {
const commits = await gitScraper.getTodayCommits();
const jiraTasks = await jiraClient.getMyTasks();
const meetings = await calendar.getEvents();
const report = await openclaw.generate({
template: 'daily_summary',
data: { commits, jiraTasks, meetings }
});
await feishuBot.sendToGroup(report);
}
4. 避坑指南
4.1 权限问题处理
- 错误现象:飞书API返回"无权限"
- 解决方案:在开发者后台「权限管理」中:
- 开启「读取用户日程」
- 申请「发送群消息」权限
- 在「安全设置」添加服务器IP白名单
4.2 内容格式化技巧
遇到Markdown转换问题时的处理方案:
- 飞书卡片消息最多支持5级标题
- 表格列宽建议用百分比而非固定像素
- 环形图数据需要预处理成这种格式:
json复制{
"type": "ring_chart",
"data": [
{ "name": "开发", "value": 45 },
{ "name": "会议", "value": 30 }
]
}
4.3 性能优化
当日报内容超过5000字时:
- 启用OpenClaw的分块处理模式
- 设置摘要生成策略:
yaml复制summarize:
enabled: true
max_chunk_size: 2000
strategy: hierarchical
5. 进阶玩法
5.1 自动周报生成
在周五下午自动触发周报流程:
- 聚合5天的日报数据
- 使用LLM提取关键里程碑
- 生成PPT格式摘要(飞书文档API支持)
5.2 智能应答模式
当被@询问进度时,机器人可以:
- 解析问题意图(使用意图识别模型)
- 从知识库提取最新数据
- 生成人类风格的回复:
"这个需求后端已经联调完成,前端正在走发布流程,预计明天上午可以上线"
5.3 数据驾驶舱
用飞书多维表格搭建可视化看板:
- 每日代码提交热力图
- 任务完成率趋势图
- 会议耗时占比分析
这套系统上线三个月后,我们组里已经有8个同事接入了。最意外的收获是——因为日报内容太过规范专业,反而让领导觉得我们组特别靠谱。果然在职场中,会展示比会做事更重要。
