定时任务与循环
定时任务和循环让 MBAgent 自动按周期干活,不需要您每次手动触发。本篇详细介绍如何配置。
一、什么是定时任务?
定时任务 = 按特定时间或间隔自动触发执行的 MBAgent 任务。
| 触发方式 | 适用场景 |
|---|---|
| Cron 表达式 | 每天 9 点、每周一、每月 1 号等固定时间 |
| 固定间隔 | 每 30 分钟、每 2 小时、每 5 秒 |
| 工作区监听 | 文件变化时触发 |
| 手动触发 | 不定时,但需要预先定义 |
二、创建定时任务
第一步:打开定时任务管理
在 MBAgent 主界面点击 "任务" → "定时任务" 选项卡,或输入 slash command:
/schedule list显示当前所有定时任务。
第二步:新建任务
点击 "+" 按钮,弹出新建窗口:
新建定时任务
任务名称:________________
任务描述:____________________________
触发方式:○ Cron○ 固定间隔○ 监听
Cron 表达式:________________
[提示: 0 9 * * * 表示每天 9 点]
候鸟环境: 自动 / 指定 / 标签
并发数: 5
超时: 300 秒
失败处理:○ 重试3次○ 跳过○ 终止
第三步:填写任务描述
任务描述就是定时任务每次执行时,AI 收到的提示词。例如:
汇总今天所有店铺的订单数,按金额降序排列,
写入 reports/orders-{YYYYMMDD}.xlsx。
如果有异常(订单金额超过 10000 或低于 1),
发邮件给 alerts@company.com。第四步:选择触发方式
1. Cron 表达式
最常用的方式。Cron 表达式语法:
* * * * *
│ │ │ │ │
│ │ │ │ └── 星期 (0-7, 0=周日)
│ │ │ └───── 月份 (1-12)
│ │ └─────── 日 (1-31)
│ └────────── 时 (0-23)
└───────────── 分 (0-59)常用示例:
| Cron | 含义 |
|---|---|
0 9 * * * | 每天 9:00 |
0 9 * * 1-5 | 工作日 9:00 |
0 0 1 * * | 每月 1 号 0:00 |
*/30 * * * * | 每 30 分钟 |
0 */2 * * * | 每 2 小时 |
0 18 * * 5 | 每周五 18:00 |
0 0 1 1 * | 每年 1 月 1 日 0:00 |
2. 固定间隔
设置每隔多少时间执行一次:
| 字段 | 说明 |
|---|---|
| 间隔值 | 数字 |
| 间隔单位 | 秒 / 分钟 / 小时 / 天 |
例如:每 30 分钟执行一次。
3. 工作区监听(watchWorkspace)
当指定文件夹的内容发生变化时触发:
| 字段 | 说明 |
|---|---|
| 监听路径 | 监听哪个文件夹 |
| 事件类型 | 新增文件 / 修改文件 / 删除文件 |
| 文件过滤 | 文件名模式(如 *.xlsx) |
适用场景:
- 收到新订单文件时自动处理
- 数据文件更新时自动重新分析
第五步:配置运行环境
- 候鸟环境:是否需要打开候鸟浏览器
- 并发数:多个环境的并行度
- 超时:每次执行的最长时间
- 失败处理:失败时如何应对
第六步:保存
点击 "保存",定时任务出现在任务列表里,状态为"未启用"。
第七步:启用
选中任务,点击 "启用" 按钮。MBAgent 会按计划自动执行。
三、管理定时任务
查看所有定时任务
/schedule list启用 / 暂停
- 启用:选中任务 → 点击 "启用" 按钮
- 暂停:选中任务 → 点击 "暂停" 按钮(保留配置但不执行)
删除任务
- 选中任务
- 点击 "删除" 按钮
- 确认删除
查看执行历史
- 选中任务
- 点击 "历史" 选项卡
- 显示每次执行的:触发时间 / 状态 / 耗时 / 结果
立即执行(手动触发)
- 选中任务
- 点击 "立即运行" 按钮
四、MBAgent Daemon
Daemon = 一个后台常驻进程,让定时任务即使您没主动启动 MBAgent 也能按计划执行。mbAgent 的 daemon 支持两种后台宿主:
- macOS:launchd(写入
~/Library/LaunchAgents/sh.mbagent.scheduler.plist) - Linux:systemd --user(写入
~/.config/systemd/user/mbagent-scheduler.service)
各平台支持情况
| 平台 | 状态 | 说明 |
|---|---|---|
| macOS | ✅ 已支持 | 安装时自动 launchctl bootstrap gui/$UID |
| Linux | ✅ 已支持 | 生成 unit 文件,需用户自行执行 systemctl --user enable --now |
| Windows | ⏳ 暂未支持 | 代码已显式标注 "Windows daemon support is deferred";schedules 模块的 PID 探测在 Windows 上直接返回 false,没有 launchd / SCM / Windows Service 注册分支 |
安装方法(macOS / Linux)
- 进入 "设置 → 定时任务"
- 点击 "安装 Daemon" 按钮
- macOS 会自动
launchctl bootstrap;Linux 会把 unit 文件写到~/.config/systemd/user/,并提示执行的systemctl --user enable --now命令
Daemon 状态
MBAgent Scheduler daemon
状态: 运行中
PID: 12345
pidfile: ~/.local/share/mbagent/scheduler.pid
已加载任务: 12卸载 Daemon
- 进入 "设置 → 定时任务"
- 点击 "卸载 Daemon" 按钮
- macOS 会执行
launchctl bootprint gui/$UID sh.mbagent.scheduler;Linux 会给出systemctl --user disable --now命令
WARNING
卸载前先暂停所有定时任务,否则卸载后任务会失败。
NOTE
Windows 用户:当前如果需要"无人值守"执行定时任务,仍需要保持 MBAgent 主进程启动。如需长期无人值守,可改用 Windows 任务计划程序把 mbagent schedule tick 包成一个开机自启的计划任务(这是变通方案,不是 mbAgent Daemon)。
五、循环监控(更高级)
循环任务 = 按固定间隔反复执行的简化版定时任务。
与定时任务的区别
| 维度 | 定时任务 | 循环任务 |
|---|---|---|
| 触发时间 | 精确时间点 | 固定间隔 |
| 配置复杂度 | 高(cron 表达式) | 低(间隔值) |
| 适合场景 | 每天 9 点跑日报 | 每 30 分钟检查库存 |
| 失败处理 | 详细 | 简单 |
创建循环任务
- 打开任务面板
- 新建任务时选择 "循环任务"
- 设置:
- 间隔(每 X 秒/分钟/小时)
- 结束条件(运行 N 次后停止 / 永不停止)
- 保存并启用
典型循环任务
- 每 30 分钟检查店铺库存,低于阈值时通知
- 每小时检查候鸟账号 Token 是否过期
- 每 5 分钟检查邮箱新订单
- 持续监控某个网页变化
六、长目标(Goal)
长目标 = 让 MBAgent 围绕一个长期目标自主迭代,直到目标完成或您手动终止。
创建长目标
- 在 MBAgent 主界面输入 slash command:
/goal start 持续优化这 20 个店铺的转化率,每周出一份分析报告 - MBAgent 接受目标,开始自主规划:
- 第一周:收集基线数据
- 第二周:识别低转化店铺
- 第三周:制定优化方案
- 持续迭代...
查看长目标状态
/goal status显示:
目标 #1 - 持续优化 20 个店铺转化率
状态: 进行中
已运行: 14 天
当前阶段: 第 3 周(制定优化方案)
完成度: 45%
下次评估: 2026-10-01终止长目标
/goal stop七、研究任务(Research)
研究任务 = MBAgent 深度研究某个主题,输出结构化报告。
创建研究任务
/research start 研究 2026 年亚马逊新政策对中小卖家的影响研究流程
[1] 拆解研究主题
- 子主题 1: 新政策全文解读
- 子主题 2: 对中小卖家的影响
- 子主题 3: 应对策略
- 子主题 4: 行业案例
↓
[2] 并行收集资料
- 调用候鸟 RAG 知识库
- 调用 WebSearch
- 调用 WebFetch
↓
[3] 分析与综合
- 提取关键信息
- 验证事实
- 总结观点
↓
[4] 输出报告
- 结构化 Markdown
- 引用来源
- 包含图表查看研究报告
- 进入 "研究" 侧栏
- 选择已完成的研究任务
- 查看报告
八、最佳实践
时间选择
✅ 推荐:
- 业务低峰期(凌晨、深夜)
- 候鸟账号额度刷新前(月末)
- 候鸟浏览器空闲时
❌ 避免:
- 高峰时段(白天工作时段)
- 多任务重叠(CPU / 内存占用过大)
- 跨时区敏感时间(如双 11)
任务拆分
✅ 好做法:
- 把大任务拆成多个小定时任务
- 每个任务聚焦一个目标
- 任务间不互相依赖
❌ 坏做法:
- 一个大任务做太多事
- 任务间强依赖(A 失败导致 B 失败)
错误处理
- ✅ 配置 告警通知(失败时发邮件 / 微信)
- ✅ 设置 合理超时(不要等太久)
- ✅ 失败时 保留日志(便于排查)
资源管理
- ✅ 限制并发数(不要让多个任务同时跑满 CPU)
- ✅ 监控资源占用(任务面板里有资源监控)
- ✅ 重要任务用独立 Daemon / 独立进程(避免被其他任务影响;Windows 当前无 Daemon,可改用独立 MBAgent 实例承接重要任务)
九、典型场景
场景 1:每日销售日报
任务名称: 每日销售日报
触发: Cron 0 9 * * * (每天 9 点)
描述: 汇总昨天的所有店铺订单数据,生成日报,写入 reports/daily-{YYYYMMDD}.xlsx,
并把日报内容发送到 wechat-bot。场景 2:库存监控
任务名称: 库存监控
触发: 固定间隔 30 分钟
描述: 检查所有店铺的商品库存,低于 10 件的记录到 alerts/low-stock-{YYYYMMDD}.csv,
并发邮件给运营团队。
结束条件: 永远运行场景 3:账号健康巡检
任务名称: 账号健康巡检
触发: Cron 0 */6 * * * (每 6 小时)
描述: 检查所有候鸟账号的登录状态、Cookie 完整性、IP 异常,
输出报告到 health-check/{YYYYMMDD-HH}.json。
失败处理: 重试 3 次后跳过场景 4:自动数据备份
任务名称: 数据备份
触发: Cron 0 3 * * * (每天凌晨 3 点)
描述: 备份 AI 记忆库、KMS、所有会话到 backup/{YYYYMMDD}/。
结束条件: 永远运行十、常见问题
Q1:定时任务没有按预期触发
排查:
- 检查 cron 表达式是否正确
- 检查 MBAgent 是否启动(Windows 当前不支持 Daemon,必须保持主进程运行;macOS/Linux 安装了 Daemon 才能"无人在场"触发)
- 查看任务历史里的错误信息
- 确认系统时间正确
Q2:电脑休眠时任务不执行
解决:
- macOS / Linux:安装 Daemon(让 launchd / systemd-user 唤醒任务)
- Windows:当前不支持 Daemon,请改用"Windows 任务计划程序 + mbagent schedule tick"变通方案(详见四、MBAgent Daemon 末尾的 NOTE)
- 设置电脑不休眠(控制面板 → 电源)
- 设置唤醒定时器
Q3:任务一直失败
排查:
- 单独运行一次,看错误信息
- 检查候鸟浏览器是否在线
- 检查网络连接
- 简化任务描述,逐步排查
Q4:定时任务消耗太多 Token
解决:
- 用便宜的模型(
gpt-5-mini) - 关闭"显示思考过程"
- 缩短任务描述
- 减少执行频率
Q5:能否在多台电脑同步定时任务?
暂不支持云端同步。建议:
- 在每台电脑单独配置
- 或用统一任务管理文件 + Git 同步
下一步:使用技巧与最佳实践 → 老用户的经验总结。
