跳到主要内容

心跳监控

传统 AI 助手只会等待你的指令。DesireCore 的心跳(Heartbeat)让智能体可以定期"睁开眼睛看一看":按你配置的频率检查邮箱、代码仓库、日历、系统事件或其他连接器,判断是否有需要你关注的变化。没有变化时保持静默,有值得关注的事项时通知你。

心跳由独立的调度器管理,不需要你手动创建定时任务。你可以在智能体详情页的心跳区域单独启用、配置和查看历史。

编写检查清单

心跳的检查内容定义在智能体的 HEARTBEAT.md 文件中:

~/.desirecore/agents/<agent_id>/heartbeat/HEARTBEAT.md

你可以在智能体详情页的心跳设置中直接编辑。HEARTBEAT.md 支持两种写法:

清单模式

直接列出要检查的内容,智能体每次心跳时逐项检查:

# 心跳检查

## 数据源
- 邮箱:检查来自客户、CEO 或项目关键人的未读邮件
- GitHub:检查被 @、PR 审查请求和失败的 CI
- 日历:检查 24 小时内新增或冲突的会议

## 判断标准
- 没有新增重要事项时保持安静
- 有需要我阅读的信息时通知我
- 需要外部操作时只提出建议,不直接执行

任务模式

如果你希望不同检查项有不同的检查频率,可以用 tasks: 块定义子任务:

tasks:
- name: inbox-triage
interval: 30m
prompt: "检查 VIP 联系人的紧急邮件"
- name: calendar-check
interval: 1h
prompt: "检查未来两周内新增或冲突的会议"
- name: ci-monitor
interval: 15m
prompt: "检查 CI 管线是否有失败的构建"

# 补充说明
- 没有变化时保持静默
- 通知时附带来源链接

任务模式下,每次心跳只执行到期的子任务,未到期的会被跳过,节省不必要的检查。

如果 HEARTBEAT.md 为空或只有注释,心跳不会发起实际检查。

心跳结果

智能体完成检查后会自主判断:这次有没有需要打扰你的事情。

静默——所有检查项都正常,没有需要你关注的变化。结果会写入历史记录,但不会推送通知。对话流中显示为绿色可折叠 pill,点击可查看详情。

通知——有值得你了解的变化、异常、风险或建议。通知卡片会出现在对话流中,通常包含:

  • 数据源的变化摘要和明细
  • 智能体的总结论和后续建议
  • 稍后提醒菜单

通知卡片只负责提醒。如果后续需要发送邮件、改文件或执行命令等操作,系统会另外弹出审批卡片,不会因为心跳触发而绕过确认。

重复内容会在 24 小时窗口内去重,避免同一事项反复打扰。

配置心跳

在智能体详情页的心跳区域点击设置按钮,打开心跳设置面板。

心跳设置面板

基本设置

设置项说明
启用心跳开启或关闭该智能体的心跳调度
检查间隔支持 15 分钟、30 分钟、1 小时等常用间隔
编辑检查内容跳转编辑 HEARTBEAT.md,修改巡检任务

如果没有任何智能体显式开启心跳,系统会为默认智能体自动开启 30 分钟间隔。

安静时段

安静时段设定一个"免打扰"窗口,默认 23:0008:00,支持跨午夜。处于安静时段时,心跳不会执行检查,只写入抑制记录。

安静时段结束后的首次心跳会自动进入合并汇报模式,智能体会综合检查静音期间可能积累的变化,而不是只看最近增量。

抑制策略

策略效果
专注模式完全暂停心跳检查,只记录不执行、不通知
安静时段同上,到时自动恢复并汇总补报
忙碌信号你正在对话时照常检查,但通知会被延后

手动触发心跳时会跳过所有抑制策略,因为这代表你明确想立即查看结果。

查看巡检结果

心跳启用后,智能体详情页会显示状态卡片和历史卡片。

状态卡片

心跳状态卡片

  • 运行状态:活跃、专注模式、安静时段等
  • 上次 / 下次检查:最近一次和下一次心跳的时间
  • 今日统计:当天检查次数和静默/通知分布
  • 待配置提示:如果 HEARTBEAT.md 没有实质检查项,会提示你去编辑

历史记录

历史卡片列出最近的心跳回执,默认显示 5 条,展开后最多 50 条。可按全部、静默、通知筛选。每条回执包含执行时间、结果类型、结论摘要、抑制状态等信息。

即使被抑制,系统也会记录原因和时间,保证审计链完整。

心跳历史

检查不生效?

如果心跳没有按预期工作,优先确认:

  1. 心跳是否启用:在设置面板中确认开关已打开
  2. HEARTBEAT.md 是否有内容:空文件不会触发检查
  3. 数据源是否可用:对应的工具、MCP 服务或账户连接是否正常
  4. 是否被抑制:检查是否处于专注模式、安静时段或 Snooze 状态

瞬态错误处理

心跳遇到网络超时、限流或服务暂不可用等临时错误时会自动重试,最多 4 次,退避间隔依次为 3 秒、8 秒、20 秒和 60 秒。周期性心跳不会因为单次失败而停止。

与定时任务的区别

能力适合做什么结果呈现
心跳持续巡检"是否有变化需要关注"没事静默,有事通知
定时任务到点执行一段明确 Prompt执行结果进入任务记录
Sleep等待几秒后继续当前任务链仍在当前会话中继续

如果你想"每 30 分钟看看有没有重要邮件,没事别打扰我",使用心跳。如果你想"每天 9 点生成一份日报",使用定时任务