sequenceDiagram
    participant Timer as 定时器 (默认 30 分钟)
    participant HB as Heartbeat Runner
    participant FS as 文件系统
    participant Agent as Agent Runtime
    participant LLM as LLM 提供商
    participant Channel as 消息通道

    loop 每 30 分钟
        Timer->>HB: 触发心跳
        HB->>FS: 读取 HEARTBEAT.md
        alt HEARTBEAT.md 为空或不存在
            HB->>HB: 跳过，不调用 API
        else HEARTBEAT.md 有任务内容
            HB->>Agent: 发送 HEARTBEAT_PROMPT
            Agent->>LLM: 推理 + 任务执行
            LLM-->>Agent: 执行结果
            alt 返回 HEARTBEAT_OK
                Agent-->>HB: 无需操作，静默
            else 有实际输出
                Agent->>Channel: 发送结果到通道
                Channel-->>HB: 显示 ACK 反应 (👀)
            end
        end
    end