OpenClaw+GLM-4.7-Flash:自动化周报生成系统实战
OpenClaw+GLM-4.7-Flash:自动化周报生成系统实战
1. 为什么需要自动化周报系统
每周五下午三点,我的日历总会准时弹出提醒:"该写周报了"。这个看似简单的任务却让我头疼不已——需要翻遍一周的会议记录、Git提交、工作日志,再把碎片信息整合成领导要求的"成果+思考+计划"三段式结构。整个过程通常要消耗1-2小时,直到我尝试用OpenClaw+GLM-4.7-Flash搭建自动化流水线。
这个系统的核心价值在于:将重复的信息整理工作交给AI。现在我的周报生成流程从手动整理的120分钟缩短到5分钟复核时间,准确率却提高了30%(通过对比历史周报关键词覆盖率得出)。更重要的是,系统会自动保留原始工作日志作为附件,避免了人工整理时的信息遗漏。
2. 系统架构与核心组件
2.1 技术选型思路
选择OpenClaw而非传统RPA工具主要考虑三个因素:
- 隐私性:周报涉及项目细节,需要本地处理不经过第三方服务器
- 扩展性:后期可能增加飞书日程同步、Git仓库分析等模块
- 自然语言交互:可以直接用"把周三的会议要点加入周报"这样的指令调整内容
GLM-4.7-Flash作为生成引擎的优势也很明显:
- 长文本处理:支持16K上下文,能同时分析一周的所有日志
- 结构化输出:能严格遵循Markdown模板生成内容
- 本地部署:通过ollama部署在开发机,避免API调用延迟
2.2 数据流设计
系统的工作流程分为四个阶段:
- 数据采集层:监控指定目录的日志文件(我使用
~/Documents/worklog/存放每日记录) - 预处理层:用Python脚本清洗数据(去除重复项、合并同类项)
- 生成层:GLM-4.7-Flash分析日志并生成周报草稿
- 后处理层:自动添加公司要求的固定格式头尾
关键目录结构如下:
~/.openclaw/
├── skills/
│ └── weekly-report/
│ ├── templates/ # 存放不同部门的周报模板
│ ├── history/ # 历史周报存档
│ └── config.json # 个性化配置
3. 关键实现步骤
3.1 环境准备与模型部署
首先在Ubuntu开发机上部署ollama服务:
curl -fsSL https://ollama.ai/install.sh | sh
ollama pull glm-4.7-flash
ollama serve & # 后台运行服务
测试模型是否正常工作:
curl http://localhost:11434/api/generate -d '{
"model": "glm-4.7-flash",
"prompt": "用三句话介绍GLM模型"
}'
3.2 OpenClaw技能开发
创建自定义skill的目录结构:
mkdir -p ~/.openclaw/skills/weekly-report/{templates,history}
cd ~/.openclaw/skills/weekly-report
核心配置文件config.json示例:
{
"log_path": "~/Documents/worklog/",
"output_path": "~/Downloads/",
"default_template": "engineering.md",
"triggers": [
{
"type": "cron",
"value": "0 15 * * 5" // 每周五下午3点触发
}
]
}
3.3 日志预处理脚本
在skill目录下创建preprocess.py:
import glob
import json
from datetime import datetime
def parse_logs(log_dir):
entries = []
for file in glob.glob(f"{log_dir}/*.md"):
with open(file) as f:
date = datetime.strptime(file.split("/")[-1][:10], "%Y-%m-%d")
entries.append({
"date": date.strftime("%m/%d"),
"content": f.read()
})
return sorted(entries, key=lambda x: x["date"])
if __name__ == "__main__":
logs = parse_logs("~/Documents/worklog/")
with open("input.json", "w") as f:
json.dump(logs, f)
3.4 提示词工程
模板文件templates/engineering.md包含动态占位符:
# {week}周工作汇报({name})
## 核心成果
{{#each achievements}}
- {{{this}}}{{/each}}
## 问题与思考
{{#each reflections}}
- {{{this}}}{{/each}}
## 下周计划
{{#each plans}}
- {{{this}}}{{/each}}
对应的提示词设计:
你是一位资深工程师,需要根据每日工作日志生成专业周报。请:
1. 从日志中提取3-5项最重要的技术成果
2. 总结2-3个有价值的反思点
3. 列出下周的3个明确目标
要求:
- 使用技术术语但避免晦涩
- 成果要量化(如"优化接口响应时间从320ms降至190ms")
- 反思需包含改进方案
- 计划要具体可执行
原始日志:
{{logs}}
4. 系统集成与测试
4.1 OpenClaw任务配置
在~/.openclaw/openclaw.json中添加模型配置:
{
"models": {
"providers": {
"local-ollama": {
"baseUrl": "http://localhost:11434",
"api": "ollama",
"models": [
{
"id": "glm-4.7-flash",
"name": "Local GLM"
}
]
}
}
}
}
创建自动化任务脚本weekly-report.sh:
#!/bin/bash
cd ~/.openclaw/skills/weekly-report
python preprocess.py
openclaw task run --model glm-4.7-flash --prompt-file prompt.txt --input input.json --output output.md
pandoc output.md -o weekly-report.docx
4.2 飞书机器人集成
配置飞书webhook通知生成结果:
{
"channels": {
"feishu": {
"webhook": "https://open.feishu.cn/open-apis/bot/v2/hook/xxx",
"events": {
"task_complete": true
}
}
}
}
5. 实际效果与优化经验
5.1 生成示例对比
原始日志片段:
7/15 与后端讨论API缓存方案
7/16 实现Redis缓存层 QPS从120提升到210
7/17 发现缓存穿透问题 添加空值缓存
AI生成内容:
## 核心成果
- 实现Redis二级缓存架构,使查询接口QPS从120提升至210(提升75%)
- 通过布隆过滤器+空值缓存解决缓存穿透问题
## 问题与思考
- 当前缓存过期策略可能导致雪崩,建议采用阶梯过期时间
- API文档未及时更新,已创建自动化文档生成任务
## 下周计划
- 实施缓存分区方案应对数据增长
- 完成Swagger文档自动化部署
- 调研Redis集群方案
5.2 踩坑记录
- 时间格式问题:初期日志文件名使用
MM-DD格式导致排序错误,改为YYYY-MM-DD后解决 - 模型温度值:temperature=0.7时生成内容不稳定,调整为0.3后保持合理创造性
- 飞书消息限制:原始Markdown表格被截断,改为图片附件发送
5.3 持续改进方向
目前系统已经稳定运行8周,每周为我节省至少6小时。最近新增了两个实用功能:
- 自动关联Git提交:通过解析commit message补充技术细节
- 多版本生成:同时产出给主管和技术团队的差异化版本
最大的收获不是时间节省,而是周报内容质量的系统性提升。AI会客观提取被忽视的小成果,也能发现日志中隐藏的共性问题——这种"外部视角"恰恰是自我总结时最缺乏的。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐




所有评论(0)