OpenClaw定时任务配置:Phi-3-mini自动生成日报并邮件发送
OpenClaw定时任务配置Phi-3-mini自动生成日报并邮件发送1. 为什么需要自动化日报系统每天早上9点打开邮箱机械地复制粘贴昨日工作内容调整格式后点击发送——这个场景我持续了整整三个月。直到某个加班的深夜当我第27次修改日报模板时突然意识到这种重复劳动不正是AI最擅长解决的问题吗经过两周的摸索我成功用OpenClawPhi-3-mini搭建了一套全自动日报生成系统。现在每天下午6点系统会自动扫描我的代码提交记录和会议日历调用Phi-3-mini生成结构化日报通过SMTP发送给直属领导和项目组将日报存档到指定Notion数据库整个过程完全无人值守最让我惊喜的是模型甚至能根据当日工作强度自动调整日报的详略程度。下面分享这个7*24小时自动化方案的实现细节。2. 基础环境准备2.1 模型部署选择我选择了Phi-3-mini-128k-instruct镜像主要考虑三点长文本处理128k上下文足够容纳全天工作记录指令跟随instruct版本对格式化输出响应更好资源友好在16GB内存的MacBook Pro上就能流畅运行部署采用vllmchainlit方案启动命令如下python -m vllm.entrypoints.api_server \ --model microsoft/Phi-3-mini-128k-instruct \ --tensor-parallel-size 1chainlit前端默认运行在8000端口可以通过http://localhost:8000测试模型响应。2.2 OpenClaw核心配置在~/.openclaw/openclaw.json中配置模型端点{ models: { providers: { phi3-local: { baseUrl: http://localhost:8000/v1, api: openai-completions, models: [ { id: phi-3-mini, name: Local Phi-3 Mini } ] } } } }验证连接是否成功openclaw models list应该能看到刚添加的phi-3-mini模型状态为active。3. 日报生成流水线设计3.1 数据采集模块创建daily_report/data_collector.py包含三个关键数据源# 从Git仓库获取代码提交记录 def get_git_activities(): return subprocess.check_output([ git, log, --since, 1.day.ago, --prettyformat:%h %s ]).decode(utf-8) # 从日历应用读取会议记录MacOS特定实现 def get_calendar_events(): events subprocess.check_output([ icalbuddy, -ea, eventsFrom:yesterday, to:today ]) return parse_ical_output(events) # 从时间追踪工具获取数据 def get_time_tracking(): with open(/Users/me/toggl_report.json) as f: return json.load(f)3.2 提示词工程经过多次迭代最终确定的日报生成prompt模板你是一位专业的技术日报撰写助手。请根据以下信息生成结构化日报 # 工作内容 {git_activities} # 会议记录 {calendar_events} # 时间分配 {time_tracking} 要求 1. 按[项目名称]分类工作内容 2. 重要会议需总结action items 3. 时间分配用百分比呈现 4. 结尾添加明日计划建议 5. 输出Markdown格式这个模板的特别之处在于使用明确的章节标识符要求模型自主分类信息保留原始数据中的关键术语指定输出格式约束3.3 邮件发送实现配置SMTP信息到环境变量export SMTP_SERVERsmtp.office365.com export SMTP_PORT587 export EMAIL_USERmecompany.com export EMAIL_PASSWORDyour_password邮件发送脚本核心逻辑def send_email(content): msg MIMEMultipart() msg[From] os.getenv(EMAIL_USER) msg[To] managercompany.com msg[Subject] f日报 - {datetime.today().strftime(%Y/%m/%d)} part MIMEText(content, markdown) msg.attach(part) with smtplib.SMTP(os.getenv(SMTP_SERVER), os.getenv(SMTP_PORT)) as server: server.starttls() server.login(os.getenv(EMAIL_USER), os.getenv(EMAIL_PASSWORD)) server.send_message(msg)4. 定时任务集成4.1 Crontab配置使用crontab -e添加以下规则# 每天18:00生成并发送日报 0 18 * * * /usr/local/bin/openclaw exec /path/to/daily_report/main.py关键注意事项使用绝对路径指向脚本和openclaw二进制文件在测试阶段可以先设置为*/5 * * * *每5分钟运行一次日志重定向到文件方便调试 /tmp/daily_report.log 214.2 OpenClaw任务封装main.py的完整工作流def main(): # 1. 数据采集 git_data get_git_activities() calendar_data get_calendar_events() time_data get_time_tracking() # 2. 调用模型生成 prompt build_prompt(git_data, calendar_data, time_data) report generate_with_openclaw(prompt) # 3. 发送邮件 send_email(report) # 4. 存档到Notion save_to_notion(report) if __name__ __main__: main()5. 实际运行效果与优化系统运行一个月后观察到几个有趣现象内容质量迭代初期模型常混淆会议优先级通过在前置步骤添加重要性评分筛选机制后改善异常处理增强当Git记录为空时原先会生成无意义的日报现在会触发特殊处理流程个性化演进模型逐渐学会模仿我的写作风格领导反馈读起来就像你亲自写的性能数据在我的M1 Max设备上平均生成耗时12秒最长上下文处理89k tokens某次全天会议记录邮件投递成功率100%配置了重试机制6. 安全注意事项在实现过程中总结出几个关键安全实践凭证管理使用pass密码管理器动态注入SMTP密码而非硬编码权限控制OpenClaw仅被授权访问特定目录~/work_logs审计日志所有生成的日报都带有数字签名并存入加密数据库人工复核设置每周五上午手动检查机制防止沉默失败获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。