如何把Raven变成7×24小时自动助手:Cron定时任务与心跳机制完整指南
如何把Raven变成7×24小时自动助手Cron定时任务与心跳机制完整指南【免费下载链接】RavenThe Harness of Harnesses: a trusted, persistent, self-evolving multi-agent ecosystem for all-domain collaboration.项目地址: https://gitcode.com/gh_mirrors/raven35/RavenRaven是一个可信任、持久运行、自我进化的多智能体协作平台。借助它内置的Cron 定时任务与心跳Heartbeat机制你可以让 Raven AI 助手在无人值守时自动执行提醒、巡检与周期性任务真正成为 7×24 小时在线的自动助手。本指南将带你用最少的步骤完成配置并理解背后的防打扰设计。一、为什么需要定时任务 心跳这两套机制大多数 AI 助手是被动的你说一句它答一句。而 Raven 的主动性设计可参考 docs/Proactivity-Plan.md刻意把助手分成了两层时钟机制角色比喻触发方式典型场景Cron 定时任务⏰ 精确闹钟你明确指定的时间/周期每天早上 9 点提醒我开会心跳 Heartbeat 定期体检固定间隔醒来看有没有活干每隔 30 分钟检查一遍待办清单简单说Cron 管在什么时间叫醒它心跳管醒来后自己判断该不该干活。两者共享同一套防打扰账本不会就同一件事重复打扰你。二、快速上手用一句话创建第一个定时提醒最简单的方式不需要敲任何命令——直接对你的 Raven 助手说自然语言即可助手会通过内置的cron工具自动解析并建好任务实现见 raven/proactive_engine/schedulers/cron/tool.py「50 分钟后提醒我休息」→ 一次性提醒at响一次就自动删除「每天早上 7 点提醒我吃药」→ 固定时刻循环cron_expr0 7 * * *支持时区「每隔 30 分钟巡检一次服务器」→ 固定间隔循环every_seconds 小技巧创建循环提醒时助手会给任务打上一个topic_tag如medication_morning。同一个主题再次创建时会自动更新旧任务而不是叠加新任务避免一个月后收到 5 条吃药提醒。三种调度类型怎么选你的说法调度类型说明X 分钟/小时后提醒我at一次性只触发一次触发后自动从列表中消失每天/每周一 9 点cron_expr按时钟时刻循环可指定 IANA 时区每 30 分钟/每小时every_seconds固定间隔无限循环任务创建时会绑定当时的聊天渠道与会话fire-at-origin在哪聊的提醒就发回哪触发时不会跑丢到其他对话。三、命令行管理定时任务raven cron 常用命令如果你偏好脚本化操作或想审计任务状态Raven 提供了完整的raven cron子命令源码见 raven/cli/cron_commands.py。所有任务持久化在~/.raven/cron/jobs.json核心命令一览raven cron list # 查看全部任务调度方式、下次运行时间、最近状态 raven cron get id # 查看单个任务详情支持 ID 前缀缩写 raven cron run id # 手动试跑一次验证调度是否符合预期 raven cron disable id # 暂停任务保留配置假期前很好用 raven cron enable id # 恢复任务 raven cron delete id -y # 删除任务几个实用细节raven cron list顶部会显示下次唤醒时间以及哪些任务需要raven gateway保持运行才会触发——这是 7×24 运行的关键IM 渠道的任务必须有一个常驻的 gateway 进程在跑才会真正触发。间隔参数支持90m、1h30m、7d这类 systemd 风格写法如raven cron add --channel telegram --every 90m具体参数用raven cron add --help查看。想验证下一次运行时间算得对不对用raven cron run id试跑一次即可它会把调度指针真实推进到下次触发时间。四、心跳机制详解让助手自己醒来干活心跳服务的核心思想是把活写进一个 Markdown 文件助手按固定节律醒来自己看。1. 编辑 HEARTBEAT.md 任务清单每个代理主目录下都有一个HEARTBEAT.md内置模板见 raven/templates/HEARTBEAT.md内容结构非常简单## Active Tasks !-- 在这里写下你希望助手周期性处理的任务 -- - 检查 inbox 邮件摘要有紧急邮件就提醒我 ## Completed只要文件里有超出模板骨架的内容心跳就会把它交给模型处理如果只有标题和注释本次心跳直接跳过、不消耗任何模型调用。2. 两阶段决策省钱又可靠心跳服务raven/proactive_engine/schedulers/heartbeat/service.py每次醒来分两步决策阶段把文件内容和刚发生的系统事件喂给模型让它通过一个虚拟heartbeat工具回答skip没事或run有活要干执行阶段只有判定为run时才走完整的智能体循环去执行任务并把结果主动推送给你。3. 事件唤醒Cron 和心跳会互相通气当某个 Cron 任务执行完成或失败时Raven 会把它作为一个系统事件入队并请求心跳提前醒来处理后续见 raven/core/cron_stack.py。也就是说凌晨 3 点某个巡检任务失败了心跳会被立刻唤醒并替你判断要不要通知你——这正是 7×24 自动助手闭环的精髓。4. 心跳参数配置心跳默认开启每 30 分钟一次配置定义在 raven/config/schema.py配置项默认值含义heartbeat.enabledtrue总开关heartbeat.interval_s180030 分钟两次心跳的最小间隔heartbeat.event_waketrue允许事件提前唤醒心跳heartbeat.event_wake_min_interval_s300事件唤醒的最小间隔防高频抖动心跳与哨兵Sentinel等主动能力在 gateway 中统一装配见 raven/cli/gateway_commands.py所以保持raven gateway常驻就是 7×24 自动助手的地基。五、7×24 稳定运行必备防打扰设计一个全天候在线的助手最大的风险不是不干活而是太能叨叨。Raven 内置了三道护栏静默触发熔断循环提醒若连续 N 次触发后你毫无回应任务会被自动停用raven cron list会标黄警告想恢复只需raven cron enable id——防止半夜每 45 分钟弹一条提醒共享防重复账本Cron 触发会写入 NudgePolicy 账本L3 哨兵在 24 小时内就同一主题不再主动唠叨杜绝双重提醒⏱️唤醒节流即使你配了每 60 秒一次的任务事件唤醒也会折叠到每 5 分钟至多一次决策调用模型开销始终有界。六、最佳实践清单 ✅先常驻 gateway7×24 场景下让raven gateway长期运行可配合 Docker/系统服务否则 IM 渠道的定时任务不会触发一次性任务用at别用every对助手说一小时后提醒我它会自动算出绝对时间、只响一次循环任务必须明确要求只有你说出每天/每小时/每周一这类词助手才会建循环任务——抱怨我总忘喝水不会自动变成无限循环提醒周期性杂活丢进 HEARTBEAT.md邮件摘要、服务器巡检等看情况处理的事比精确闹钟更适合心跳用raven cron run id试跑上线前先验证调度时间比事后查日志高效得多。按这套配置你的 Raven 助手就能在提醒、巡检、事件跟进三条线上持续待命——白天当随叫随到的伙伴深夜当可靠的值班员。延伸阅读docs/Proactivity-Implementation.md 提供了主动性子系统的完整实现参考raven/proactive_engine/schedulers/ 下可分别找到 Cron 与心跳的调度器源码。【免费下载链接】RavenThe Harness of Harnesses: a trusted, persistent, self-evolving multi-agent ecosystem for all-domain collaboration.项目地址: https://gitcode.com/gh_mirrors/raven35/Raven创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考