OpenClaw定时任务管理:Phi-3-vision-128k-instruct每日早报自动生成系统
OpenClaw定时任务管理Phi-3-vision-128k-instruct每日早报自动生成系统1. 为什么需要自动化早报系统每天早上打开电脑第一件事就是刷新闻网站——这个习惯我坚持了三年直到发现两个致命问题一是时间黑洞经常从科技板块跳到社会新闻半小时就没了二是信息过载真正需要关注的行业动态反而被淹没在标题党里。上个月部署Phi-3-vision-128k-instruct模型时突然想到既然这个多模态模型能理解图文内容配合OpenClaw的自动化能力能不能做个只给我看需要知道的信息的早报系统经过两周折腾终于实现了完全本地运行的自动化流程每天7点自动抓取指定网站→截图→生成摘要→推送到飞书。整个过程不需要任何人工干预甚至出差时用手机也能收到结构化简报。2. 系统架构与核心组件2.1 技术选型思路这个系统的核心在于精准抓取和智能摘要的平衡。最初尝试过RSS订阅文本模型方案但发现三大缺陷主流新闻站点的RSS内容严重缩水纯文本丢失了排版权重信息比如头版头条的视觉优先级需要维护复杂的XPath规则最终方案采用视觉驱动路线OpenClaw负责浏览器操控、截图保存、邮件/飞书推送Phi-3-vision-128k-instruct解析截图并生成摘要Cron协调整个流程的时间调度2.2 关键配置清单在~/.openclaw/openclaw.json中需要重点配置的模块{ models: { providers: { phi3-vision: { baseUrl: http://localhost:8000/v1, api: openai-completions, models: [{ id: phi-3-vision-128k-instruct, capabilities: [vision] }] } } }, skills: { morning-briefing: { sites: [https://news.example.com, https://tech.example.com], viewport: {width: 1920, height: 1080}, clip: {x: 0, y: 0, width: 800, height: 1800} } } }特别注意clip参数经过实测截取页面左侧800像素宽度能避开大部分广告栏同时保留主要内容区。3. 实现步骤详解3.1 环境准备阶段首先确保基础服务就位Phi-3-vision-128k-instruct模型通过vllm运行在本地8000端口安装OpenClaw的浏览器控制插件clawhub install browser-controller openclaw plugins install official/screenshot飞书通道配置完成如未配置可先用SMTP邮件方案3.2 核心自动化脚本在OpenClaw的skills目录创建morning_briefing.jsconst { chromium } require(openclaw-browser); const fs require(fs); const path require(path); module.exports async (task, { models, notify }) { const screenshotDir path.join(process.env.HOME, .openclaw/screenshots); if (!fs.existsSync(screenshotDir)) fs.mkdirSync(screenshotDir); const browser await chromium.launch(); const dateStr new Date().toISOString().split(T)[0]; // 并行抓取多个网站 const results await Promise.all(task.config.sites.map(async (url) { const page await browser.newPage(); await page.setViewportSize(task.config.viewport); await page.goto(url, { waitUntil: networkidle }); const domain new URL(url).hostname.replace(www., ); const screenshotPath path.join(screenshotDir, ${dateStr}_${domain}.png); await page.screenshot({ path: screenshotPath, clip: task.config.clip }); // 调用视觉模型生成摘要 const visionResp await models.phi3Vision.chat.completions.create({ model: phi-3-vision-128k-instruct, messages: [{ role: user, content: [ { type: text, text: 请用中文总结这张新闻首页截图的主要内容按重要性列出3-5条不要包含广告或无关信息 }, { type: image_url, image_url: { url: file://${screenshotPath} } } ] }], max_tokens: 1024 }); return { source: domain, summary: visionResp.choices[0].message.content, screenshot: screenshotPath }; })); await browser.close(); // 汇总生成最终简报 const finalReport # ${dateStr} 每日早报\n\n results.map(r ## ${r.source}\n${r.summary}).join(\n\n); await notify.feishu.sendMarkdown(每日早报 ${dateStr}, finalReport); return { status: success, reportPath: /screenshots/${dateStr}_report.md }; };3.3 Cron定时任务配置在系统crontab中添加注意使用绝对路径0 7 * * * /usr/local/bin/openclaw task run morning-briefing --config ~/.openclaw/skills/morning-briefing.json避坑指南浏览器实例必须用chromium.launch()而非puppeteer.launch()否则会与OpenClaw的浏览器管理冲突模型响应超时建议在代码中显式设置timeout参数默认的120秒可能不够飞书消息长度限制为2048字符超长内容需要自动分片4. 效果优化实践4.1 摘要质量提升技巧经过两周迭代发现这些prompt优化最有效视觉焦点引导在prompt中明确忽略右下角浮窗广告领域词典注入添加请优先关注AI、云计算、芯片等科技领域动态格式约束要求每条摘要前加•符号不超过140字最新版prompt示例作为专业信息顾问请分析该新闻首页截图要求 1. 完全忽略广告、推荐位、热点排行等非编辑内容 2. 重点提取科技、金融、政策领域信息 3. 输出格式 • [权重] 标题 (关键实体) 简要说明不超过3句话 4. 使用中文输出保持专业但易懂的文风4.2 资源占用监控在MacBook Pro M1上运行的资源消耗浏览器实例每个标签页约180MB内存模型推理处理单张截图平均耗时22秒峰值负载同时处理5个网站时CPU利用率达75%建议方案# 在cron任务前添加资源限制 0 7 * * * ulimit -Sv 2000000 /usr/local/bin/openclaw task run...5. 扩展应用场景这套框架稍作修改就能支持其他定时任务5.1 竞品监控日报修改抓取目标为竞品官网添加diff分析// 对比昨日与今日截图 const diff await pixelmatch(img1, img2, null, 800, 1800, { threshold: 0.1 }); if (diff 1000) await notify.slack.send(检测到页面重大变更);5.2 技术论坛精华摘要针对HN/Reddit等论坛的定制化抓取滚动页面加载更多内容用CSS选择器高亮高赞评论生成今日最值得读的3个帖子简报获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。