workbuddy定时能力由本地调度器、云端协调层和外部事件通道三层协同实现:本地基于quartz.net/gcd timer跨平台调度,claw协议保障断网补偿与时区归一,webhook/api模式则交由外部系统控时。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

WorkBuddy 的定时能力不是靠单一机制实现的,而是三层调度体系协同工作的结果:本地轻量级调度器 + 云端任务协调层 + 外部事件注入通道。它不依赖系统 crontab 或 Windows Task Scheduler,所以能跨平台保持行为一致,也能在离线状态下维持基础定时逻辑。
本地调度器基于 Quartz.NET(Windows)和 GCD Timer(macOS)封装
WorkBuddy 客户端内置一个精简版调度内核,Windows 下使用 Quartz.NET 做时间表达式解析与触发,macOS 则用 Grand Central Dispatch 的定时器原语实现微秒级精度控制。这决定了它对 cron_expression 的支持是有限但够用的——比如 "0 0 9 * * ?"(每天9点)能准确执行,但 "0 0 9 L * ?"(每月最后一天9点)会被拒绝并提示“不支持月末偏移语法”。
- 触发精度默认为 ±30 秒,若需更高精度(如金融类日报必须在 09:00:00 精确触发),需在
plans.json中显式设置"accuracy": "exact"字段 - 该调度器不监听系统休眠/唤醒事件,所以笔记本合盖后任务会跳过;若需保障,必须启用“后台常驻模式”并在系统设置中允许 WorkBuddy 后台运行
- 所有本地定时任务都绑定到当前用户 Session,切换账号后不会自动迁移
Claw 协议提供跨设备时间同步与断网补偿
当通过企业微信或飞书下发指令(例如“每周一至周五 8:30 整理桌面”)时,Claw 协议会在消息体中嵌入 UTC 时间戳和设备本地时区偏移,并由 WorkBuddy 客户端做归一化处理。即使手机端发送时网络中断,消息缓存后重连,客户端也会根据原始时间戳而非接收时刻来排期。
使用 draw.io(.drawio 格式)和 SVG 生成兼容 Microsoft Visio 的架构图。当用户需要以下任一场景时触发: - 用于 Visio 或技术文档的架构/系统/网络图 - 带连接标注的分层控制系统图 - 将 draw.io XML 转换为稳定、可嵌入的 SVG - 修复 Visio 或 draw.io 无法打开的故障排查类图表 - 任何需专业级布局且文本可编辑的图表
- Claw 指令中的自然语言时间(如“明天上午”)由本地 NLU 模块解析,不上传云端,避免时区混淆
- 若设备离线超 2 小时,未执行任务会进入
pending_offline队列,联网后按原始计划时间补发,而非立即执行 - 同一 Claw 指令在多台设备上注册时,会生成唯一
claw_task_id,防止重复触发
Webhook/API 模式绕过客户端调度,交由外部系统控时
当你用 curl 调用 POST /v2/tasks/schedule 或配置 crontab 触发 Webhook 时,WorkBuddy 实际只做“动作执行器”,不再参与时间判断。此时精度完全取决于调用方——Linux cron 最小粒度是分钟级,而云函数(如腾讯云 SCF)可设为 1 分钟间隔,但首次冷启动延迟可能达 1–2 秒。
- API 注册的任务在 WorkBuddy 后端标记为
external_scheduled,不会出现在「自动化计划」UI 列表中,只能通过GET /v2/tasks?source=api查询 - Webhook 地址(如
https://api.workbuddy.example/webhook/daily-report)本身无鉴权,必须配合签名头X-WorkBuddy-Signature校验,否则返回 403 - 若外部调度器故障(如服务器宕机),WorkBuddy 不会自动重试,也无失败回调机制,这点和本地调度完全不同
真正容易被忽略的是时区混合问题:Web 端配置用的是账户时区,Claw 指令用的是设备本地时区,而 API 接口强制要求 UTC 时间戳。三者混用却不显式转换,是绝大多数“定时不准”问题的根源。










