核心用法
Let Me Know 是一套标准化的长任务通知协议,适用于任何预计耗时超过 2-3 分钟的操作(如依赖安装、构建、测试套件运行等)。其工作流程分为三个阶段:
1. 预飞通知(Pre-flight)
任务启动前必须发送通知,明确告知用户:任务内容、预估耗时、完成/失败即时通知承诺,以及默认 5 分钟心跳更新机制(支持用户自定义间隔)。
2. 实时心跳更新(Heartbeat)
采用两种技术实现:
- 推荐方案:原地心跳 — 在同 agentTurn 内通过循环
sleep+ 读取进度 +message send实现,任务结束自动停止,无残留 cron 任务 - 备选方案:cron 心跳 — 仅当必须脱离当前执行流时使用,需设置
payload.deliver=false,将heartbeatJobId写入状态文件以便清理
每次心跳前必须读取最新进度(状态文件/日志),发送动态内容而非重复模板,包含:当前步骤/阶段、关键指标、下一步计划。
3. 即时完成通知
任务成功或失败后立即发送结果摘要,并严格清理心跳机制(原地心跳自然终止;cron 心跳需显式 remove,失败时重试 2 次并设置兜底 cleanup cron)。
显著优点
- 用户体验优先:消除"黑盒等待"焦虑,用户可灵活调整心跳间隔
- 资源安全:推荐的原地心跳避免 cron 残留,减少系统资源泄漏风险
- 容错设计:cron 清理失败时具备指数退避重试和兜底清理机制
- 平台适配:支持 Discord DM 等场景,使用标准
message send格式
潜在局限
- 实现复杂度:cron 心跳分支涉及状态文件管理、去重检查、失败重试等多重逻辑,实现门槛较高
- 平台限制:部分消息平台可能对高频推送有限制,需根据实际环境调整间隔
- 进度读取依赖:动态心跳要求任务具备可解析的进度输出,否则可能退化为静态模板
适合人群
- 需要执行长时间运维/开发任务的开发者
- 追求透明化、可预期服务体验的服务型 AI 部署场景
- 多步骤 CI/CD 流水线需要人工确认或监控的环节
常规风险
- cron 泄漏:未正确实现 cleanup 逻辑可能导致重复心跳持续推送
- 状态不同步:若进度读取失败,心跳消息可能显示过时信息
- 网关超时:cron remove 操作可能因网络问题失败,必须实现重试机制
- 间隔冲突:用户中途修改间隔若处理不当,可能导致新旧 cron 并存